RFCs (Design records)¶
RFCs are design/evolution records (PEP-style). They are primarily for contributors and advanced readers.
- RFCs are not canonical user docs.
- User docs may link to RFCs for background and rationale.
For status, see: Roadmap.
Index¶
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 | Draft | proposed / active | frontend and WebAssembly support |
| RFC 004 | Done | closed / implemented | async fixtures |
| RFC 005 | Done | closed / implemented | Rust Interop |
| RFC 006 | In Progress | proposed / active | Python-style generators |
| RFC 007 | Superseded | closed / superseded | Inline Tests |
| RFC 008 | Done | closed / implemented | Const Bindings |
| RFC 009 | Draft | proposed / active | Numeric type system and builtin type registry |
| RFC 010 | Draft | proposed / active | Python-style tempfile standard library |
| RFC 011 | Done | closed / implemented | Precise Error Spans in F-Strings |
| RFC 012 | Superseded | closed / superseded | JsonValue, enum methods, and enum trait adoption |
| RFC 013 | Done | closed / implemented | Rust Crate Dependencies |
| RFC 014 | Rejected | proposed / active | user-facing runtime error behavior for generated code |
| RFC 015 | Done | closed / implemented | hatch-like tooling (project lifecycle CLI) |
| RFC 016 | Done | closed / implemented | loop and break <value> (Loop Expressions) |
| RFC 017 | In Progress | proposed / active | Validated newtypes with implicit coercion (pydantic-like feel) |
| RFC 018 | Done | closed / implemented | language primitives for testing |
| RFC 019 | Done | closed / implemented | test runner, CLI, and ecosystem |
| RFC 020 | Done | closed / implemented | 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 | Done | closed / implemented | multi-instantiation trait dispatch |
| RFC 026 | Superseded | closed / superseded | User-Defined Trait Bridges |
| RFC 027 | Done | closed / implemented | incan-vocab — Library Vocabulary Registration Crate |
| RFC 028 | Done | closed / implemented | trait-based operator overloading |
| RFC 029 | Done | closed / implemented | union types and type narrowing |
| RFC 030 | Draft | proposed / active | std.collections — extended collection types |
| RFC 031 | Done | closed / implemented | Incan Library System — Phase 1 (Local Path Dependencies) |
| RFC 032 | Blocked (by RFC 033) | proposed / active | value enums — StrEnum and IntEnum |
| RFC 033 | Draft | proposed / active | ctx — typed configuration context |
| RFC 034 | Draft | proposed / active | incan.pub — The Incan Package Registry |
| RFC 035 | Done | closed / implemented | First-Class Named Function References |
| RFC 036 | Draft | proposed / active | user-defined decorators |
| RFC 037 | Draft | proposed / active | native web and HTTP stdlib redesign |
| RFC 038 | Done | closed / implemented | Variadic Args and Unpacking (*args / **kwargs) |
| RFC 039 | Draft | proposed / active | race for awaitable concurrency |
| RFC 040 | Done | closed / implemented | Scoped DSL Surface Forms |
| RFC 041 | Done | closed / implemented | First-Class Rust Interop Authoring |
| RFC 042 | Done | closed / implemented | Traits Are Always Abstract |
| RFC 043 | Draft | proposed / active | Rust Trait Implementation from Incan |
| RFC 044 | Draft | proposed / active | Open-Ended Trait Methods |
| RFC 045 | Draft | proposed / active | Scoped DSL symbol surfaces |
| RFC 046 | Draft | proposed / active | Computed properties (property name -> Type) |
| RFC 047 | Draft | proposed / active | Lightweight directed graph types (stdlib) |
| RFC 048 | Done | closed / implemented | Checked contract metadata, Incan emit, and interrogation tooling |
| RFC 049 | Done | closed / implemented | if let and while let pattern control flow |
| RFC 050 | Done | closed / implemented | Enum methods and enum trait adoption |
| RFC 051 | Draft | proposed / active | JsonValue for std.json |
| RFC 052 | Done | closed / implemented | Module Static Storage |
| RFC 053 | Done | closed / implemented | Formatter vertical spacing (three blank-line buckets) |
| RFC 054 | Done | closed / implemented | Explicit call-site generic arguments for function and method calls |
| RFC 055 | Done | closed / implemented | std.fs — pathlib-shaped filesystem APIs with chunked file I/O |
| RFC 056 | Planned | proposed / active | std.io — in-memory byte streams and binary parsing helpers |
| RFC 057 | Done | closed / implemented | @rust.allow(...) — targeted Rust lint suppression for generated code |
| RFC 058 | Planned | proposed / active | std.datetime — temporal values, intervals, and runtime timing |
| RFC 059 | Planned | proposed / active | std.regex — regular expressions, matches, captures, and replacement |
| RFC 060 | Draft | proposed / active | std.uuid — UUID parsing, generation, and formatting |
| RFC 061 | Draft | proposed / active | std.compression — codec-based compression and decompression |
| RFC 062 | Draft | proposed / active | std.archive — archive container creation and extraction |
| RFC 063 | Draft | proposed / active | std.process — process spawning and command execution |
| RFC 064 | Draft | proposed / active | std.encoding — binary-text encoding and decoding utilities |
| RFC 065 | Draft | proposed / active | std.hash — stable hashing primitives for data and integrity workflows |
| RFC 066 | Draft | proposed / active | std.http — Incan-first HTTP client and request/response surface |
| RFC 067 | Draft | proposed / active | std.ci — deterministic CI and automation scripting primitives |
| RFC 068 | Done | closed / implemented | protocol hooks for core language syntax |
| RFC 069 | Draft | proposed / active | list.repeat Helper for Fixed-Length Initialization |
| RFC 070 | Draft | proposed / active | Result Combinators for Result[T, E] |
| RFC 071 | Draft | proposed / active | Pattern alternation in match and if let |
| RFC 072 | Draft | proposed / active | Ambient log Surface with Tracing-Backed Runtime Policy |
| RFC 073 | Draft | proposed / active | environment matrices and toolchain constraints |
| RFC 074 | Draft | proposed / active | template rendering and boilerplate provenance |
| RFC 075 | Draft | proposed / active | starter profiles and capability packs |
| RFC 076 | Draft | proposed / active | project mutation policy and recovery |
| RFC 077 | Draft | proposed / active | workspace and multi-package projects |
| RFC 078 | Draft | proposed / active | tool execution and typed workflow actions |
| RFC 079 | Draft | proposed / active | incan.pub artifact graph |
| RFC 080 | Draft | proposed / active | AI assets, models, prompts, evals, and agent metadata |
| RFC 081 | Draft | proposed / active | Language-shaped DSL embeddings |
| RFC 082 | Draft | proposed / active | Checked API documentation generation |
| RFC 083 | Done | closed / implemented | Symbol and method aliases |
| RFC 084 | Draft | proposed / active | RHS partial callable presets |
| RFC 085 | Planned | proposed / active | Field metadata and type-shaped constraints |
| RFC 086 | Planned | proposed / active | Schema descriptors and adapters |
| RFC 087 | Planned | proposed / active | Reusable field contracts and structural model composition |
| RFC 088 | Draft | proposed / active | Iterator adapter surface |
See also¶
- RFC template: TEMPLATE
- How to write an RFC: Writing RFCs (how-to)