Primitive Data Types

A consolidated summary of every built-in primitive type in Rux, grouped by family. These names are predefined identifiers — some are compiler-provided aliases — not keywords; they live in the type namespace. Each entry links to its full page.

In the Status column, ✓ marks types available in the current release; Planned marks types that are specified but not yet implemented.

Signed Integers

TypeSizeRangeSuffixStatus
int4 or 8 bytestarget-dependent (int32 / int64)i✓
int81 byte−128 … 127i8✓
int162 bytes−32,768 … 32,767i16✓
int324 bytes−2,147,483,648 … 2,147,483,647i32✓
int648 bytes±9.22 × 1018i64✓
int12816 bytes±1.70 × 1038i128Planned
int25632 bytes±5.79 × 1076i256Planned
int51264 bytes±6.70 × 10153i512Planned

Unsigned Integers

TypeSizeRangeSuffixStatus
uint4 or 8 bytestarget-dependent (uint32 / uint64)u✓
uint81 byte0 … 255u8✓
uint162 bytes0 … 65,535u16✓
uint324 bytes0 … 4,294,967,295u32✓
uint648 bytes0 … 1.84 × 1019u64✓
uint12816 bytes0 … 3.40 × 1038u128Planned
uint25632 bytes0 … 1.16 × 1077u256Planned
uint51264 bytes0 … 1.34 × 10154u512Planned

Floating-Point

TypeSizeFormatApprox. magnitudeSuffixStatus
float8 bytesalias of float64±1.8 × 10308—✓
float81 byteE4M3±4.5 × 102f8Planned
float162 bytesIEEE 754 binary16±6.5 × 104f16Planned
float324 bytesIEEE 754 binary32±3.4 × 1038f32✓
float648 bytesIEEE 754 binary64±1.8 × 10308f64✓
float8010 bytesx87 extended±1.2 × 104932f80Planned
float12816 bytesIEEE 754 binary128±1.2 × 104932f128Planned
float25632 bytesRux extension±1.6 × 1078913f256Planned
float51264 bytesRux extension±2.0 × 101262611f512Planned

Boolean

TypeSizeValuesStatus
bool1 bytealias of bool8✓
bool81 bytefalse / true✓
bool162 bytesfalse / true✓
bool324 bytesfalse / true✓
bool648 bytesfalse / truePlanned
bool12816 bytesfalse / truePlanned
bool25632 bytesfalse / truePlanned
bool51264 bytesfalse / truePlanned

Character

TypeSizeRange / CoverageStatus
char4 bytesalias of char32✓
char81 byteU+0000 – U+00FF (ASCII / Latin-1)✓
char162 bytesU+0000 – U+FFFF (BMP)✓
char324 bytesU+0000 – U+10FFFF (all Unicode)✓
char648 bytes0 – 264−1 (no Unicode)Planned
char12816 bytes0 – 2128−1 (no Unicode)Planned
char25632 bytes0 – 2256−1 (no Unicode)Planned
char51264 bytes0 – 2512−1 (no Unicode)Planned

Defaults and Aliases

  • An unsuffixed integer literal is inferred as int; an unsuffixed floating-point literal is inferred as float64.
  • int and uint track the target's pointer width — int32/uint32 on 32-bit targets, int64/uint64 on 64-bit targets.
  • float → float64, bool → bool8, and char → char32 are compiler-provided aliases (see Built-in Aliases).
  • byte is a compiler-provided alias for uint8 — a clearer spelling for raw 8-bit byte values.
  • Rux performs no implicit numeric conversions; every cross-type conversion uses the as operator.