Skip to main content

nessie-backend-zfs

The ZFS-backed storage backend for nessie-store — the VolumeBackend ⊂ SnapshotBackend ⊂ CloneBackend stack mapped onto zfs/zpool/exportfs. Volumes are datasets, snapshots are zfs snapshot, FlexClones are zfs clone, and the data plane is an NFS export. Every command goes through a CommandRunner seam, so it is exact and testable.

Install

pip install nessie-backend-zfs      # Python
cargo add nessie-backend-zfs        # Rust

Usage (Python)

Two extension points. Outside — drive real ZFS (needs zfs/zpool + privilege):

from nessie_backend_zfs import ZfsBackend

b = ZfsBackend(pool="ontap-sim", data_lif="192.168.1.100")
vol = b.create_volume("build-cache", size_bytes=10 * 2**30)
snap = b.create_snapshot(vol["uuid"], "pre-build")
clone = b.create_clone(vol["uuid"], snap["uuid"], "build-cache-pr1234")
print(b.access_handle(vol["uuid"]))   # {'kind': 'nfs_export', 'server': ..., 'path': ...}

Inside — pass a runner(argv) -> {"success", "stdout", "stderr"} callable and every command is routed through your function. Mock it for tests, audit it, or wrap it in sudo:

from nessie_backend_zfs import ZfsBackend

def runner(argv):
    print("nessie ran:", " ".join(argv))      # audit every command
    return {"success": True, "stdout": "", "stderr": ""}

b = ZfsBackend(pool="tank", runner=runner)
vol = b.create_volume("vol1", size_bytes=1 << 30)   # prints: nessie ran: zfs create -o quota=...

Methods return plain dicts in the substrate-neutral domain shape and raise NessieError on failure.

Usage (Rust)

use nessie_backend_core::{VolumeBackend, VolumeSpec};
use nessie_backend_zfs::{SystemRunner, ZfsBackend, ZfsConfig};

let cfg = ZfsConfig { pool: "ontap-sim".into(), ..ZfsConfig::default() };
let b = ZfsBackend::new(SystemRunner, cfg);
let vol = b.create_volume(VolumeSpec::named("build-cache")).unwrap();

The CommandRunner trait is the same seam the Python runner rides on — swap SystemRunner for a mock to assert the exact argv in unit tests.

Dual-licensed MIT OR Apache-2.0.

Metadata

Release files for nessie-backend-zfs 0.4.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for nessie-backend-zfs 0.4.3
File Actions
nessie_backend_zfs-0.4.3-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for nessie_backend_zfs-0.4.3-cp310-abi3-win_amd64.whl
nessie_backend_zfs-0.4.3-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details for nessie_backend_zfs-0.4.3-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
nessie_backend_zfs-0.4.3-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details for nessie_backend_zfs-0.4.3-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
nessie_backend_zfs-0.4.3-cp310-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64, macOS 10.12+ x86-64, macOS 10.12+ universal2 (ARM64, x86-64) Details for nessie_backend_zfs-0.4.3-cp310-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl

Total release size: 1.7 MB

Release files / nessie_backend_zfs-0.4.3-cp310-abi3-win_amd64.whl

Download URL nessie_backend_zfs-0.4.3-cp310-abi3-win_amd64.whl
Size 266.0 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
4cdabb56004d3a5be85131a27607453150c09ef455886ee94fa9d4c74fced5aa
BLAKE2b-256 checksum
How to use checksums
a6a615763b55966e8363a2eec99fe73a7bffcbf59b964378b862cc30cce751c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / nessie_backend_zfs-0.4.3-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL nessie_backend_zfs-0.4.3-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 374.5 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
358b815aee3ba3e8eb700f5d4fc5fa4da8fe1ebde7d7891ca45b9c20e40b3f40
BLAKE2b-256 checksum
How to use checksums
7d862fc55ce35d09833e65f3a3cfeaab2f991d124f0fefa60421f3edba4a217e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / nessie_backend_zfs-0.4.3-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL nessie_backend_zfs-0.4.3-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 372.3 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
440beea4bb97c0541748958f1def7b3b4ed4d28c1364102984c8c3e53b720757
BLAKE2b-256 checksum
How to use checksums
7cef9822e7f2d47ad7080a57f4befda7928def2b494133ed825fa2144e09ba67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / nessie_backend_zfs-0.4.3-cp310-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl

Download URL nessie_backend_zfs-0.4.3-cp310-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl
Size 667.1 kB
Tags CPython 3.10 abi3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8314ce4cd1f4626006f95cc7175708c83ea88b0c24898314f815a21a1716aa70
BLAKE2b-256 checksum
How to use checksums
1ae75c81cf68c72be4d5c9a76ebb906dcf06dee258cbf79c32ac9e04bce5c3a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for nessie-backend-zfs 0.4.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page