Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

For Developers

Install Rust

If you don’t have Rust installed, please see the Rust Installation Instructions.

Workspace and crates

The repo is a Cargo workspace. The root package is the CLI binary; the core logic lives in a library crate:

PackagePathRole
datui(root)The datui CLI binary (the one you run). cargo build and cargo run from the root build/run it.
datui-libcrates/datui-libCore library (TUI, data handling, config, etc.).
datui-clicrates/datui-cliShared CLI definitions (Args, etc.) and the gen_docs binary used by the docs build.
datui-pyo3crates/datui-pyo3Python bindings. See Python Bindings

From the repo root:

  • cargo build — build the datui CLI binary (and its dependency, datui-lib).
  • cargo run — run the CLI (e.g. cargo run -- --help).
  • cargo build --workspace — build all workspace packages (root + crates/datui-lib + crates/datui-cli).
  • cargo test --workspace — test all workspace packages.
  • cargo run -p datui-cli --bin gen_docs — run the docs generator (used by the docs build script).

No special config (e.g. default-members or .cargo/config) is needed; the root package is the binary.

Compiling

Compile Datui using cargo:

# Build the CLI binary (default from root)
cargo build

# Build everything (CLI + library + gen_docs)
cargo build --workspace

# Release build of the CLI (what gets installed / packaged)
cargo build --release
  • The datui CLI binary is at target/debug/datui or target/release/datui (built from the root package).
  • The gen_docs binary is built from datui-cli and is used by the documentation build.
  • datui-pyo3 is the Python binding crate; it is not a workspace member. See Python Bindings for how to build and test it.

The release build will take significantly longer to compile than debug. But, the release build is faster and has significantly smaller size.

More Resources