Types that hold at the edges
Immutability by default, explicit references and pointers, exhaustive pattern matching.
Ignis is strongly typed and immutable by default, with generics, traits, pattern matching and borrow checking. It emits portable C and links native executables through GCC.
import Io from "std::io";
record Point {
public x: f64;
public y: f64;
}
function main(): i32 {
let p: Point = Point { x: 3.0, y: 4.0 };
Io::println("Hello, Ignis!");
return 0;
}Immutability by default, explicit references and pointers, exhaustive pattern matching.
Borrow analysis over HIR, drop schedules resolved for every exit path.
Monomorphized generics lowered to C, compiled and linked with GCC.
Every construct with the grammar it parses from — records, enums, generics, closures, extern blocks and compile-time directives.
Read the reference ↗Collections, UTF-8 strings, filesystem and path handling, a C runtime, and a test namespace with assertions and snapshots.
Browse std ↗Why Ignis exists, how the Rust compiler is structured from parser to C codegen, and where the language goes after v0.4.
About Ignis ↗$ curl -fsSL https://raw.githubusercontent.com/Ignis-lang/ignis/main/scripts/install.sh \ | sudo bash $ ignis build src/main.ign $ ./main
Requires Linux amd64, GCC, binutils and make. v0.4.0 is experimental — syntax may change between versions.