Skip to content

radumarias/rfs

Repository files navigation

rfs

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.

A short story

The Hitchhiker's Guide to Building a Distributed Filesystem in Rust The_beginning

Blog and tutorial

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.

Wiki

There is also a wiki for docs and ideas.

Key features

  • 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

Contribute

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.

How to contribute

Please see CONTRIBUTING.md.

About

Distributed filesystem written in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages