Makori compiles to native binaries with ownership-based memory, structured concurrency, and zero runtime dependencies. One file to deploy. No GC. No VM.
fn main() { let fd = http_bind(8080) print("listening on :8080") crew t { let worker = t.kick(serve(fd)) print(worker.join()) } } fn serve(fd: int) -> int prove fd > 0 { let c = http_accept(fd) let _ = c |> http_respond_json(200, "{\"ok\":true}") return 0 }
A compiled language that doesn't make you choose between safety and speed.
Source compiles to C, then to a standalone binary. Constant folding, zero-copy string views, wyhash maps. Also targets Cranelift and LLVM.
Hold, share, arenas, and scope-based cleanup. Compile-time move checking. Bounds checks in debug and release. No tracing collector.
crew/kick/join — every task has an owner. Typed channels, select, fan parallelism, actors. No orphan goroutines. No async coloring.
HTTP, TLS, WebSocket, SQLite, Postgres, SIP, protobuf, gRPC, QUIC — in the stdlib. No framework hunting.
Chain calls with |> for readable data flow. Add prove contracts for compiler-verified preconditions. Zero-cost abstractions.
live fn compiles to swappable function pointers. Update running servers without dropping connections. Foundation for zero-downtime deploys.
Everything you need to get started and go deep.
Real infrastructure running in production.
A production load balancer written entirely in Makori
Six balancing strategies, automatic health monitoring, sticky sessions, admin dashboard with Prometheus metrics. Demonstrates Makori in latency-sensitive concurrent network infrastructure.
Named after the Jawed Limia (Limia mandibularis), a small freshwater fish endemic to Hispaniola. Like its namesake, Makori is small and thrives in its environment.
When we started this project, we called it Mako. As the language grew, we realized the name was already taken by a well-established Python templating engine that has served its community since 2006. Rather than cause confusion between two very different tools, we chose a new name that could stand on its own.
Makori keeps everything you know — the same .mko files, the same syntax, the same compiler. The mako command still works as an alias. Nothing breaks. We just gave the language a name it can grow into without stepping on anyone else.
Install and build your first binary.
Then: makori init myapp && makori run myapp/main.mko