| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
PooLang is being designed as a simple, compiled language for web backends and infrastructure. Its direction combines Go-like deployment, approachable syntax, and Rust-inspired explicitness without exposing ownership or lifetime syntax. The name Poo (ပူး) comes from the Burmese word for guinea pig.
Important
The current release, v0.1.11, is a legacy tree-walking interpreter. The compiled backend platform described in the roadmap is planned for v0.2 and is not implemented yet.
| Track | Availability | Purpose |
|---|---|---|
| v0.1.11 | Available | Legacy Rust interpreter, executable examples, and checked library APIs |
| v0.2 | Planned | Clean-break LLVM compiler, native runtime, package tooling, async HTTP/JSON, analyzer, and editor support |
| v0.3 | Planned | Opinionated web application platform with data, auth, cache, queues, and framework tooling |
| v0.4 | Planned | Protobuf/gRPC, microservices, resilience, discovery, and OpenTelemetry |
There is no compatibility promise between the legacy syntax below and v0.2. See TODO.md for the decision record, milestones, and implementation gates.
Traits are tokenized but are not a complete supported feature. PooLang does not currently provide native compilation, HTTP, JSON, databases, packages, gRPC, or an editor analyzer.
Current v0.1.11 packages and installers are published for macOS, Linux, and Windows.
brew install shayyz-code/tap/poonpm install --global @shayyz-code/poo@latestcurl --proto '=https' --tlsv1.2 -LsSf https://github.com/shayyz-code/poolang/releases/latest/download/poo-installer.sh | shpowershell -ExecutionPolicy Bypass -c "irm https://github.com/shayyz-code/poolang/releases/latest/download/poo-installer.ps1 | iex"Install a stable Rust toolchain, then run:
git clone https://github.com/shayyz-code/poolang.git
cd poolang
cargo install --path .The v0.1 CLI accepts a Poo source file path:
poo path/to/program.pooFrom a repository checkout:
cargo run -- examples/app.pooAppend --speed after the source path to print interpreter timing:
poo path/to/program.poo --speedSuccessful top-level returns are printed as Result: <Value>. File, parse, and runtime failures are written to stderr with a non-zero exit status. The legacy CLI does not currently implement --help or --version.
This example is executable with the current interpreter:
use std::poutln;
poo message str = "ready";
mut total <: 0;
for i in 0..5 {
total = total + i;
}
poof double(value int) >> int {
return value * 2;
}
if (not false and total > 5) or message == "never" {
poutln(double(total));
}
return total;
Expected output:
20
Result: Int(10)
Legacy declarations use <: for inferred types or name type = value for explicit types. Mutable declarations begin with mut; reassignment uses standard =. Functions use poof, typed parameters such as value int, and >> for return types.
examples/app.poo exercises collections, control flow, functions, structs, methods, modules, and inheritance:
cargo run -- examples/app.pooexamples/donut.poo renders a continuously animated terminal donut. Run it in a terminal and stop it with Ctrl+C:
cargo run --release -- examples/donut.pooBoth examples target the legacy v0.1.11 interpreter.
SemVer tags drive the cargo-dist Release workflow. The current configuration produces checksummed archives for Apple Silicon and Intel macOS, ARM64 and x86-64 Linux, and x86-64 Windows, plus shell, PowerShell, npm, Homebrew, and MSI installers. Stable releases publish npm packages and Homebrew formula updates.
Pull requests currently run:
Pushes to main rebuild and deploy the project site. Platform release builds run for version tags, not for every pull request.
cargo build
cargo fmt --all -- --check
cargo check --all-targets
cargo clippy --all-targets --all-features -- -D warnings
cargo test
mdbook build docs
mdbook test docsCore Rust code lives in src/, executable language specifications in tests/language_specs.rs, sample programs in examples/, and documentation sources in docs/src/. Generated docs/book/ and public/ output is not tracked.
Every change starts with a GitHub issue and a branch from main. Pull requests must remain small, contain exactly one closing issue reference, use Conventional Commits, and are squash-merged only. See CONTRIBUTING.md.
PooLang is licensed under the MIT License.
Hand-crafted by Shayy
| Back | FazBrowse Home | New Git URL |