Skip to main content

Welcome to Zith

Quick Start

New to Zith? Start here:

  1. Why Zith? - Learn why Zith is great for systems programming
  2. Installation - Set up Zith on your machine
  3. Quick Start - Write your first program

What is Zith?โ€‹

Zith is a statically-typed systems programming language designed for developers who want:

  • Explicit control flow without hidden magic
  • Zero-cost abstractions that don't compromise performance
  • Memory safety through a simple ownership model (no garbage collection)
  • Modern tooling with a built-in package manager and language server

Zith starts simpleโ€”like Cโ€”but scales gracefully to handle complex systems with features like components, entities, and contexts for safe DSLs.

Key Featuresโ€‹

๐ŸŽฏ Expressivityโ€‹

Every language construct communicates intent clearly:

fn process(mut self: Health, dmg: view u16) { }
// ^ explicit ownership: view = read-only

๐Ÿ›ก๏ธ Safety Through Typingโ€‹

The compiler detects errors through rigorous semantics:

let health: unique u16 = alloc.new(100);
let ref: view u16 = health;

ref += 10; // Compile Error: view does not allow writing

๐Ÿงฉ Optional Complexityโ€‹

Start simple, add features when needed:

// Basic: functions like C
fn add(a: i32, b: i32): i32 { a + b }

// Advanced: ECS when appropriate
component Position { x, y: i32 }
entity Player { Position, ... }

๐Ÿ”ฎ Contexts for Safe DSLsโ€‹

Domain-specific languages without strings or injection:

context SQL {
use infix = SQL.operators;
infix operator SELECT(cols);
}

use context SQL {
result = SELECT * FROM users WHERE age > 18;
}

๐ŸŽฌ Scenes as Logical Unitsโ€‹

Isolated resource containers for games and applications:

scene MainMenu { /* isolated resources */ }
scene GameLevel { /* isolated resources */ }
scene PauseMenu { /* isolated resources */ }

Who Is Zith For?โ€‹

โœ… Beginners learning low-level programming
โœ… Game developers building engines and tools
โœ… Systems programmers who want clarity without sacrificing control
โœ… DSL designers creating domain-specific languages

What Zith Is Notโ€‹

โŒ A direct replacement for Rust (Rust offers stronger safety guarantees)
โŒ A "better C++" (C++ has a massive ecosystem)
โŒ A garbage-collected language (zero overhead is a priority)
โŒ Suited for pure functional programming

Next Stepsโ€‹

I want to...Go to...
Understand why Zith mattersWhy Zith?
Install ZithInstallation
Write my first programQuick Start
See CLI commandsCLI Reference

| Learn the language | Language Guide |โ€‹

Ready to dive in? Let's explore Why Zith? โ†’