Systems programming that doesn't get in your way.
Discord · Roadmap · Website · Documentation
Zap is a systems programming language created to bring back the joy of programming. Zap provides safe, automatic memory management without the Stop the world behavior typical of garbage collectors. Instead, Zap uses predictable and deterministic ownership-aware ARC.
Zap is an OOP language, so it allows you to design your code around clean, well-defined models.
- Programming should feel good. The language should stay approachable and let you focus on solving the problem.
- Memory management must be predictable. Automatic memory management should not introduce unexpected global pauses.
- Safety belongs in everyday code. Safe defaults should make the common path reliable without turning programming into ceremony.
- Code should scale with the project. Object-oriented design, strong types, and explicit control flow help keep programs understandable as they grow.
- Systems programming should stay practical. Zap targets native software while keeping the language pleasant to use.
- Error handling with explicitly failable functions.
- Pattern matching (WIP).
- Classes with inheritance and polymorphism.
- Attributes for expressing compiler and runtime intent.
- Macros (WIP).
- Ownership-aware ARC for automatic, predictable memory management.
| Platform | Architecture | Status |
|---|---|---|
| Linux | x86_64 | Officially supported |
| Linux | AArch64 | Works; not officially supported yet |
Install the Zap toolchain with zapup:
curl --proto '=https' --tlsv1.2 -sSf https://zaplang.xyz/install.sh | shCreate and run your first project with Thor:
thor new world
cd world
thor runTo build Zap yourself, you need:
- Clang 15+ or GCC 12.1+.
- LLVM 21 development libraries.
- Meson and Ninja.
- OpenSSL development libraries.
- Python 3.
Clone the repository and run the build script:
git clone https://github.com/thezaplang/zap.git
cd zap
./build.shThe compiler will be available as build/zapc.
Zap is in early alpha, and feedback directly shapes the language. You can report bugs, discuss language design, improve documentation, or contribute code. Start with the contribution guide, then join us on Discord.