Dependency-free core
No NumPy, pandas, Pillow, pydantic, CLI frameworks, or runtime imports outside the standard library. The SDK stays small, inspectable, and easy to embed.
libRangeMap is a small, dependency-free SDK for turning ordinary numbers, text, bytes, nested data, records, and image-like values into bounded floating-point representations. It is built for pipelines that need explainable normalization without mystery imports, silent coercion, or magic fallback values.
Designed for AI dataset preparation, feature collection, model training inputs, and reproducible preprocessing where every value needs an audit trail.
No NumPy, pandas, Pillow, pydantic, CLI frameworks, or runtime imports outside the standard library. The SDK stays small, inspectable, and easy to embed.
The same input plus the same config produces the same output. Fitted ranges, vocabularies, alphabets, policies, and metadata are captured in specs.
Invalid ranges, NaN/Inf, unknown tokens, empty data, unsupported types, and missing metadata fail loudly with typed errors instead of hidden fallbacks.
The default output range is always [-1.0, 1.0] unless explicitly changed. Mapping remains bounded by design, and clipping behavior is documented instead of implied.
out_min + ((value - in_min) / (in_max - in_min)) * (out_max - out_min)libRangeMap is intentionally boring where it should be boring: stable, bounded, transparent, and easy to reason about in CI.
Convert ordinary numeric and categorical fields into consistent floating-point feature values without pulling a data-science stack into production code.
Capture raw values with explicit mapper metadata so future retraining runs can reproduce the same preprocessing decisions.
Use documented policies for Python, C, Java, C++, C#, JavaScript, SQL, Rust, Go, Ruby, PHP, MATLAB, COBOL, and more.
Use the same normalization model across the required language set, with documented policies for values, strings, bytes, sequences, maps, records, custom objects, and image-like data.
Clone the repository, install the Python package, then create mappers with explicit ranges or fitted metadata. Every mapper follows the same contract: validate input, map with a documented policy, keep output bounded, and expose a JSON-serializable spec.
Start with paste-ready examples, then move into the mapper contract, type policies, serialization, and language-specific usage guides.
Use libRangeMap when your AI pipeline needs portable preprocessing, reproducible mapper specs, and bounded values that stay explainable from local experiments to production jobs.