Skip to content

Coming from Rust (evaluator)

This route is for Rust-first evaluators deciding whether Incan offers a useful higher-level boundary for application code.

Choose your route

Add a scoped crate boundary

Add a Rust crate locks regex, explicitly bakes a project extension, and runs the program through the normal Incan path. That proves the supported boundary without promising that every Rust crate API maps naturally into Incan.

Install once

Follow Getting Started for the current stable release channel, installer choices, and canonical first-project commands. Development tutorials declare their required compiler range separately.

What transfers

  • Native compilation, explicit Result and Option values, traits, enums, pattern matching, and crate access
  • Reproducible manifests and lockfiles
  • A preference for compiler-visible contracts over runtime convention

What changes

  • Ownership and borrowing remain implementation concerns at Rust boundaries, but ordinary Incan application code does not expose Rust lifetime syntax.
  • Models, derives, named arguments, and Python-shaped control flow reduce authoring ceremony.
  • Generated Rust is inspectable backend output, not the public source or ABI compatibility contract.

What not to expect

  • A low-level Rust replacement for kernels, unsafe systems work, or exact control over allocation and representation
  • Every crate API to feel natural without a small wrapper
  • Stable compatibility based on generated Rust internals

Continue

Contributing to the compiler

The contributor journey is separate from learning Incan as a user. Use the Contributor Book, compiler architecture, and RFC index when you want to work on the toolchain itself.