Language Features

Systems programming,
reimagined.

Joule combines the performance of C with the safety of Rust and the energy awareness of nothing that existed before it.

Core Language

Ownership & Borrowing

Memory safety without garbage collection. The borrow checker prevents data races, use-after-free, and double-free at compile time.

fn transfer(data: Vec<u8>) {
    let owned = data;  // moved
    // data is no longer valid here
    process(&owned);   // borrow
}
Pattern Matching

Exhaustive pattern matching with algebraic data types. The compiler guarantees every case is handled.

match sensor.read() {
    Reading::Ok(val) => process(val),
    Reading::Err(e) => log_error(e),
    Reading::Timeout => retry(),
}
Generics & Traits

Zero-cost abstractions via monomorphization. Trait-based polymorphism without vtable overhead in hot paths.

trait Sensor<T: Numeric> {
    fn read(&self) -> T;
    fn energy_cost(&self) -> Picojoules;
}
Effect System

8-effect bitfield tracks side effects at the type level. IO, allocation, network, compute — the compiler knows what your function does.

#[effects(compute, memory)]
fn matrix_mul(a: &Mat, b: &Mat) -> Mat {
    // IO not allowed here
}

Energy Features

Energy Budgets

Set maximum energy consumption per function, module, or program. The compiler rejects code that exceeds budgets.

Hardware Telemetry

Architecture-specific cost models for x86, ARM, RISC-V, SIMD. Energy estimates adapt to the target platform.

Thermal Awareness

Cost models account for thermal state. Hot silicon costs more per instruction. The compiler factors this into budget checks.

Energy Profiling

Built-in profiler outputs per-function energy breakdown. Identify hot spots measured in joules, not just cycles.

Heterogeneous Compute

One language. Every accelerator. Joule targets CPU, GPU, TPU, and NPU from a single codebase with energy-aware dispatch.

CPU
x86-64, ARM, RISC-V, WASM
GPU
CUDA, ROCm, Metal, Vulkan
TPU / NPU
XLA, CoreML, ONNX, Hailo

Formal Verification

The Joule compiler is verified at four tiers. From Kani bounded model checking to runtime assertions, correctness is not optional.

182+
Kani Proofs
Exhaustive BMC
29+
Property Tests
Proptest statistical
15+
Contracts
Postconditions
Type Proofs
Static guarantees