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

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.2
File Interpreter ABI Platform Actions
nessie_backend_zfs-0.4.2-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for nessie_backend_zfs-0.4.2-cp310-abi3-win_amd64.whl
nessie_backend_zfs-0.4.2-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.2-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
nessie_backend_zfs-0.4.2-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.2-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Total release size: 1.0 MB

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

Download URL nessie_backend_zfs-0.4.2-cp310-abi3-win_amd64.whl
Size 266.0 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
9ecb4aa5a5ab4c29be46a504cf891c8fc527f73fa41089fb341475bca4b96c4c
BLAKE2b-256 checksum
How to use checksums
7b0f1f808fa754aaccf205e47947d835509fed476b4f65f33db750dd072f7404
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.2-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL nessie_backend_zfs-0.4.2-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
435a31826b4f9f57c6b94a7b8b54705c91bf8cf1cf9b49e961e5979c8b3d1dc9
BLAKE2b-256 checksum
How to use checksums
949324dd54017083520ac95e7988dc60e9309c9294aa1f5622c0717ea50df29d
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.2-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL nessie_backend_zfs-0.4.2-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 372.2 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
6292d30ca5cd9d4d3748e05a957dd572c2d060fbbc8471d6d05122f3ef4a38c2
BLAKE2b-256 checksum
How to use checksums
8a483f8fce5ade3f90a5648b43e7b8fd4e1c97288214f7091011b850394a2c23
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.2

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