GizStack

Gizlang

TypeScript syntax. Native speed. One toolchain.

Gizlang reads like TypeScript and compiles to native code through LLVM. The compiler, the standard library, the test runner, the formatter, the language server and live code swap are one command: gizlang.

gizlangRun
type Item = { name: string; price: i64; };

function total(items: Vec<Item>): i64 {
    let sum = 0;
    for (const item of items) { sum += item.price; }
    return sum;
}
function main(): void {
    const cart = [Item("tea", 4), Item("cake", 7)];
    print("Total: " + string(total(cart)));
}
text
Total: 11

Why Gizlang

  • Native speed

    On LangArena's 50 realistic programs, our run scores 90.7. Rust scores 90.6 and C 90.2 on the same machine.

  • No garbage collector

    Values are reference-counted and copied only when shared. Memory goes back when its last owner goes. There are no collection pauses.

  • Errors you cannot ignore

    There are no exceptions. A function that can fail returns a Result. The compiler refuses a match that forgets a case.

  • Markup in the language

    TSX-style markup in ordinary .giz files compiles to typed, escaped HTML. Components are typed functions.

  • Live code swap

    giz live replaces the code of a running program and keeps its state. An edit to an app of 800 lines is live in 53 ms.

  • Explicit capabilities

    Files, network and processes come from the System value that main receives. A function that has no System cannot reach them.

  • Cheap tasks

    One million switches between hot tasks take 18 ms. Channels connect them.

  • Made for AI agents

    giz check --json, giz outline and giz capabilities give structured answers. Every docs page is Markdown at /llms.txt.

One command for the whole job

JobCommand
Run a filegiz main.giz
Check types, without a rungiz check main.giz
Testgiz test
Formatgiz fmt
Build a native executablegiz build main.giz -o app
Build WebAssemblygiz build --wasm main.giz -o app.wasm
Change a running programgiz live main.giz
Read the docs of a modulegiz doc Json
Debuggiz build --debug main.giz -o app, then gdb, lldb or VS Code
Editor supportgiz lsp and the VS Code extension
Interactive sessiongiz repl

The command line guide shows each one.

Editor and debugger

The VS Code extension shows what the compiler says as you type: errors with their fixes, completion, hover, rename, formatting and inlay hints. Its Test Explorer runs the tests of each file. Press F5 to debug: breakpoints in .giz files, stepping by line, the call stack and the variables by their Gizlang names. gdb and lldb debug the same builds from a terminal (Debugging).

The standard library

37 modules ship compiled in the toolchain. A program imports them as gizlang:NAME, with no package install.

AreaModules
Core and datacore, collections, text, unicode, regex, json, csv, math, random, time
Web and networkhttp, html, tls, acme, crypto, security, compress
Data storessqlite, postgres, odbc, journal
Concurrency and live codetask, live, memory, metrics
Systemsystem, path, native, runtime
Computetensor, nn, grad, gpu, kernel
JavaScript interopjs
Teststest

Learn it

  1. Try it in the browser. The Playground runs any example on this site.
  2. Install it. One signed installer for Linux x86-64.
  3. Take the tour. The language guide is for developers who know TypeScript, JavaScript or Go.