Write readable code
Use procedures, records, enums, generics, imports, fixed arrays, and borrowed slices in the tested subset.
Explore the language →Open source programming language · Experimental
Write clear .zi programs, check them before they run, and choose native C, C++, Go, or a supported portable bundle.
Build from source today. See current support.
Score :: struct {
value: s32;
bonus: s32;
}
Answer :: () -> s32 {
score: Score = Score.{
value = 40,
bonus = 2
};
return score.value + score.bonus;
}
Why Ziran
Ziran keeps the language and toolchain together so you can start small and inspect each step.
Use procedures, records, enums, generics, imports, fixed arrays, and borrowed slices in the tested subset.
Explore the language →The compiler checks source and reports unsupported forms. Save checked .zir modules when you need an intermediate artifact.
Generate C, C++, or Go from supported programs. Package the portable subset as a .zib bundle.
What you can build
The examples use supported features and include commands you can run locally.
Model data and compute a result with a small complete program.
See example → 02 / LibraryText processingImport a standard module and check text with portable operations.
See example → 03 / ToolchainNative outputTake the same source through the checker and generate native targets.
See commands →Your path
Clone the repository, build the tools with a C compiler and make, then check and run your first bundle.
.zi module.Project status
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 →