#chemistry #element #compounds #simulation #encoding

bin+lib utomid-rs

Compact encoding for chemical elements, compounds, and basic chemistry utilities

1 unstable release

0.1.0 Sep 17, 2025

#102 in #chemistry

Download history 167/week @ 2025-09-17 51/week @ 2025-09-24 26/week @ 2025-10-01 9/week @ 2025-10-08

253 downloads per month
Used in 2 crates (via matcat)

MIT license

21KB
225 lines

utomid-rs

utomid-rs is a compact Rust library for representing chemical elements and compounds. It’s designed for simulation and material modeling, with a focus on compact encoding and fast operations rather than full-blown chemistry accuracy.


✨ Features

  • Lookup of all 118 chemical elements (Element struct)
  • Encode atomic numbers into a compact u8 representation
  • Decode element IDs back into names, symbols, valence, and atomic mass
  • Build compounds either as expanded lists ([1, 1, 8] for Hβ‚‚O) or compact pairs ([(1,2), (8,1)])
  • Calculate compound molecular mass
  • Render compounds into human-readable formulas (e.g. "H2O", "C6H12O6")
  • Benchmark-ready for performance tuning

πŸ“¦ Installation

Add this crate to your project:

cargo add utomid-rs

Or manually in Cargo.toml:

[dependencies]
utomid-rs = "0.1"

πŸš€ Usage

use utomid_rs::{CompactCompound, compound_formula, compound_mass};

// Expanded representation (array of atomic numbers)
let water = vec![1,1,8]; // H2O
println!("Formula: {}", compound_formula(&water));
println!("Mass: {}", compound_mass(&water));

// Compact representation
let water_compact = CompactCompound::new(vec![(1,2), (8,1)]);
println!("Formula: {}", water_compact.formula());
println!("Mass: {}", water_compact.mass());

Output:

Formula: H2O
Mass: 18.015

πŸ§ͺ Benchmarks

Run with:

cargo bench

Sample results (on a mid-tier CPU):

mass H2O (compact)      time:   ~18 ns
formula H2O (compact)   time:   ~92 ns
mass glucose (compact)  time:   ~27 ns
formula glucose (compact) ~165 ns

πŸ“– Roadmap

  • Add bond/interaction utilities
  • Expand into materials-level abstractions (air, water, steel, etc.)
  • Optional probabilistic reaction rules

πŸ“œ License

Licensed under MIT.
See LICENSE for details.

Dependencies

~47KB