Routes without framework ceremony
Functions and typed responses make small web applications readable without a VM or application framework in production.
A native language for the web
Vonk turns direct, readable web applications into freestanding Linux binaries—through its own frontend, verified stack IR, instruction encoders and ELF64 writer.
Why Vonk exists
Vonk gives web applications a clear language surface and a transparent path from source code to a native executable.
Functions and typed responses make small web applications readable without a VM or application framework in production.
The compiler emits x86-64, AArch64 and RV64 instructions itself—no textual assembly or hidden LLVM phase.
Source graphs, JSON, HTTP, memory, recursion and external capabilities have explicit limits and deterministic failures.
record User { name: string, active: bool }
fn greeting(user: User) -> string {
return "Hello, " + user.name + "!";
}
route GET "/hello" {
const user = User("Ada", true);
return text(greeting(user));
}Familiar surface, native core
Vonk combines direct route definitions with static types and deterministic native output. Values are immutable by default; external authorities cannot be copied accidentally.
A complete vertical slice
The runtime is authored in Vonk and compiled through the same backend as application code. These capabilities execute today.
Own encoders for Linux amd64, ARM64 and RV64IMD, with checked branches, PIE addressing and W^X segments.
Bounded validation, escaping and typed field extraction.
Native extended wire protocol, parameters and transactions.
Typed text, HTML, JSON and errors, strict routes, static ranges, ETags and gzip sidecars.
Bounded workspace reads and atomic writes with traversal and symlink protection.
Native Let's Encrypt issuance and a fast, bounded public TLS frontend.
Formatter, language server, IR inspection, address maps, ELF symbols and a GDB workflow.
Bounded arena storage, immutable handles and affine database/workspace capabilities.
The application model
Vonk brings language, runtime and deployment into one coherent product: typed source enters; a focused Linux executable comes out.
route GEToptional<T>T! result and ?A focused foundation, growing deliberately. POST bodies, templates, authentication, sessions, remote database TLS/SCRAM, async I/O and HTTP/2 remain explicit roadmap items.
The compiler pipeline
A C11 bootstrap builds the compiler. Application builds then stay inside Vonk's frontend, verifier, encoders and executable writer.
Live native runtime
Each action calls a route in the same generated Linux executable that assembled this page. Try text, recursion, typed JSON and an HTTP error.
$ curl /api/health
Select an operation to execute real Vonk code.
Production transport
The public edge delegates mature cryptography to OpenSSL, then forwards a bounded HTTP/1.1 request to the freestanding application on localhost.
PUBLIC TRANSPORT → MATURE CRYPTO → PROCESS-ISOLATED ROUTES
Support and documentation
The documentation explains both the approachable language surface and the native machinery underneath it—from your first function to deployment behind the OpenSSL edge.
Learn declarations, static types, control flow, records, immutable lists and optionals.
Language essentials →Return text, HTML, validated JSON or explicit errors from compiled route handlers.
Web guide →Use bounded JSON, PostgreSQL parameters and capability-rooted file operations.
Data and I/O →Build for three targets, run checks, terminate TLS and inspect native binaries.
Deployment guide →Built honestly
Vonk separates implemented behaviour, structural checks and executed evidence. The roadmap favours demonstrable correctness over broad claims.
Start with the source
make build && ./bin/vonk build examples/hello.vonk -o build/helloExperimental · open source · built without a hidden application backend