qtty
The user-facing crate for strongly typed physical quantities, conversions, and astronomy-friendly units.
qtty re-exports the qtty-core type system plus a curated set of built-in units so you can write dimensionally safe
code without giving up ergonomics.
Highlights
- Zero-cost
Quantity<U, S>model with compile-time unit safety - Explicit conversions via
.to::<TargetUnit>() - Dimensional arithmetic for area, volume, velocity, angular rate, and other derived quantities
- Built-in astronomy-oriented units such as
AstronomicalUnit,LightYear,Parsec,SolarMass, andSolarLuminosity no_stdsupport, optionalserde, optional PyO3/SQL integrations, and integer scalar families
Install
[]
= "0.7.1"
Disable default features for no_std:
[]
= { = "0.7.1", = false }
Enable heap-backed helpers in no_std:
[]
= { = "0.7.1", = false, = ["alloc"] }
Quick start
use ;
let angle = new;
let radians = angle.;
assert!;
use ;
use Velocity;
let distance = new;
let elapsed = new;
let speed: = distance / elapsed;
assert!;
Feature flags
std(default): enablesstdsupport inqtty-corecross-unit-ops(default): enables direct cross-unit comparison operators for compatible built-in unitsalloc: enables heap-backed helpers such asqtty::qtty_vec!(vec ...)inno_stdserde: enables serialization helpers for quantitiesastro,navigation,fundamental-physics,customary,land-area,julian-time: optional unit families forwarded toqtty-core.astroincludes the Julian astronomy time units;julian-timeremains as a compatibility alias.radiometry: enables theqtty::radiometrymodule (radiance, photon radiance, S10,erg_to_photon). Impliesfundamental-physics.all-units: shorthand that turns on every unit-family feature.scalar-rational: enablesnum_rational::Rational64pyo3: enables PyO3 conversions and Python-facing helperstiberius: enables SQL Server integration helpersdiesel: enables Diesel integration helpers
Modules
angular,time,length,mass,powerarea,volume,force,energy,solid_anglevelocity,angular_rate,accel,unitradiometry(feature:radiometry)- scalar-specific facades:
f32,f64,i8,i16,i32,i64,i128
Same-unit division yields a dimensionless quantity, but there is no dedicated
unitless module in the facade crate.
Custom units
qtty re-exports the derive and arithmetic macros needed for downstream custom
units, so most consumers do not need to depend on qtty-core directly.
;
impl_unit_arithmetic_pairs_between!;
Examples
Related crates
qtty-core: primitive type system and built-in unitsqtty-derive: derive macro for custom unitsqtty-ffi: C-compatible ABI and adapter bridge
Repository docs:
- Workspace overview:
../../doc/users/rust-workspace.md - Repository layout:
../../doc/architecture/repository-layout.md
License
BSD-3-Clause (see ../LICENSE).