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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.