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

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

Total release size: 1.0 MB

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

Download URL nessie_backend_zfs-0.4.1-cp310-abi3-win_amd64.whl
Size 266.0 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
fa33cbc8cfca73b45c74ac7f4898a395d43f27e96ac162d1265bafe4d7219739
BLAKE2b-256 checksum
How to use checksums
673ad25ad990affd56f7475d4010472dba6293644bcf4746de53fffb1880f678
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.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL nessie_backend_zfs-0.4.1-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
d01ca723ee36d862e9398d374a7abb13d658fd9f4a82965c2eea9cd51b12d47b
BLAKE2b-256 checksum
How to use checksums
39857d7feb32799907ba41d517aff6f4ac4cfcaa24dac4438c264adec62fd20f
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.1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL nessie_backend_zfs-0.4.1-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
5c6a9b6628c972aebf8a78bd2ac8d5aa7ed2c39842caebe223eddc2ada2bd5b9
BLAKE2b-256 checksum
How to use checksums
d49542d9b9935e17bfee88d0cf586d6342f489bd59ce485363477f37c6d40a97
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.1

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