Introducing Koru

· 5 min read

We’re excited to introduce Koru: an AI-first, event-driven systems programming language that extends Zig with powerful zero-cost abstractions.

Why Another Language?

Koru isn’t about replacing what works. It’s about adding a thin layer of event abstractions on top of Zig’s proven foundations. Every .kz file is valid Zig—we just prefix Koru constructs with ~.

Events as First-Class Citizens

The core idea is simple: events declare their inputs and possible output branches upfront.

~event parse { input: []const u8 }
| success { ast: AST }
| error { message: []const u8 }

When you invoke an event, you must handle all branches explicitly:

~parse(data)
| success ast |> process(ast)
| error err |> log(err.message)

No hidden exceptions. No unhandled cases. Just explicit, traceable control flow.

Why AI-First?

Event boundaries create natural bounded contexts that AI assistants understand intuitively. Each event is a clear contract—AI can implement a proc knowing exactly what inputs are available and what outputs are expected, without understanding the entire codebase.

Event Flow Example

Here’s how events chain together in a typical workflow:

Event flow diagram showing fetch, parse, validate, and process steps with success and error branches

Each arrow represents an event continuation with explicit branch handling.

What’s Next

We’re building in the open. The compiler is self-hosted (written in Koru), and we’re actively developing the standard library and tooling.

Stay tuned for more posts about phantom types, purity tracking, and metaprogramming with FlowAST.


This is a placeholder blog post. Real content coming soon!