alpha · compiled · statically typed

Feels like TypeScript.
Ships as a native binary.

Zeus is a new language with a rich, static type system that feels like a subset of TypeScript — then compiles straight to a native binary via LLVM. It keeps the ergonomics you love and drops JavaScript's dynamism, landing in the sweet spot between Rust and Go: an approachable systems language.

Install

brew tap ameerthehacker/zeus && brew install zeus

macOS · Apple Silicon & Intel · Linux coming soon

Why Zeus?

TypeScript's ergonomics, compiled to a native binary.

Zeus is a new language that keeps what's great about TypeScript, drops JavaScript's dynamism, and compiles to native code — an approachable systems language that sits between Rust's power and Go's simplicity.

Familiar TypeScript syntax

Classes, interfaces, generics, and type annotations that read like TypeScript. If you know TS, you already know most of Zeus.

Native LLVM binaries

Compiles straight to a small, self-contained native executable via LLVM. No interpreter, no VM, instant startup.

Batteries-included stdlib

fs, os, path, json, crypto, datetime, and a test runner ship in the box — Node/TS parity without the npm sprawl.

Approachable by design

A rich type system with no borrow checker to fight and no ceremony to wade through — the sweet spot between Rust and Go.

Quick example

Real classes, inheritance, dynamic dispatch.

If you have written TypeScript, this reads exactly how you would expect — inheritance and polymorphism included — but it compiles to a standalone native binary.

  • Single inheritance with extends
  • Overrides dispatched dynamically at runtime
  • Upcast a subclass to its base type
class Shape {
  public area(): i32 { return 0; }
}

class Square extends Shape {
  public side: i32;
  constructor(side: i32) { this.side = side; }
  public area(): i32 { return this.side * this.side; }
}

class Rect extends Shape {
  public w: i32;
  public h: i32;
  constructor(w: i32, h: i32) { this.w = w; this.h = h; }
  public area(): i32 { return this.w * this.h; }
}

// One function, any Shape — the override is chosen at runtime.
function areaOf(shape: Shape): i32 {
  return shape.area();
}

console.log(areaOf(new Square(5)) + areaOf(new Rect(3, 4))); // 25 + 12 => 37

Ready to build with Zeus?

Install the compiler and ship your first native binary in minutes.