DCDart · A native systems language

Familiar syntax.
Extraordinary control.

Build closer to the machine with Dart syntax,
native performance, and memory you can reason about.

Memory, simplified ↗Automatic reference
counting.
Built into the compiler
Made to work together ↗Dart → NativeAhead of time. A plain C ABI. Explore the language ↓
The language

A familiar language.
Built for native software.

A working subset of Dart, built for systems code. Explicit where it matters. Readable where it counts.

Memory, without the mystery.

The compiler inserts reference counting and removes redundant operations. Objects stay put, so C can work with stable pointers.

Every bit has a purpose.

Fixed-width integers. Explicit conversions. Arithmetic that traps on overflow by default. Control that survives compilation.

Bring your own world.

Compile to object files and link with C. Freestanding code can live in firmware, kernels, or the native library you are building next.

DCDart PlaygroundRuns locally in your browser
LOOP.dart / Compiled source
@bare
u64 sumTo(u64 n) {
  var i = u64(0);
  var total = u64(0);
  while (i < n) {
    total = total + i;
    i = i + u64(1);
  }
  return total;
}
—

Ready to run · WebAssembly

Precompiled source. Change the input to compute a new result.

Get started

A small start.
A native binary.

v0.1.3 improves memory safety and Windows interoperability, with native iOS and Android targets. Install the compiler on macOS Apple Silicon or Linux through Homebrew, or Windows through Scoop.

Build your first program ↗
MACOS & LINUX
brew tap dotcorr/tap
brew trust --formula dotcorr/tap/dcdart
brew install dcdart

Windows: install with Scoop ↗. Linux requires glibc 2.39 or newer.

Compiling source also requires Dart SDK 3.12.2. Use an explicit prelude path, as shown in the setup guide.

Download the release archive ↗

Out in the open

Early. Working. Evolving.

Native output for macOS, Linux, Windows, iOS, Android, and bare metal. Installation packages and target support are documented separately.

Distribution Availability Status
Homebrew / DotCorr tap ↗ macOS ARM64 · Linux x86-64 / ARM64 v0.1.3 / LIVE
Scoop / DotCorr bucket ↗ Windows x86-64 v0.1.3 / LIVE
GitHub Releases ↗ macOS · Linux · Windows v0.1.3 / LIVE