Projects today (current reality)¶
This page explains how “projects” work in Incan today, and what is planned next.
The current model¶
Incan source files (.incn) are the source of truth.
When you run:
incan build path/to/main.incn
Incan generates a Rust project and builds it via Cargo.
No-install fallback
If you did not run make install, you can still run the incan binary directly:
- from the repository root:
./target/release/incan ...
- or via an absolute path (from anywhere):
/absolute/path/to/incan run path/to/file.incn
Where outputs go¶
On build, Incan prints the generated project directory and the compiled binary path. In practice, outputs live under:
- Generated Rust project:
target/incan/<name>/ - Built binary:
target/incan/<name>/target/release/<name>
See: CLI reference.
What gets regenerated¶
The generated Rust project under target/incan/ is tool-managed output. Treat it as generated:
- It is safe to delete:
rm -rf target/incan/ - Manual edits inside
target/incan/<name>/may be overwritten on the next build
Dependencies (today)¶
- For
rust::imports, the toolchain uses a curated “known-good” mapping for versions/features. - If a crate is not in the known-good list, you’ll need to request adding it (issue/PR) until the dependency system is expanded.
See: Rust Interop and RFC 013.
What’s planned¶
Future work aims to make the project lifecycle explicit and reproducible: