Open source programming language · Experimental

Build useful software with Ziran.

Write clear .zi programs, check them before they run, and choose native C, C++, Go, or a supported portable bundle.

  • Readable modules and explicit imports
  • One checker for native and portable paths
  • A small, growing standard library

Build from source today. See current support.

hello.ziZiran
Score :: struct {
    value: s32;
    bonus: s32;
}

Answer :: () -> s32 {
    score: Score = Score.{
        value = 40,
        bonus = 2
    };
    return score.value + score.bonus;
}
$ ziran run hello.zib42

Why Ziran

From source to software.

Ziran keeps the language and toolchain together so you can start small and inspect each step.

01

Write readable code

Use procedures, records, enums, generics, imports, fixed arrays, and borrowed slices in the tested subset.

Explore the language →
02

Check before building

The compiler checks source and reports unsupported forms. Save checked .zir modules when you need an intermediate artifact.

Explore the tools →
03

Choose an output

Generate C, C++, or Go from supported programs. Package the portable subset as a .zib bundle.

Check target coverage →

What you can build

Start with real programs.

The examples use supported features and include commands you can run locally.

Your path

Go from zero to 42.

Clone the repository, build the tools with a C compiler and make, then check and run your first bundle.

Follow the quick start →
  1. InstallBuild the current toolchain from source.
  2. WriteSave a small .zi module.
  3. RunCheck, bundle, and see the result.

Project status

Working core.
Experimental edges.

Ziran is under active development. Native and portable targets cover tested subsets; language coverage and backend parity are still growing. The status page distinguishes what works today from planned work.

Read the current status →