Skip to content

rue-language/rue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,051 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 benchmark 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/fibonacci.rue
scripts/rue test

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/fibonacci.rue -o fibonacci
./fibonacci

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.

About

A programming language that is higher level than Rust but lower level than Go. Someday, anyways.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors