Rux is a fast, compiled, strongly typed, multi-paradigm programming language.
Currently, under development.
Here’s how you can get involved:
- Join the conversation on GitHub Discussions, Discord, or Reddit
- Subscribe on YouTube, X, Bluesky, Mastodon, Telegram to get early updates, dev logs, and sneak peeks
- Contribute ideas — from grammar tweaks to mascot variants, we’re open to playful and technical input alike
- Discuss architecture — compiler design, type systems, and extensibility are all on the table
- CMake 4.2 or later
- A C++26-capable compiler (e.g. Clang 19+, GCC 14+, MSVC 2022+)
- A build tool supported by CMake, such as Ninja, Make, or MSBuild
git clone https://github.com/rux-lang/Rux.git
cd RuxUse this configuration when clang++ is available on your PATH.
cmake -S . -B build/clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release
cmake --build build/clang --config ReleaseIf you use Ninja explicitly:
cmake -S . -B build/clang -G Ninja -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release
cmake --build build/clangOn Windows, Clang can also be used through clang-cl from a Visual Studio Developer PowerShell:
cmake -S . -B build/clang-cl -G "Visual Studio 17 2022" -T ClangCL
cmake --build build/clang-cl --config ReleaseRun these commands from a Visual Studio Developer PowerShell or Developer Command Prompt:
cmake -S . -B build/msvc -G "Visual Studio 17 2022" -A x64
cmake --build build/msvc --config ReleaseAlternatively, with Ninja and the MSVC compiler environment already loaded:
cmake -S . -B build/msvc-ninja -G Ninja -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release
cmake --build build/msvc-ninjaIf your preferred compiler is already the default for your environment:
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config ReleaseThe rux binary will be placed under the selected build directory. Single-configuration generators usually emit it directly in that directory, while Visual Studio/MSVC multi-configuration builds emit it under Release/.
To install it onto your system:
cmake --install build --prefix /usr/localOnce the Rux flake is available in your repository (or any public Git host), you can easily add it as a dependency in your own Nix configuration or project.
Add the Rux input to your flake.nix:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
rux.url = "github:rux-lang/Rux";
# Optionally pin a specific branch or tag:
# rux.url = "github:rux-lang/Rux/main";
};
outputs = { self, nixpkgs, rux }: {
nixosConfigurations.my-machine = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
({ pkgs, ... }: {
environment.systemPackages = [
rux.packages.${pkgs.system}.default
];
})
];
};
};
}On macOS, rux produces statically linked, ad-hoc code-signed Mach-O
executables. Generated programs are currently x86-64 only — on Apple
Silicon they run through Rosetta 2 (the rux compiler itself builds and runs
natively on arm64). A Homebrew formula for distributing rux lives under
packaging/homebrew/.
The Rux repository is hosted at rux-lang/Rux on GitHub.
Read the Contributing guide to get started.