Rux is a fast, compiled, strongly typed, multi-paradigm programming language. The compiler is self-contained: its own x86-64 and AArch64 code generators, its own object format, and its own PE/ELF/Mach-O linkers produce a native executable with no assembler, no C compiler, and no external linker anywhere in the pipeline. Rux supports four operating systems: FreeBSD, Linux, macOS and Windows (on x86-64 and AArch64).
Debug builds preserve the unoptimized program structure, while Release builds use explicit, bounded HIR and LIR passes and remove unreachable private declarations before either native back end runs. Shared RCU module construction and a format-neutral link graph keep object and image behavior consistent across all eight targets.
The CI badge shows the status of the dev branch; the platform badges show each target's build-and-test job on it. The CI/CD guide documents the native, cross-compiler, transferred-artifact, and runtime acceptance paths in detail.
Important
Rux is under active, pre-1.0 development. Language features, compiler behavior, and package formats may change between minor releases. Check the changelog when upgrading.
Language and tool documentation lives on the website:
Working on the compiler itself is covered by the guides in Docs/, indexed in CONTRIBUTING.md. Installer implementation notes live beside their source, in Packaging/Linux and Packaging/Windows.
The language ownership contract records the value, reference, copy, move, construction, and destruction model used by the compiler and first-party packages, including the narrow compatibility boundary that remains before final cutover. The compiler architecture guide documents component ownership, semantic and lowering boundaries, optimization, code generation, and linking. The package build guide covers target names, artifact paths, cross-compilation, and the 16-cell rux build --all matrix. Contributors changing diagnostics or CLI output should follow the user-facing message contract.
The comment and documentation contract defines ordinary and API comment syntax, attachment, structured tags, formatting, linting, generated sections, and the source-aware model future completion tools consume.
Commands in this repository use POSIX shell syntax unless a PowerShell example is provided; on Windows, replace ./Bin/rux with .\Bin\rux.exe.
Prebuilt x86-64 and AArch64 releases are published for every supported operating system. Choose your operating system for installation, upgrade, removal, and verification instructions:
- FreeBSD — install the native archive.
- Linux — use the x86-64 shell installer or a native archive.
- macOS — install the native archive.
- Windows — use an x86-64 installer or a native ZIP.
Use upstream Clang 23.1+, CMake 3.31+, Ninja 1.13.2+, and current stable Git. See the verified tool versions.
Rux is written in C++26 and builds exclusively with upstream Clang 23.1 or newer. Formatting and static analysis use LLVM 23. Choose your operating system for prerequisites, build commands, and verification steps:
Once the prerequisites are installed, one entry point covers local development. sh Run.sh build configures and builds the compiler, and sh Run.sh test runs the complete verification workflow; format, policy, tidy, unit, and clean are the individual steps. On Windows, use .\Run.ps1 build and .\Run.ps1 test. Run the script with no arguments for the full command and option summary.
Contributions are welcome. Start with the contributing guide and open pull requests against the dev branch. The development workflow explains the compiler layout, tests, formatting, and static analysis in detail. Documentation is part of the change: update the affected page in the same pull request whenever a process, branch rule, installer, or workflow changes.
Join the project on GitHub Discussions, Discord, Reddit, YouTube, Bluesky, Mastodon, or Telegram. More links are available on the community page.
Licensed under the MIT License.