osom_lib
This project implements various data structures and algorithms for use in osom projects and not only.
It also defines stable ABI, in the sense that all types used here are repr(C).
Most of the libraries are #![no_std], although some do use os syscalls. Other
libraries can optionally enable std support by setting the feature with the same
name.
Libraries here try to have as little runtime dependencies as possible. Typically
this means only libc and windows-sys dependencies whenever access to the
operating system is needed.
osom_lib crates
The libraries here are independent on the operating system and can be used anywhere Rust runs.
osom_libThis library simply gathers and re-exports other osom libs defined here. It also supportsstdfeature for enabling standard (often meaning: os dependent) implementations.osom_lib_reprcdefines macros, and traits that help working with#[repr(C)]representations.osom_lib_entropyholds tools for generating randomness from the surrounding entropy, i.e. the operating system.osom_lib_entropy_cprngimplements an entropy generator that generates data from cryptographically secure PRNG, but is seeded from the OS-specific entropy.osom_lib_prngdefines pseudo random number generator algorithms, including cryptographically secure.osom_lib_hash_tablesdefines several ABI stable hash tables.osom_lib_hashesdefines several ABI stable hashing functions.osom_lib_macrosseveral general macros useful in various context.osom_lib_primitivesholds several primitives (like Length and CResult) used by other osom libs.osom_lib_allocdefines Allocator trait and related stuff.osom_lib_arraysdefines and implements various ABI stable arrays.osom_lib_carcdefines ABI stable reference counting smart pointers.osom_lib_numbersvarious helpers and numeric algorithms.osom_lib_stringsvarious helpers and algorithms for dealing with strings.