Everything a contributor needs to hack on Enkryptit!.
Note
This folder is written in English by convention. The user-facing guides are bilingual in
../user-guide.
The workspace helperscripts live in xtask/:
| Command | What it does |
|---|---|
cargo xtask build / cargo xtask build --release |
Build eck (debug/release). |
cargo xtask install |
cargo install --path ./eck. |
cargo xtask test |
Runs the test binary --test=eck_tests. |
cargo xtask fuzz |
Lists fuzz targets (cargo fuzz list). |
cargo xtask fuzz <target> [FLAGS] |
Runs a libFuzzer target; extra flags are passed through (e.g. -runs=1000, -max_total_time=60). |
cargo xtask fmt |
cargo fmt. |
cargo xtask doc |
Opens rustdoc with private items. |
Cargo.toml # workspace (eck, xtask; eck/fuzz excluded)
eck/ # the crate & binary
eck/src/ # see dev/modules.md
eck/test/ # unit + integration tests + mocks
eck/fuzz/ # cargo-fuzz targets (nightly toolchain)
xtask/ # dev helper binary
doc/ # this documentation
dev/ # benchmarking & audit notes
PROGRESSION.md # day-by-day dev log
CONTRIBUTING.md # contribution rules
cargo fmtclean.cargo clippy -- -D warningsclean.cargo xtask testgreen (unit + integration + TUI flows).cargo doc --no-deps -D warningsclean.cargo auditgreen (seeaudit.tomlallowlist).- The fuzz targets keep running without crashing (see fuzzing).
- RustDoc comments on public items.
The repo runs GitHub Actions:
ci.yml— fmt / clippy / tests / rustdoc / audit ondev+main(push & PR).ci.yml— bounded fuzz smoke +#[ignore]d OS-keyring roundtrip.release.yml— taggedv*release matrix (draft release).dependabot.yml— weekly dependency updates.
See the workflow files under .github/workflows.
- Architecture — module design & data flows.
- Modules —
eck/srcmap. - Testing — test suite structure & isolation.
- Fuzzing — libFuzzer targets.
- Security — key handling, parameters & the audit allowlist.