Documentation / start here
Choose the file decision you need to make.
Move from the first file feature to a deliberate storage and transport design. These pages show the contract, the provider roles, the edge choices, and the evidence behind the promise.
Start with the CLI when you want to run mount-rs as an executable. Choose Rust or Node when you are embedding the contract. Then choose the metadata and immutable block roles, create a real FUSE, NFS, 9P, or FSKit mount—or choose HTTP/WebDAV at the edge—and read the acceptance requirements before making a production claim.
Four decisions, one observable contract
Build the contract
Give the product paths, handles, directories, and sync semantics.
02Choose storage roles
Separate namespace metadata from immutable file bytes.
03Choose the edge
Use Rust/Node directly, create a FUSE/NFS/9P/FSKit mount, or add HTTP/WebDAV at the edge.
04Prove the risk
Use architecture, porting evidence, and requirements to set the boundary.
The contract behind the product
FsDriver / FileHandlePaths, handles, stats, directory operations, and explicit sync behavior.
MetadataStore + BlockStoreNamespace publication and immutable bytes are independent contracts.
FUSE, NFS, 9P, WebDAV, S3, auto-mount, CLI, and napi-rs are integration surfaces.
A file is two planes
Publish references only after the bytes are ready.
The provider model keeps metadata and immutable blocks independent: write fixed-size chunks, complete the block-store barrier, then publish a metadata revision with a revision CAS and writer fence. Complete the metadata barrier before acknowledging the write.
inode → entries → block refschunk → immutable key → byteslease → fence → revisionChoose your starting point
The project is prerelease. Examples point to real exported types and repository paths, but a working example is not proof that every backend, platform, journal mode, or failure scenario has passed the full acceptance suite. The overall project is in progress and is not release-ready.
Run the executable path
Probe a host, self-test providers, serve HTTP, or create a native mount where the transport is available.
02 / RustCore and split-store APIs
Loopback access, handles, fixed-size chunking, and provider composition.
03 / Nodenapi-rs factories
The current createChunkedDriver shape and lifecycle expectations.
Storage roles and maturity
See where metadata lives, how bytes are laid out, and what the evidence actually covers.
05 / TransportsMount-free and native edges
Choose FUSE, NFS, 9P, FSKit, HTTP, or WebDAV with platform limits in view.
GitHub Release · Preview
mount-rs 0.1.0
The repository's only CLI target, built in release mode and published as a GitHub prerelease. This artifact is platform-specific and does not imply a complete release matrix or native-mount qualification.
Read the source alongside this guide: architecture, porting evidence, requirements, and work tracker.