About Kira

Kira as a Zig-hosted compiler and bootstrap toolchain, with a broader frontend surface and a smaller runnable subset.

Kira is a Zig-hosted compiler and bootstrap toolchain.

In this repository, it already includes:

  • kira_source, kira_lexer, kira_parser, kira_semantics, and kira_ir
  • a VM backend based on kira_bytecode and kira_vm_runtime
  • an LLVM/native backend based on kira_llvm_backend and kira_native_bridge
  • a hybrid runtime that can mix @Runtime bytecode with @Native code in one program
  • a managed toolchain flow for kirac, templates, and pinned LLVM bundles
  • a manifest-driven C ABI FFI workflow with generated Kira bindings

The Language Boundary

Kira's current language story has two layers:

  • a frontend surface that parses and models a broad language shape
  • an executable subset that is lowered into the shared IR and today's backends

That is why the repo can check richer construct-driven programs such as examples/complex_language_showcase while also proving a smaller, runnable core through examples/hello, the callback examples, and the hybrid/native corpus.

The Compiler-Library Split

The implementation draws an intentional line between compiler mechanisms and library behavior.

The compiler owns:

  • parsing
  • semantic validation
  • executable lowering
  • runtime/native orchestration
  • toolchain and FFI machinery

Kira source and generated Kira bindings own:

  • app code
  • construct-defined library shapes
  • higher-level framework patterns built on top of the language surface

That is why constructs, builder blocks, lifecycle hooks, and annotations appear in the language book even when the current runnable subset is smaller.

On this page