Technology

Pure-capability systems

In a pure-capability ABI, pointers are represented and passed as capabilities throughout the supported software environment.

For
Developers, architects and assurance professionals
Last reviewed
2026-08-05
Review cycle
Review every 6 months

Why it matters

Pure capability offers stronger default coverage than hybrid use, while requiring the ABI, libraries and applications to handle capability-sized pointers and rules.

In brief

In a pure-capability ABI, pointers are represented and passed as capabilities throughout the supported software environment. This provides broad hardware-enforced pointer bounds, permissions and provenance across compiled C and C++ code.

Key considerations

1. ABI

Data layouts, calling conventions, relocations and system interfaces must be capability-aware.

2. Porting

Code must address pointer-size, integer-cast, union, assembly and external-interface assumptions.

3. Coverage

Protection extends widely through rebuilt code, but temporal safety and compartment policy still require their own mechanisms.

Evidence and caveats

Pure-capability compatibility depends on the complete software stack. Prebuilt conventional binaries cannot simply be linked into the ABI.

Use the exact architecture and software specification implemented by the target. Separate architectural guarantees from system-level outcomes.

Primary routes

Where next

Port a dependency-light application to the supported pure-capability target and record every source and interface change.

Run a pure-capability port