Skip to content

Coming from Rust (evaluator)

This page routes Rust-first evaluators who want to understand where Incan keeps Rust-shaped semantics and where it trades surface syntax for application-code ergonomics.

Install first

If you already use Cargo and want a source-built compiler, install the release source directly from Git with the LSP feature enabled so both incan and incan-lsp are installed:

cargo install --git https://github.com/encero-systems/incan.git --tag v0.4.0 --locked --features lsp --bin incan --bin incan-lsp
incan --version
incan-lsp --version

If you want the faster binary toolchain path instead, use the release installer. This path can also bootstrap the stable Rust backend through rustup on a fresh machine:

curl -fsSL https://github.com/encero-systems/incan/releases/latest/download/install.sh | bash

export PATH="$HOME/.local/bin:$PATH"
incan --version
incan-lsp --version

After installation, create a project and run the normal first-contact loop:

incan new hello --yes
cd hello
incan run
incan test
incan build --release

What you should do next

What to look for

  • Clear boundaries: what exists today vs roadmap (especially for WASM/frontend)
  • “Stable vs experimental” labeling without forcing you to read RFCs first
  • Rust-shaped Result composition: Incan keeps map, map_err, and_then, or_else, inspect, and inspect_err rather than adding Python-style aliases, with callable arguments documented as Callable[...]