Skip to main content

🍁 Kaede

A language for concise servers without giving up performance.

Write compact services with garbage collection, concurrency primitives, and direct Rust interop when you need it.

Sample
import std.http

mut app := std.http.App::new()

app.get("/", |req, res| {
res.send_text("hello, world!")
})

app.ws("/ws/echo", |req, ws| {
loop {
msg := ws.receive().unwrap()
match msg.kind {
std.http.WebSocketMessageKind::Close => return
_ => ws.send(msg)
}
}
})

app.listen(port=8080)

Why Kaede

Focused on practical server-side code

Concise server code

Garbage collection and an expression-oriented style keep HTTP services small without forcing manual memory management.

Built-in concurrency

Spawn tasks, communicate through typed channels, and write non-blocking services with syntax that stays compact.

Rust interop

Import Rust crates directly when you want CPU-bound or low-level work outside Kaede GC-managed hot paths.

Rich type system

Use enums, pattern matching, generics, structs, methods, and closures in the same language surface.

Start Here

The shortest path from install to real code

Examples

Reference projects in the repository