Concise server code
Garbage collection and an expression-oriented style keep HTTP services small without forcing manual memory management.
🍁 Kaede
Write compact services with garbage collection, concurrency primitives, and direct Rust interop when you need it.
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
Garbage collection and an expression-oriented style keep HTTP services small without forcing manual memory management.
Spawn tasks, communicate through typed channels, and write non-blocking services with syntax that stays compact.
Import Rust crates directly when you want CPU-bound or low-level work outside Kaede GC-managed hot paths.
Use enums, pattern matching, generics, structs, methods, and closures in the same language surface.
Start Here
Examples