- Rust 90.7%
- Python 5%
- Shell 1.5%
- HTML 1.1%
- Starlark 0.9%
- Other 0.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
The one-shot metrics a publication carries dwarf every other outcome, and the clippy gate refuses the size gap; a report is built once per cycle, so the allocation is not on any hot path. |
||
| .claude | ||
| .github | ||
| ci | ||
| cli-test-fixtures | ||
| constraints | ||
| crates | ||
| docs | ||
| examples | ||
| fixtures/rue-program | ||
| performance | ||
| platforms | ||
| reproducibility/fixture | ||
| scripts | ||
| std | ||
| tests/std | ||
| third-party | ||
| toolchains | ||
| website | ||
| .buckconfig | ||
| .buckconfig.local.example | ||
| .buckroot | ||
| .gitignore | ||
| .rustfmt.toml | ||
| AGENTS.md | ||
| btd | ||
| BUCK | ||
| buck2 | ||
| buck2-bin | ||
| CLAUDE.md | ||
| clippy.toml | ||
| CONTRIBUTING.md | ||
| corpus.bzl | ||
| fmt.sh | ||
| gen-rust-project.sh | ||
| hugo | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| quick-test.sh | ||
| README.md | ||
| reindeer | ||
| rue_rules.bzl | ||
| rust-project.json | ||
| rust-toolchain.toml | ||
| tailwindcss | ||
| test.sh | ||
| test_defs.bzl | ||
| test_tiers.bxl | ||
| zola | ||
Rue
Rue is an experimental systems programming language exploring memory safety without garbage collection and higher-level ergonomics than Rust or Zig. It is implemented in Rust and emits native code directly, without LLVM.
fn fib(n: i32) -> i32 {
if n <= 1 { n } else { fib(n - 1) + fib(n - 2) }
}
fn main() -> i32 {
@dbg(fib(10));
0
}
Caution
Rue is an early-stage language. Its syntax, semantics, runtime, and standard library are still changing, and it is not ready for production use.
What is here
The repository contains a complete native compiler pipeline, including:
- lexer, parser, semantic analysis, and several inspectable IRs;
- affine ownership, borrowing modes, destructors, structs, enums, arrays, strings, modules, comptime, and unsafe/raw-pointer support;
- x86-64 Linux, AArch64 Linux, and AArch64 macOS code generation;
- a small runtime, ELF/Mach-O object and linking support, and direct machine-code emitters;
- specification, UI, CLI, differential-oracle, fuzz, sanitizer, and stress suites.
The authoritative language definition is the Rue specification. The tutorial is the best introduction to writing Rue programs. Architecture and design rationale live in docs/architecture.md and docs/designs/.
Build and try Rue
Rue uses Buck2 rather than Cargo. Install Dotslash; Buck2 and the Rust toolchain are then bootstrapped hermetically by the repository.
scripts/rue build
scripts/rue exec examples/welcome.rue # prints 1, 2, 3, 42 and exits 0
scripts/rue test
examples/welcome.rue is the setup health check: it prints recognizable output
and exits 0, so a successful run is not mistaken for a failure under set -e or
CI. (Programs like examples/fibonacci.rue return a value from main, which
becomes the process exit code — informative, but a nonzero status.)
Use scripts/rue-bin when you need the compiler path, or run the real CLI
through the wrapper:
RUE="$(scripts/rue-bin)"
"$RUE" --help
"$RUE" examples/welcome.rue -o welcome
./welcome
Supported targets are x86-64-linux, aarch64-linux, and aarch64-macos.
Cross-target machine-code and assembly emission is available, but producing an
executable may require target-specific system tools.
See CONTRIBUTING.md and docs/development.md for the development workflow.
Project status
Rue is developed in public as both a language-design project and an experiment
in agent-assisted compiler engineering. Accepted features may remain behind
--preview until their implementation and specification are complete. The
test suite tracks normative specification coverage and known implementation
gaps explicitly.
License
Rue is dual-licensed under the Apache License 2.0 or MIT license, at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Rue is dual-licensed on the same terms.