Distributed filesystem written in Rust. The intention is to be a learning and experimental project for the concepts involved in building such a system.
Warning
This is still under development. Please do not use it with sensitive data for now, please wait for a
stable release.
It's mostly ideal for experimental and learning projects.
The Hitchhiker's Guide to Building a Distributed Filesystem in Rust The_beginning
There will be a series of articles about the evolution of this project trying to keep it like a tutorial. This is the first one.
There is also a wiki for docs and ideas.
- Masterless
- BitTorrent with QUIC as transport and zero-copy for synching files
- Sync only changes by diff with Merkle tree
- Client Libs for various languages
- REST API and gRPC access for clients
- Exposed wuth FUSE and NFS
- ACLs and authentication
- Data corruption protection with error correcting codes
- Search and analytics
- Snapshots and versioning
- Protection agains Byzantine failures and other failures
- Xan ve deployed on cluster on On-Prem
Feel free to fork it, change and use it in any way that you want. If you build something interesting and feel like sharing pull requests are always appreciated.
Please see CONTRIBUTING.md.