Development setup
You need a stable Rust toolchain. The repo pins it viarust-toolchain.toml,
so rustup installs the right channel and components automatically.
Before you open a PR
Run the same checks CI runs. All must pass:Workspace layout
See Pipeline Architecture for the four crates and how they fit together. The Sia integration stays behind thesia feature and a single SiaBackend implementation. The
compression/encryption/chunking code talks only to the StorageBackend
trait and must build and test against LocalBackend with no Sia node.
Conventions
- Public items carry doc comments. Run
cargo doc --workspaceto check. - Significant or hard-to-reverse design choices get an ADR.
- Update
CHANGELOG.mdunder[Unreleased]for user-visible changes.
Branch names and commit messages
Never commit tomain directly. Work on a branch and open a PR. Branches
mirror the commit convention (<type>/<short-kebab-description>), and
commit messages follow
Conventional Commits 1.0.0. The full
type/scope reference, examples, and enforcement plans live in
CONTRIBUTING.md
in the repository. That file is the source of truth for contributors, so
follow it directly rather than this summary.