Skip to content

Development

Artesian follows a small-workspace version of the structure used by mature Rust repositories such as OpenAI Codex, Zed, Polars, and Ruff: domain crates under crates/, shared workspace dependencies, crate-level integration tests, and repo-level command aliases.

Layout

  • Production code lives under crates/<crate>/src.
  • Public contract and integration tests live under crates/<crate>/tests.
  • Shared test-only utilities live in crates/artesian-test-support and are never published.
  • Future fixture-heavy tests should use tests/fixtures or test_data inside the owning crate.
  • Repository-level tooling lives in .cargo/, .config/, rustfmt.toml, clippy.toml, and justfile.

Commands

just ci

Equivalent cargo aliases:

cargo artesian-clippy
cargo artesian-test
cargo artesian-build

Use cargo test --workspace to verify default features and cargo test --workspace --all-features to verify optional backends such as Qdrant.

Diagrams

Hero diagrams live in docs/diagrams/*.mmd and are rendered to committed PNGs:

just diagrams

The target uses npx -y @mermaid-js/mermaid-cli, so no global Mermaid install is required. The renderer needs Node.js and a working headless Chromium/Puppeteer runtime; on CI this is provided by ubuntu-latest, while local Linux systems may need Chromium runtime libraries from the distribution package manager.