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.4

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.4
File Actions
nessie_backend_zfs-0.4.4-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for nessie_backend_zfs-0.4.4-cp310-abi3-win_amd64.whl
nessie_backend_zfs-0.4.4-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.4-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
nessie_backend_zfs-0.4.4-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.4-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
nessie_backend_zfs-0.4.4-cp310-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 10.12+ x86-64, macOS 10.12+ universal2 (ARM64, x86-64), macOS 11.0+ ARM64 Details for nessie_backend_zfs-0.4.4-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.4-cp310-abi3-win_amd64.whl

Download URL nessie_backend_zfs-0.4.4-cp310-abi3-win_amd64.whl
Size 266.0 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
56eccdf3d28578c8c6deb6ed682eae1eeb021430e2c9a584b28b7ddec67b5889
BLAKE2b-256 checksum
How to use checksums
cdeaadfa2fde6beb8b89fd415c9183d2b17a706ad7eb1ee136fe0d0179eae8e5
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.4-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL nessie_backend_zfs-0.4.4-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
e0cdf59d8491401311cffb89a35a6e575bd7d41ca9532d13bab22fc1c03b86f9
BLAKE2b-256 checksum
How to use checksums
0dedecf39aeddf4676d91b367d0aa53cb3e1cb1c1efcbd942ab4df38622180ce
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.4-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL nessie_backend_zfs-0.4.4-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
08e8a8addc87d54e31faf839e66ca30781ea825dd7f34f4915db2dd5f5ae72c4
BLAKE2b-256 checksum
How to use checksums
d051c3292bfead3e4ccca5cdd4f2d458d049f5b236a35c61a1bf5d0a03efa426
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.4-cp310-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl

Download URL nessie_backend_zfs-0.4.4-cp310-abi3-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl
Size 667.2 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
6d81bfc57f6af44c80ecc0aa9e75eb0e330cfca73bd151219b2b4a9c5f439718
BLAKE2b-256 checksum
How to use checksums
bd894e2dbf339af8ef616d11d9b7ae5649811de4c52335f6451c51949d126859
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.4

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