The third sibling in the mobile-triad family — miniswift.run, minikotlin.run, and now minidart.run. A from-scratch Dart pipeline written in C, sharing the kavak frontend kernel with its siblings: lexer · Pratt parser · sema · type-system runtime. Emits WASM GC for class instances, vtables + call_ref for virtual dispatch, WASM EH for try/catch.
Sound null safety, generics, mixins, factory constructors,
records, patterns, async/await with Future, sealed
classes — everything the language defines. Same playbook as
miniswift.run and minikotlin.run before it: a real compiler
emitting real WASM, not a transpiler-to-JS shim.
class Greeter { final String name; Greeter(this.name); String hello() => 'Hi, $name!'; } void main() { final g = Greeter('world'); print(g.hello()); }
// once minidart ships, this will print:
Hi, world!
minidart is the v1 ship target of kavak — the mobile-triad's shared frontend kernel. Phase 0 audit measured 58% structural overlap between the existing Swift (msf) and Kotlin (mkf) frontends; minidart is what proves the shared trunk works for a third language. Dart contributes its descriptor (keyword + operator tables, string-template syntax, mixin grammar) and language-specific sema. Lexer, parser core, AST arena, type-system runtime, scope resolution, and diagnostics all come from the shared kernel.
Repository bones live alongside the sister projects. No compiler yet — minidart picks up the moment kavak's kernel (lexer, parser, sema, type system) is ready. kavak's Phase 0 audit shipped; one Dart-spec validation pass remains before Layer 1 code begins. After that, minidart's Phase 6 builds the descriptor; Phase 7 wires the WASM backend. Hello-world in your tab is the v1 ship target.