Sintaxe Rust.
Leveza Lua.
Uma linguagem moderna com pipe operator, pattern matching, null safety e lazy iterators — rodando em uma VM Lua implementada em Rust puro.
Começar é simples
$ curl -fL https://github.com/devzolo/zolo-releases/releases/download/v0.1.7-alpha/zolo-lang-0.1.7-alpha-linux-x64.tar.gz -o /tmp/zolo.tar.gz
mkdir -p ~/.zolo && tar xzf /tmp/zolo.tar.gz -C ~/.zolo
sh ~/.zolo/install.sh Tudo que você precisa, sem o que não precisa
Projetada para ser expressiva, segura e rápida — sem sacrificar a legibilidade.
Pipe Operator |>
Encadeie transformações como um pipeline funcional. Sem callbacks aninhados, sem variáveis temporárias.
"hello"
|> String.upper()
|> String.trim()
|> print()Null Safety
Tipos opcionais T?, optional chaining ?. e null coalesce ?? eliminam NPE por design.
let city = user?.address?.city ?? "Unknown"
let name: str? = nil
if let n = name {
print("Hello, {n}!")
}Pattern Matching
Match exaustivo com guards, destructuring de structs, enums e arrays.
match score {
s if s >= 90 => "A",
s if s >= 80 => "B",
s if s >= 70 => "C",
_ => "F",
}Lazy Iterators
Iteradores infinitos com avaliação preguiçosa. map, filter, take, fold, zip e muito mais.
0..
|> Iter.filter(|x| x % 2 == 0)
|> Iter.map(|x| x * x)
|> Iter.take(10)
|> Iter.collect()Decorators
@memoize, @test, @benchmark, @retry, @log — potência extra com zero boilerplate.
@memoize
fn fibonacci(n: int) -> int {
if n <= 1 { return n }
fibonacci(n-1) + fibonacci(n-2)
}HTTP Server
Suba uma API REST sem instalar nada extra. Roteamento, JSON, path params incluídos.
let app = http.router()
|> http.get("/users/:id", |req| {
#{ id: req.params.id, name: "Zolo" }
})
http.serve(3000, app)Database
SQLite embutido, transpilação SQL para Postgres/MSSQL/Oracle. Query, execute e gerencie dados sem setup.
let db = Database.open("sqlite://:memory:").unwrap()
defer db.close()
db.execute("CREATE TABLE users ...").unwrap()
let rows = db.query("SELECT *").unwrap()Tooling
LSP, DAP debugger, formatter e extensão VS Code prontos para uso imediato.
zolo run hello.zolo
zolo fmt hello.zolo
zolo check hello.zolo
zolo test hello.zoloRust VM
Lua 5.1 VM implementada em Rust puro. GC geracional, string interning, fast by default.
// Compiles to Lua 5.1 bytecode
// Runs on custom Rust VM
// 0-based indexing
let arr = [1, 2, 3]
print(arr[0]) // 1Veja em ação
Exemplos reais da linguagem. Clique em "Abrir no Playground" para modificar e executar.
let name = "Zolo"
print("Hello, {name}!")
print("Version: {1 + 1}.0")Hello, Zolo! Version: 2.0
Fonte .zolo
Role para montar a máquina Zolo. Seis placas se encaixam ao redor de um núcleo — cada uma é uma decisão arquitetural. Esta primeira placa é o seu programa: texto UTF-8 puro.
Por que Zolo?
Rápido por padrão
Roda na Lua 5.1 VM implementada em Rust puro com GC geracional, string interning e otimizações de tail call. Zero overhead desnecessário.
Ferramentas em primeiro lugar
LSP com autocomplete e hover, DAP debugger, formatter, extensão VS Code e REPL — tudo out-of-the-box sem configuração.
Baterias incluídas
Stdlib completa: String, Array, Map, Set, Iter, BigInt, Option, Result. HTTP server nativo. Sem instalar nada extra para começar.
Familiar para devs modernos
Sintaxe inspirada em Rust e Swift. Chaves ao invés de do/end. Tipagem estática com inferência. 0-indexed. Se você conhece Rust ou TypeScript, vai se sentir em casa.
Stack técnico
Ferramentas disponíveis
zolo runzolo compilezolo checkzolo testzolo fmtzolo replLSP serverDAP debuggerEcossistema
De compilador a extensão de editor — tudo que você precisa para trabalhar com Zolo.
Pronto para começar?
Experimente no playground, siga o tutorial ou leia a documentação completa.