General purpose library with functions and classes usable in many projects, covering c-string handling, conversions and in- or output.
This library provides a small set of lightweight utilities tailored for Arduino-style environments. The focus is on minimal allocations, explicit buffer usage, and support for strings stored in RAM or PROGMEM.
- String handling:
strreffor read-only string views across RAM/PROGMEM/ArduinoString, plusstr<N>as a fixed-size string buffer. - Formatting:
Formatterandformat()helpers for safe, boundedprintf-style formatting into user-managed buffers. - Optional values:
Maybe<T>as a compact alternative tostd::optional, with basic combinators. - Conversions:
convert<T>for parsing and formatting common primitive types, plus boolean format variants. - Decimal numbers:
Decimalfor fixed-point style decimal I/O backed by a 64-bit integer. - Fixed-capacity map:
FixedCapacityMap<K, V, N>for sorted key/value storage with deterministic memory usage. - Streams: Minimal
IInput/IOutputinterfaces, string- and stream-backed adapters, andInputStreamfor bridging to ArduinoStreamAPIs. - Repository transactions:
Transaction<R>andbeginTransaction()helpers for simple commit/rollback patterns.
- Some conversions and formatting APIs reuse internal buffers; treat returned strings as transient unless you provide your own buffer.
- PROGMEM strings are supported through
strrefto avoid redundant copies.