Ferrum-language gives you C's familiar syntax and LLVM-compiled performance, with Rust-style ownership and borrow checking — no garbage collector, no runtime, no data races.
// Compile-time memory safety — no runtime cost #include <stdio.h> int main() { int x = 10; { int& reader = &x; // immutable borrow printf("read: %d\n", *reader); } // borrow released here int&mut writer = &mut x; // mutable borrow — safe *writer = 99; printf("after write: %d\n", x); return 0; }
About
Modern systems programming should not force you to choose between memory safety and a familiar syntax. Ferrum-language gives you both.
Ownership, borrow checking, and move semantics catch use-after-free, dangling pointers, and data races before your program ever runs.
No garbage collector, no reference counting, no runtime. Safety guarantees are enforced entirely at compile time — zero overhead at runtime.
If you know C, you already know most of Ferrum. Structs, pointers, functions — same syntax, safer semantics. No steep learning curve.
Compiles to native machine code via LLVM 18. Full optimization pipeline — the same backend used by Clang and Rust.
Resources have a single owner. Transfer ownership with move(), heap-allocate with new. Memory is freed automatically at scope end.
Need raw pointer arithmetic or FFI? Wrap it in an unsafe { } block. The borrow checker flags any unsafe operation outside of one.
Import any C header with #include. Call libc directly. Ferrum compiles to the same ABI, so mixing C and Ferrum is seamless.
A single ferrumc binary is all you need. Point it at a .fe file and get a native binary. No linker scripts, no build system required.
Download
Choose your operating system. All binaries are built from the same source and verified with SHA-256 checksums.
Single static binary. Extract and run — no installation required.
Linux x86_64 (.tar.gz) Linux aarch64 (.tar.gz)tar -xzf ferrumc-*-linux-x86_64.tar.gz && sudo mv ferrumc /usr/local/bin/
Submission to the Snap Store is pending review. Will work on any distribution with snapd.
sudo snap install ferrumc # not yet available
Submission to Flathub is pending review.
flatpak install flathub org.ferrum_lang.ferrumc # not yet available
A pull request to nixpkgs is open and under review.
nix-env -iA nixpkgs.ferrumc # not yet available
Native distribution packages (apt, dnf, pacman, zypper) are planned. For now, use the direct download below.
A port submission is open and under review.
sudo port install ferrumc # not yet available
A Homebrew formula is planned.
tar -xzf ferrumc-*-macos-*.tar.gz && sudo mv ferrumc /usr/local/bin/
A manifest has been submitted to the winget-pkgs repository and is under review.
winget install FerumLanguage.ferrumc # not yet available
Package submission is under human review.
choco install ferrumc # not yet available
Extract and add the folder to your PATH, or run ferrumc.exe directly.
A port submission is open in the FreeBSD ports tree and under review.
cd /usr/ports/lang/ferrumc && make install clean # not yet available
A port submission to ports@openbsd.org is in progress.
Ports for NetBSD pkgsrc and DragonFly BSD dports are planned.
tar -xzf ferrumc-*-freebsd-x86_64.tar.gz && install -m 755 ferrumc /usr/local/bin/