Skip to main content

fusedzoo

A FUSE filesystem that mounts an Apache ZooKeeper tree as a local directory, backed by kazoo.

The dual znode model

ZooKeeper znodes are simultaneously containers (they have children) and data holders (they carry a byte payload). fusedzoo exposes both facets at once:

  • Every znode /a/b/c maps to a directory at the mountpoint.
  • The znode's data payload is exposed through a virtual file named .zk-data inside that directory.
/mnt/zk/
  my/
    favorite/          <- znode /my/favorite (ls to see children)
      .zk-data         <- read/write the node's raw byte payload
      node/            <- child znode /my/favorite/node
        .zk-data
Filesystem operation ZooKeeper operation
ls /mnt/zk/a/b get_children(/a/b)
cat /mnt/zk/a/b/.zk-data get(/a/b)
echo foo > /mnt/zk/a/b/.zk-data set(/a/b, b"foo")
mkdir /mnt/zk/a/b/c create(/a/b/c, b"")
rmdir /mnt/zk/a/b/c delete(/a/b/c) (if childless)

Node data is passed through as raw bytes with no encoding.

Installation

pip install fusedzoo            # default: fusepy (libfuse2) backend
pip install fusedzoo[pyfuse3]   # opt-in: pyfuse3 (libfuse3, async) backend

The host system needs libfuse installed (libfuse2 for the fusepy backend, libfuse3 for pyfuse3) and a usable /dev/fuse device.

Usage

fusedzoo mount localhost:2181 /mnt/zk   # mounts in the foreground
fusedzoo umount /mnt/zk

See fusedzoo mount --help for pool sizing, backend selection, read-only, and experimental poll options.

# Create a znode
mkdir /mnt/zk/services

# Write its payload
echo '{"host": "db1"}' > /mnt/zk/services/.zk-data

# Read it back
cat /mnt/zk/services/.zk-data

# Inspect ZooKeeper metadata as extended attributes
getfattr -d /mnt/zk/services

# Remove a childless znode
rmdir /mnt/zk/services

Note: df will not show fusedzoo in plain df -h because ZooKeeper has no filesystem capacity concept and the mount reports 0/0 blocks. Use df -h -a or df -h /mnt/zk to see it explicitly.

Development

hatch run release      # ruff + mypy + pytest --cov + hatch build (full gate)
hatch run dry_release  # same but non-blocking (continues on failure)
hatch run docs:build   # build Sphinx docs

License

Apache 2.0

Metadata

Release files for fusedzoo 0.1.0

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

Source distribution (sdist)

Source distribution for fusedzoo 0.1.0
File Size Uploaded
fusedzoo-0.1.0.tar.gz 40.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fusedzoo 0.1.0
File Interpreter ABI Platform
fusedzoo-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 66.8 kB

Release files / fusedzoo-0.1.0.tar.gz

Download URL fusedzoo-0.1.0.tar.gz
Size 40.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5b32b669ba22f99f83f25e733957c58797b861714a9f2f0fa5198eaa3b7abc11
BLAKE2b-256 checksum
How to use checksums
275da1fe8e5a2a5b8c39ee8a172f0e7b709c18448058f3316569b220ec981d1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 28, 2026.

Transparency log

Release files / fusedzoo-0.1.0-py3-none-any.whl

Download URL fusedzoo-0.1.0-py3-none-any.whl
Size 26.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0c0ca36f73c628728aeb74197a60845efececbfcec3ddd290c3f51bba31cb66
BLAKE2b-256 checksum
How to use checksums
4e64086ef1e0be8a5ac9f1601c5b52272f5d5273d04a1faac93c1c92cf3bf084
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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