oku-fs
A distributed file system for use with the Oku browser.
To build, please install:
rustup.rs
, though many Linux distributions also package the Rust toolchain as well.libfuse
fuse
feature, but is otherwise optional.After pre-requisites are installed, you may run:
cargo build
for debug builds.cargo build --release
for release builds.cargo install --path .
to install.--features="<features separated by commas>"
to the build command.cli
- A command-line interface for performing file system operations.fuse
- Enables mounting the file system via FUSE.cli
feature is not enabled, this software will be installed as a development library.Files and directories are stored in replicas implemented as Iroh documents, allowing them to be shared publicly over the Mainline DHT or directly between Oku file system nodes.
Content discovery occurs over the Mainline DHT. Content discovery happens as follows:
It may seem unclear how a ticket allows one node to connect to another node behind NAT. N0, Inc maintains a network of Iroh nodes and relay servers, with the Iroh relay servers facilitating hole punching during document syncing.
The Iroh network's relay servers are currently free. When this is no longer the case, the Oku project will need to host its own relay servers.