qtty 0.4.1

Strongly typed physical and astronomical quantities.
Documentation

qtty

Crates.io Docs.rs

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, frequency, and other derived quantities
  • Built-in astronomy-oriented units such as AstronomicalUnit, LightYear, Parsec, SolarMass, and SolarLuminosity
  • no_std support, optional serde, optional PyO3/SQL integrations, and integer scalar families

Install

[dependencies]
qtty = "0.4.1"

Disable default features for no_std:

[dependencies]
qtty = { version = "0.4.1", default-features = false }

Enable heap-backed helpers in no_std:

[dependencies]
qtty = { version = "0.4.1", default-features = false, features = ["alloc"] }

Quick start

use qtty::{Degrees, Radian};

let angle = Degrees::new(90.0);
let radians = angle.to::<Radian>();
assert!((radians.value() - core::f64::consts::FRAC_PI_2).abs() < 1e-12);
use qtty::{Kilometer, Kilometers, Second, Seconds};
use qtty::velocity::Velocity;

let distance = Kilometers::new(1_000.0);
let elapsed = Seconds::new(100.0);
let speed: Velocity<Kilometer, Second> = distance / elapsed;
assert!((speed.value() - 10.0).abs() < 1e-12);

Feature flags

  • std (default): enables std support in qtty-core
  • cross-unit-ops (default): enables direct cross-unit comparison operators for compatible built-in units
  • alloc: enables heap-backed helpers such as qtty::qtty_vec!(vec ...) in no_std
  • serde: enables serialization helpers for quantities
  • scalar-decimal: enables rust_decimal::Decimal
  • scalar-rational: enables num_rational::Rational64
  • pyo3: enables PyO3 conversions and Python-facing helpers
  • tiberius: enables SQL Server integration helpers
  • diesel: enables Diesel integration helpers

Modules

  • angular, time, length, mass, power
  • area, volume
  • velocity, frequency
  • unitless
  • scalar-specific facades: f32, f64, i8, i16, i32, i64, i128

Examples

cargo run -p qtty --example quickstart
cargo run -p qtty --example dimensional_arithmetic
cargo run -p qtty --example all_units

Related crates

  • qtty-core: primitive type system and built-in units
  • qtty-derive: derive macro for custom units
  • qtty-ffi: C-compatible ABI and adapter bridge

Repository docs:

License

AGPL-3.0 (see ../LICENSE).