Programming language + compiler toolchain
Readable source.Native Rust binaries.¶
Incan is a statically typed language for clear application code that ships as native Rust binaries. You keep the intent readable; the compiler handles ownership, diagnostics, and the build path.
Readable source in. Native binaries out.
Incan vs Rust, side by side.¶
Same intent, same output. The Incan side stays Python-shaped and typed; Rust remains the artifact you can inspect when ownership and native deployment matter.
Incan source
model User:
name: str
age: int
def greet_user(user: User) -> str:
return f"Hello, {user.name}!"
def main() -> None:
user = User(name="Incan", age=42)
println(greet_user(user))
Comparable Rust
#[derive(Debug, Clone)]
struct User {
name: String,
age: i64,
}
fn greet_user(user: &User) -> String {
format!("Hello, {}!", user.name)
}
fn main() {
let user = User {
name: "Incan".to_string(),
age: 42,
};
println!("{}", greet_user(&user));
}
Readable enough for humans. Strict enough for compilers.
Why Incan?¶
You write intent.Incan writes ownership.
AI makes syntax cheaper. Toolchains matter more.¶
When source text is cheap, trust moves to the toolchain. Correctness, diagnostics, inspectability, and deployment matter more than syntax.
Incan is built for that shift: a smaller typed language surface with Rust-native artifacts.
- Intent: models, errors, and mutability stay explicit.
- Diagnostics: stable checks, explanations, and inspection data.
- Inspectability: generated Rust and build reports.
- Deployment: native binaries instead of a Python runtime.
Duckborrowing in a nutshell.¶
Incan plans the Rust-facing ownership path. You keep writing clear application code.
Try Incan. Break it. Help shape it.¶
Incan is beta software. Run it, inspect the generated artifacts, and compare it with Python and Rust on real application code. The project earns trust through feedback.