selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Dawn logo

Self-host Dawn

v0.102.0

Small, elegant functional language with effects in types

BetaOpen SourceApache-2.0
Updated14 hours ago
LanguagePython
Setup difficultyAdvanced
Stars
153
Requires
C compiler (cc), JDK 21+
Install with Java

What is Dawn?

Dawn is a compact functional programming language with immutable data structures, algebraic data types, and exhaustive pattern matching. Its effect system makes side effects explicit in function signatures. The compiler is self-hosted and targets two backends — JVM bytecode and C — with machine-verified identical output. A cuTile backend compiles Dawn functions to NVIDIA GPU kernels via CUDA Tile IR. Memory management uses Perceus reference counting with reuse analysis, eliminating the need for a garbage collector. The standard library is implemented entirely in Dawn. Distribution options include a static Linux binary and a cross-platform JVM toolchain JAR (requiring JDK 21+).

Should you self-host Dawn?

Dawn scores 46/100 on selfhost.directory (how scoring works) and ranks #104 of 166 in Developer Tools. It has 153 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v0.102.0, came out on 24 October 2026.

Setup is advanced: plan for several services and some ongoing maintenance. It is Apache-2.0-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is openhands (87/100, 92 105 stars). It scores higher overall, so compare the two before you pick. See Dawn vs openhands side by side.

Features

  • Algebraic data types with exhaustive matching
  • Compile-time evaluation (comptime)
  • Effects in type signatures
  • GPU kernels via cuTile
  • Language Server Protocol (LSP)
  • Named effect handlers
  • Package manager
  • Perceus reference counting (no GC)
  • Self-hosted compiler
  • Standard library written in Dawn
  • Two peer backends (JVM and C)
  • WebAssembly (WASM) target

Dawn README

How to install Dawn

Install Dawn with Java

base=https://github.com/dawnop/dawn-lang/releases/latest/download curl -fsSLO $base/dawn-selfhost.jar curl -fsSLO $base/dawn-selfhost.jar.sha256 sha256sum -c dawn-selfhost.jar.sha256 printf 'pub fn main() -> Unit !io = println("hello, dawn")\n' > hello.dawn java -jar dawn-selfhost.jar run hello.dawn

JVM backend toolchain JAR with stdlib embedded. Runs on any platform with JDK 21+.

Dawn releases & version history

More in Developer Tools

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…