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
| Type | Size | Range | Suffix | Status |
|---|---|---|---|---|
int | 4 or 8 bytes | target-dependent (int32 / int64) | i | ✓ |
int8 | 1 byte | −128 … 127 | i8 | ✓ |
int16 | 2 bytes | −32,768 … 32,767 | i16 | ✓ |
int32 | 4 bytes | −2,147,483,648 … 2,147,483,647 | i32 | ✓ |
int64 | 8 bytes | ±9.22 × 1018 | i64 | ✓ |
int128 | 16 bytes | ±1.70 × 1038 | i128 | Planned |
int256 | 32 bytes | ±5.79 × 1076 | i256 | Planned |
int512 | 64 bytes | ±6.70 × 10153 | i512 | Planned |
Unsigned Integers
| Type | Size | Range | Suffix | Status |
|---|---|---|---|---|
uint | 4 or 8 bytes | target-dependent (uint32 / uint64) | u | ✓ |
uint8 | 1 byte | 0 … 255 | u8 | ✓ |
uint16 | 2 bytes | 0 … 65,535 | u16 | ✓ |
uint32 | 4 bytes | 0 … 4,294,967,295 | u32 | ✓ |
uint64 | 8 bytes | 0 … 1.84 × 1019 | u64 | ✓ |
uint128 | 16 bytes | 0 … 3.40 × 1038 | u128 | Planned |
uint256 | 32 bytes | 0 … 1.16 × 1077 | u256 | Planned |
uint512 | 64 bytes | 0 … 1.34 × 10154 | u512 | Planned |
Floating-Point
| Type | Size | Format | Approx. magnitude | Suffix | Status |
|---|---|---|---|---|---|
float | 8 bytes | alias of float64 | ±1.8 × 10308 | — | ✓ |
float8 | 1 byte | E4M3 | ±4.5 × 102 | f8 | Planned |
float16 | 2 bytes | IEEE 754 binary16 | ±6.5 × 104 | f16 | Planned |
float32 | 4 bytes | IEEE 754 binary32 | ±3.4 × 1038 | f32 | ✓ |
float64 | 8 bytes | IEEE 754 binary64 | ±1.8 × 10308 | f64 | ✓ |
float80 | 10 bytes | x87 extended | ±1.2 × 104932 | f80 | Planned |
float128 | 16 bytes | IEEE 754 binary128 | ±1.2 × 104932 | f128 | Planned |
float256 | 32 bytes | Rux extension | ±1.6 × 1078913 | f256 | Planned |
float512 | 64 bytes | Rux extension | ±2.0 × 101262611 | f512 | Planned |
Boolean
| Type | Size | Values | Status |
|---|---|---|---|
bool | 1 byte | alias of bool8 | ✓ |
bool8 | 1 byte | false / true | ✓ |
bool16 | 2 bytes | false / true | ✓ |
bool32 | 4 bytes | false / true | ✓ |
bool64 | 8 bytes | false / true | Planned |
bool128 | 16 bytes | false / true | Planned |
bool256 | 32 bytes | false / true | Planned |
bool512 | 64 bytes | false / true | Planned |
Character
| Type | Size | Range / Coverage | Status |
|---|---|---|---|
char | 4 bytes | alias of char32 | ✓ |
char8 | 1 byte | U+0000 – U+00FF (ASCII / Latin-1) | ✓ |
char16 | 2 bytes | U+0000 – U+FFFF (BMP) | ✓ |
char32 | 4 bytes | U+0000 – U+10FFFF (all Unicode) | ✓ |
char64 | 8 bytes | 0 – 264−1 (no Unicode) | Planned |
char128 | 16 bytes | 0 – 2128−1 (no Unicode) | Planned |
char256 | 32 bytes | 0 – 2256−1 (no Unicode) | Planned |
char512 | 64 bytes | 0 – 2512−1 (no Unicode) | Planned |
Defaults and Aliases
- An unsuffixed integer literal is inferred as
int; an unsuffixed floating-point literal is inferred asfloat64. intanduinttrack the target's pointer width —int32/uint32on 32-bit targets,int64/uint64on 64-bit targets.float→float64,bool→bool8, andchar→char32are compiler-provided aliases (see Built-in Aliases).- Rux performs no implicit numeric conversions; every cross-type conversion uses the
asoperator.