Status and roadmap
Kon is being built and is not released. Nothing here should be read as a promise of stability yet.
Language
| Area | State | Notes |
|---|---|---|
| Integers, floats, bool | Works | |
| Structs, methods, enums, match | Works | |
| Option, Result, try | Works | |
| List, fixed arrays, String, str, Box | Works | Bounds and UTF-8 boundaries are checked |
| view, edit, take, with checked errors | Works | Errors name the line |
| const, modules, defer, let that binds once | Works | |
| Networking: TCP, UDP, a line-based server | Works | In std/net. No HTTP or TLS yet |
| Projects with local dependencies | Works | kon new, kon add. No registry |
| Generic functions and structs, interface bounds | Works | Still growing |
| Calling C | Partly | Numbers and simple values work; passing pointers is not established |
| String and str used interchangeably | Not yet | Written out by hand for now |
| Enums holding a List of themselves | Not yet | Worked around with indexes |
| Closures | Not yet | |
| Text interpolation | Not yet | In the specification, not in the compiler |
| Threads | Not yet | Waiting for closures and interfaces |
| Building shared libraries | Not yet |
Platforms
| Area | State | Notes |
|---|---|---|
| Windows x64 | Works | One-file kon.exe |
| Linux | Partly | The library's C code has run here; the compiler has not been checked here yet, and there is no one-file kon |
| macOS | Not yet | |
| Android, iOS | Not yet | No targets yet |
| WebAssembly | Not yet | Considered for after a backend of its own |
Self-hosting
The compiler is meant to be written in the language it compiles. It is partly there, so it still needs an older compiler to build. As of 31 October 2026:
- 24 of 63 compiler source files have run through the new pipeline. Some of those are parallel replacements that do not yet stand in for the original.
- The conformance suite stands at 237 of 280 cases.
- The command line, front end, most of the back end and the ownership checker still need that older compiler to build.
Safety evidence
The checker rejects the wrong programs it has been tested on, and at the last full check 58 ownership fixtures and 76 native fixtures passed. A fuzzer compared 1,133 generated programs with C and found no wrong results, on a limited set of language forms. This is not a proof. No independent attack campaign has run yet, so the claim that safe code cannot corrupt memory remains a design goal until one has.
Principles
When goals conflict, the higher one wins:
- Safety. Code without
unsafecannot corrupt memory. A promise of safety cannot be loosened later. - Readability. Someone with basic programming knowledge can read code and see who owns the data, without learning lifetimes.
- Performance. Release builds run level with C. Beyond that, speed comes from the compiler or from explicit
unsafe. - Lightness. Small programs, no garbage collector, no heavy runtime.
- Features. A feature is added only when it breaks none of the above.
Two hard rules follow: a new feature must not slow existing code, and a feature that makes code harder to read must justify its existence.
Roadmap
- Finish the basics and self-hosting, so that the compiler builds itself.
- Complete closures, recursive types, pointers across C and threads.
- A backend of Kon's own for fast debug builds, then WebAssembly.
- One-file
konfor Linux, then macOS. - A full attack campaign against the compiler and its output, including testers who did not write the checker.
- A first release, then widen to applications and tools.
The order may change, and none of these have dates.
Resources
- Get started, language tour and library reference
- Error list and questions
- The source repository is private at the moment. Kon is under the MIT license, and programs you build with it are yours.