ZZapv2.11.18
v2.11.18 · Standalone native runtime

A readable language
with a native runtime.

Zap is a general-purpose programming language with .zp source files, indentation-based blocks, optional type checking, explicit modules, structured Result/Option values, and a single binary that creates, checks, builds, tests, and serves your project — no Python, Node.js, Java, or Rust required at runtime.

GitHub
$zap new my_app
hello.zpzap
# hello.zp
let name = "Zap"
say "Hello, " + name

fn greet(who: text) -> text:
    return "Hello, " + who

for item in ["web", "ai", "iot"]:
    say item

say greet("Zap")

.zp

Source files

v2.11.18

Release line

3

Platforms

Linux · Windows · macOS

MIT

License

Why Zap

Everything you need to build, and nothing you don't

A small, readable language with a single native binary that handles the whole project lifecycle — no hidden application registry, no runtime dependencies to install.

Language at a glance

Typed, modular, and deterministic

Zap includes text, numbers, booleans, lists, maps, objects, functions, classes, inheritance, optional annotations, closures, explicit modules, JSON, Result/Option, default and named arguments, bounded asynchronous tasks, and deterministic diagnostics — in a small, readable surface.

  • Indentation-based blocks — no semicolons, no braces
  • Optional annotations that zap check verifies
  • A poll-budgeted async executor — deterministic, not a reactor
  • Bounded standard library with pure, input-deterministic, and external-IO domains
glance.zpzap
let scores: list<number> = [80, 45, 90]

fn passed(score: number) -> bool:
    return score >= 50

for score in scores:
    if passed(score):
        say "passed: " + str(score)

One binary, the whole lifecycle

Create, check, build, test, and serve

Zap's CLI is intentionally simple and user-managed. There is no hidden app registry and no Django-style startapp.

terminalbash
zap new my_app          # create a complete user-managed Web project
cd my_app
zap check              # validate the manifest, modules, and known types
zap build --locked     # validate reproducible build inputs
zap test tests         # run *_test.zp files
zap dev                # start the bounded native development server
1

zap new

Generate a complete user-managed project: models, functions, ui, routes, middleware, migrations, admin, public, tests.

2

zap check

Validate the manifest, lockfile, entry file, modules, and known type annotations.

3

zap test

Run *_test.zp files in deterministic order, with --filter, --fail-fast, and --json for CI.

4

zap dev

Run the bounded native development server on loopback, with routes, validation, and security headers.

Standard library

Bounded, deterministic, fail-closed

Thirteen public domains, each with explicit input/output limits, a timeout policy, an error contract, and a determinism class.

Start building with Zap today

Install a single native binary and create your first project in one command. No runtime dependencies to manage.