Skip to content

Development

Leonard Ramminger edited this page Aug 31, 2026 · 1 revision

Development

Repository layout

ycallr-cli/
  src/main.rs       # CLI entry and UX
  src/ffi_api.rs    # FFI wrappers (c_char-safe)
  scripts/ci/       # Release packaging
  packaging/reqpack/

Local build

cargo build --release
cargo run -- --version

If CARGO_TARGET_DIR points elsewhere in your environment, set an explicit target dir:

CARGO_TARGET_DIR=./target cargo build --release

Core dependency

ycallr-core = { path = "../ycallr-core", features = ["ffi"], default-features = false }

CI clones Coditary/ycallr-core beside the CLI workspace.

FFI notes

All core access goes through ycallr.h symbols. Use std::os::raw::c_char for C string pointers (required for aarch64 Linux CI).

Boundaries

  • HTTP and profile logic stay in ycallr-core
  • CLI changes should limit scope to parsing, prompts, and output
  • Do not commit dist/ or target/ (listed in .gitignore)

Testing

There is no dedicated CLI test suite yet. Validate with:

cargo build --release --locked
./target/release/ycallr --version

Core integration is covered by ycallr-core tests and FFI tests.

Clone this wiki locally