Skip to content

GalaxyHaze/Zith

Repository files navigation

Zith

A statically-typed systems programming language with compile-time ownership tracking and zero-cost abstractions.

Status: Active development — not production-ready.


Install

Package Managers

Scoop:

scoop bucket add zith https://github.com/GalaxyHaze/Zith.git
scoop install zith

Homebrew:

brew tap galaxyhaze/zith
brew install zith

Install Scripts

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/GalaxyHaze/Zith/master/scripts/install.sh | bash

Pass --musl for a statically linked musl build, or a version tag (e.g. v0.0.1).

Windows (PowerShell):

irm https://raw.githubusercontent.com/GalaxyHaze/Zith/master/scripts/install.ps1 | iex

WebAssembly:

curl -fsSL https://raw.githubusercontent.com/GalaxyHaze/Zith/master/scripts/install-wasm.sh | bash

Build from Source

git clone https://github.com/GalaxyHaze/Zith.git
cd Zith
cmake -S . -B build
cmake --build build -j

Requires CMake 3.15+, a C++17 compiler (GCC/Clang/MSVC), and optionally LLVM for native backend support.

Verify:

zith --help

Quick Start

zith new hello-world
cd hello-world
zith run
from std/io/console;

fn main() {
    println("Hello, World!");
}

CLI Commands

Command Description
zith build Build the project
zith build -m release Release build
zith check Syntax and type checking without compilation
zith compile <file> Compile to ZBC bytecode
zith execute <file.zbc> Run a compiled bytecode file
zith run Build and run in one command

Language Highlights

  • Ownership systemunique, share, view, lend, extension keywords enforced at compile time
  • No garbage collector — memory safety without runtime overhead
  • ZBC bytecode — portable, versioned intermediate format
  • Multi-execution — run via VM or compile to native via LLVM
  • Contexts & DSLs — scoped operator/constant injection
  • Structured gotomarker, entry, exit for verified control flow

Full language specification: Zith-spec.md


Documentation


Resources


License

MIT License