Skip to content

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):
    • RFC 000 (core semantics) Done
    • RFC 008 (const bindings) Done
    • Tests 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)

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] → Rust gen blocks
  • Inline tests (RFC 007) — @test in 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

Interested in contributing?

See the Contributing page for more information about contributing to Incan.