Skip to content
All guides

learn

If you know Python, C, or Rust

Buraaq is meant to feel like Python in the file and C in the binary.

From Python

PythonBuraaq
name = "Ada"name = "Ada"
def add(a, b):fn add(a: int, b: int) -> int
for x in xs:for x in xs { }
from x import yunique std.* auto-import; use sibling.item for your files
CPython + GCLLVM native, no GC
venvburaaq.pkg + a binary
wheelshashed .bur ships

You keep the readability. You lose the GIL and the pause. Native AOT is the default; optional scripting compiles the same language with clang for a fast loop, not a second dialect.

From C / C++

Headers disappear. File = module. […] / { "k": v } instead of malloc/free in safe code. none instead of null. raise / ? / ?? instead of errno you forgot to check. unsafe is still there when you need MMIO. Gate B vs -O2 is measured: performance.

From Rust

Ownership is real. You do not write 'a. Most borrows are inferred. mut name = instead of let mut. No mod.rs. Unique std names import themselves. Async is opt-in. One CLI.

Honest grain

Buraaq 1.0 is native. Gate B vs C++: integer_sum is 0.00× at n=1e8; worst case 1.02× on fib_iter. Stream, Gfx, Hold, and Grid are in the stdlib. spawn is an OS thread; mutex and channel send/recv are real (cancel is next). Packages resolve from in-tree packages/index.json; a hosted packages.buraaq.dev is next, not required. Read Systems and modules before you bet a driver on it: then write the sketch.