👨🚀 buzz
A small/lightweight statically typed scripting language written in Zig
Features
- Small in size and complexity (just a bit more than Lua though)
- Statically typed
- Unambiguous
- No nonsense coercion
- Fibers
- JIT compilation with MIR
- Tooling
- Generate doc from docblocks (in progress)
- VS Code extension
- Syntax highlighting
- LSP (in progress)
- Debugger and DAP (planned)
How to install
# install locally at ~/.local
zig build -Doptimize=ReleaseSafe install -p ~/.local
# install globally at /usr/local
sudo zig build -Doptimize=ReleaseSafe install -p /usr/local
Then, you can run buzz with buzz <myscript.buzz>
. Remember to modify PATH to include the bin
directory where it is installed. For example, export PATH=PATH:/home/xxx/.local/bin
.
Additionally, install the VS Code extension to get syntax highlighting. If you don't use VS Code but your editor supports TextMate grammar files, you can use that.
How to build/develop
Requirements
- Since this is built with Zig, you should be able to build buzz on a wide variety of architectures even though this has only been tested on x86/M1.
- Linux or macOS (not much work is needed to make it work on Windows)
- libpcre (not libpcre2)
- libc
- mimalloc (can be turned off by building buzz with
-Duse_mimalloc=false
) - zig master
Steps
- Clone the project:
git clone https://github.com/buzz-language/buzz <buzz_dir>
- Checkout submodules:
git submodule update --init
- Build MIR:
cd mir
make
- Have fun:
zig build run -- <myscript.buzz>