Jik

Clear, concise code for efficient native programs.

Region-based memory

Control lifetimes without managing every allocation

Functions can place returned data directly in a caller-selected region. Temporary strings and collections are freed together when the function returns, and compiler checks prevent references from outliving their data.

  • Caller-controlled result lifetimes
  • Bulk reclamation without garbage collection
  • Compiler-checked references between regions

What Jik Is Built For

Simple and Readable Code

Jik is statically typed, but keeps common programs concise with type inference, optional annotations, and straightforward syntax.

Practical Language Features

Vectors, dictionaries, options, variants, error handling, a standard library, and a growing package ecosystem support real programs.

Region-Based Memory

Composite values are allocated into regions that determine their lifetime, while compiler checks prevent references across regions with incompatible lifetimes.

Predictable C Output

Jik uses a source-to-C compilation model, producing predictable generated C that can be inspected, debugged, and built with existing toolchains.

Documentation

  • Language overview Tour of syntax, types, modules, memory management, error handling, and other things.
  • Memory management Region allocation, local regions, explicit allocation targets, and returning composite values.
  • Standard library The Jik standard library reference.
  • Official packages Packages for Jik, including setup instructions and import examples.
  • Examples Complete example programs from the repository.

News

Status

Jik is actively developed and is available as a series of 0.1.0 alpha releases. Some language and library interfaces may still change. Current development focuses on compiler correctness, language ergonomics, and standard library growth.

Join the Jik community

Ask questions, share projects, and discuss the language with other Jik users.

Join the Discord server