Incan Roadmap (Status-Focused)¶
This page tracks the implementation status and near-term planning (without being prescriptive about timelines).
Incan development is driven by RFCs (Request for Comments).
- An RFC captures a design proposal for a feature, including syntax, semantics, and implementation details.
- RFCs are not necessarily implemented in the order they are written.
See the RFCs page for more information about RFCs.
RFC status table¶
This table is autogenerated from the RFC files (it reads each RFC’s **Status:** ... line).
Tip: press Esc to clear.
| RFC | Status | Track | Title |
|---|---|---|---|
| RFC 000 | Done | closed / implemented | Incan Core Language RFC (Phase 1) |
| RFC 001 | Superseded | closed / superseded | Test Fixtures |
| RFC 002 | Superseded | closed / superseded | Parametrized Tests |
| RFC 003 | Blocked | proposed / active | Frontend & WebAssembly Support |
| RFC 004 | Draft | proposed / active | Async Fixtures |
| RFC 005 | Done | closed / implemented | Rust Interop |
| RFC 006 | Planned | proposed / active | Python-Style Generators |
| RFC 007 | Superseded | closed / superseded | Inline Tests |
| RFC 008 | Done | closed / implemented | Const Bindings |
| RFC 009 | Planned | proposed / active | Sized Integer Types & Builtin Type Registry |
| RFC 010 | Draft | proposed / active | Temporary Files and Directories |
| RFC 011 | Done | closed / implemented | Precise Error Spans in F-Strings |
| RFC 012 | Planned | proposed / active | JsonValue Type, Enum Methods, and Enum Trait Adoption |
| RFC 013 | Done | closed / implemented | Rust Crate Dependencies |
| RFC 014 | Draft | proposed / active | Error Handling in Generated Rust Code |
| RFC 015 | In Progress | proposed / active | Hatch-like Tooling (Project Lifecycle CLI) |
| RFC 016 | Planned | proposed / active | loop and break <value> (Loop Expressions) |
| RFC 017 | Unknown | proposed / active | Validated newtypes with implicit coercion (pydantic-like feel) |
| RFC 018 | Planned | proposed / active | Language Primitives for Testing |
| RFC 019 | Planned | proposed / active | Test Runner, CLI, and Ecosystem |
| RFC 020 | Planned | proposed / active | Offline / Locked / Reproducible Builds (Cargo Policy + Generated Project Contract) |
| RFC 021 | Done | closed / implemented | Model field metadata and schema-safe aliases |
| RFC 022 | Done | closed / implemented | Namespaced stdlib modules and compiler→stdlib handoff |
| RFC 023 | Done | closed / implemented | Compilable Stdlib & Rust Module Binding |
| RFC 024 | Planned | proposed / active | Extensible Derive Protocol |
| RFC 025 | Unknown | proposed / active | Multi-Instantiation Trait Dispatch |
| RFC 026 | Unknown | proposed / active | User-Defined Trait Bridges |
| RFC 027 | Unknown | proposed / active | incan-vocab — Library Vocabulary Registration Crate |
| RFC 028 | Unknown | proposed / active | Trait-Based Operator Overloading |
| RFC 029 | Unknown | proposed / active | Union Types and Type Narrowing |
| RFC 030 | Unknown | proposed / active | std.collections — Extended Collection Types |
| RFC 031 | Unknown | proposed / active | Incan Library System — Phase 1 (Local Path Dependencies) |
| RFC 032 | Unknown | proposed / active | Value Enums — StrEnum and IntEnum |
| RFC 033 | Unknown | proposed / active | ctx — Typed Configuration Context |
| RFC 034 | Unknown | proposed / active | incan.pub — The Incan Package Registry |
| RFC 035 | Unknown | proposed / active | First-Class Named Function References |
| RFC 036 | Unknown | proposed / active | User-Defined Decorators |
| RFC 037 | Unknown | proposed / active | Native Web and HTTP Stdlib Redesign |
| RFC 038 | Unknown | proposed / active | Variadic Positional Args and Keyword-Argument Capture (*args / **kwargs) |
| RFC 039 | Unknown | proposed / active | race for Awaitable Concurrency |
| RFC 040 | Unknown | proposed / active | Scoped DSL Glyph Surfaces |
| RFC 041 | Unknown | proposed / active | First-Class Rust Interop Authoring |
Core Phases (overview)¶
- Core language + runtime
- Stdlib + tooling (fmt, test, LSP, VS Code extensions)
- Web backend (Axum)
- Frontend/WASM (UI, JSX, 3D)
- Rust interop
Current Focus¶
- Language stability/feature freeze (core semantics + test surface):
- Frontend/WASM (RFC 003): JSX wrapper, signals/runtime, wasm codegen, dev/prod tooling
Ecosystem keystones (planned)¶
These are the cross-cutting capabilities that make Incan feel “capable” for real engineering work. This list is intentionally kept high-level and status-oriented (RFCs will be added over time).
- Standard library contracts for real programs (HTTP, filesystem/paths, process, env, time, logging, config)
- Capability-based access model for IO/process/env/network (secure-by-default for tools)
- Interactive execution engine:
incan run -i(expression-first) → eventual Jupyter/kernel interop → richer workspace UX - Packaging/distribution story for tools and projects (reproducible builds, artifact creation)
Status by Area (high-level)¶
- Core language: see RFC 000 / RFC 008
- Tooling (build/run/fmt/test): see the CLI docs and RFC 001/RFC 002/RFC 004/RFC 007 for the planned testing surface
- Rust interop: see RFC 005 / RFC 013 and the Rust Interop guide
- Web: see Web Framework guide (stabilization ongoing)
Upcoming (next)¶
- WASM/JSX parser & codegen
- UI runtime (signals/effects/components) + examples
- Test runner fixture execution (setup/teardown lifecycle)
- Dev server + prod build pipeline for WASM target
- Python-style generators (RFC 006) —
yield+Iterator[T]→ Rustgenblocks - Inline tests (RFC 007) —
@testin source files, Rust-style proximity
Deferred / Later¶
The following items are intentionally deferred to later, and might be revisited in the future:
- SSR/SSG for frontend: Server-Side Rendering / Static Site Generation for the WASM/UI stack (render pages ahead of time or on the server, then hydrate).
- Desktop/mobile via wgpu: using the wgpu graphics stack to run Incan apps as native desktop/mobile apps (instead of browser-only).
- CRDT/collab features: real-time collaboration primitives (Conflict-free Replicated Data Types) for things like collaborative editing, shared state, etc.
Guides¶
- Web framework guide: Web framework
- Rust interop guide: Rust interop
- Testing guide: Testing
Interested in contributing?¶
See the Contributing page for more information about contributing to Incan.