Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/buzz-language/buzz

👨‍🚀 buzz, A small/lightweight statically typed scripting language
https://github.com/buzz-language/buzz

language zig

Last synced: 7 days ago
JSON representation

👨‍🚀 buzz, A small/lightweight statically typed scripting language

Awesome Lists containing this project

README

        


buzz

# 👨‍🚀 buzz

A small/lightweight statically typed scripting language written in Zig


buzz code example


HomepageDiscord

## Features

- Small in size and complexity (just a bit more than Lua though)
- Statically typed
- Unambiguous
- No nonsense coercion
- [Fibers](#fibers)
- JIT compilation with [MIR](https://github.com/vnmakarov/mir)
- Tooling
- [Generate doc from docblocks (in progress)](https://github.com/buzz-language/buzz/blob/main/doc/index.md)
- [VS Code extension](https://marketplace.visualstudio.com/items?itemName=giann.buzz)
- Syntax highlighting
- LSP (in progress)
- Debugger and DAP (planned)

## How to build and install

_Latest zig version supported: 0.14.0-dev.2162+3054486d1_

### 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 (Windows support [is coming](https://github.com/buzz-language/buzz/issues/74))
- libc
- zig master

### Build
1. Clone the project: `git clone https://github.com/buzz-language/buzz `
2. Checkout submodules: `git submodule update --init`
3. Copy `pcre2_chartables`:
```bash
ln -s vendors/pcre2/src/pcre2_chartables.c.dist vendors/pcre2/src/pcre2_chartables.c
```
3. Configure pcre2:
```bash
cd vendors/pcre2
./autogen.sh
./configure
cd ../..
```
4. Have fun: `zig build run -- ` to run a script or `zig build run` to start the REPL

### Install

```bash
# 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
```

If you're usage if performance critical (game dev for example), you can build using `-Doptimize=ReleaseFast`.

Remember to modify PATH to include the `bin` directory where it is installed. For example, `export PATH=PATH:/home/xxx/.local/bin`. You can then run buzz with `buzz `. Or you can simply run `buzz` to start the REPL.

Additionally, install the [VS Code extension](https://marketplace.visualstudio.com/items?itemName=giann.buzz) to get syntax highlighting. If you don't use VS Code but your editor supports [TextMate grammar files](https://github.com/buzz-language/code/blob/main/syntaxes/buzz.tmLanguage.json), you can use that.