#encryption #encryption-key #filesystem #storage #banyan

banyanfs

A modern end-to-end encrypted filesystem built on distributed block replication primitives

3 unstable releases

0.2.1 Mar 28, 2024
0.2.0 Mar 22, 2024
0.1.0 Mar 20, 2024

#292 in Cryptography

Download history 273/week @ 2024-03-18 160/week @ 2024-03-25 54/week @ 2024-04-01

487 downloads per month

MIT/Apache

375KB
9K SLoC

BanyanFS

BanyanFS is a work-in-progress distributed file system that is designed to be privacy centric, with collaborative change tracking and versioning, that can scale to exabytes of data.

This library is currently powering the file management system in the Banyan storage platform.

Features

  • End-to-end encryption
  • Block-based network storage
  • Local block cacheing
  • Native CID addressing for internal files and external encrypted blocks
  • Encryption key management
  • Full WASM support
  • Async & Multithread support
  • Recursive mounting
  • Merkle-CDRT based version merging
  • Native IPFS integration
  • FUSE filsystem
  • S3 service

Contributing

We're currently in the process of cleaning up some cruft, standardizing some internal patterns, and formalizing a specification for both the transfer protocol and the behavior of the internal file system that has been in progress alongside the development of the Banyan platform.

We welcome issues and general feedback. If you're interested in contributing a fix you're welcome to open a PR, please open an issue before pursuing any refactors or feature changes so we can make sure they're in line with our clean up efforts.

Development

If you would like to use BanyanFS in your own project, we maintain protocol and format compatibility between major versions but currently do not backfill fixes or maintain LTS support for any specific version. We recommend using the latest version for any new projects. If you do encounter any issues or have compatibility concerns please open an issue and we'll do our best to address it.

Dependencies

~16–36MB
~574K SLoC