Welcome to Zynx
Zynx is a statically typed systems programming language with an LLVM-based backend, combining high-level ergonomics—deterministic memory management and generics—with native-code performance.
At a Glance
- Deterministic Memory: Ownership and borrow checking enforced at compile time.
- Zero-Cost Abstractions: Generics and interfaces resolve via monomorphization to efficient C.
- C Interoperability: Direct C API calls and header imports via
bindgen. - Integrated Tooling: A single
zynxbinary for compiling, formatting, package management, and testing.
Core Concepts
- Ownership & Memory: Precise control over allocation and cleanup. See Memory Model.
- Explicit Error Handling: Error unions (
T!) withtry/catchpropagation. See Error Handling. - Enums & Pattern Matching: Closed sets with exhaustive
matchcontrol flow. See Enums. - Async/Await: Hot-start tasks with an explicit
Future<T>model. See Async/Await. - Static Linking: Predictable, self-contained deployments by default. See Static Linking.
Quick Start
Your First Program
import std.os;
fn main() {
os.write("Hello, world!\n");
}
Run it directly:
zynx run main.zx
Next Steps
- Installation: Build the
zynxcompiler from source. - Hello World: Walk through your first program and basic CLI usage.
- Language Reference: Explore types, control flow, and idiomatic Zynx.