NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4686 most downloaded on crates.io
A more memory efficient replacement for serde_json::Value
Last release 2 months ago
16 Jul 2026
Release timing varies
gaps range from 1 weeks to 3.2 years
Nearly every release is documented
notes for 7 of 7 stable releases
2 versions withdrawn
withdrawn after publishing
6 years old
9 releases · first in 2020
One column per quarter.
Add FromIterator and serde_json conversions for IValue ( #38 ) by @Diggsey in #39
Full Changelog: 0.1.6...0.1.7
FromIterator<T: Into<IValue>> for IValue (collects into an array) and FromIterator<(K: Into<IString>, V: Into<IValue>)> for IValue (collects into an object), mirroring serde_json::Value.From<serde_json::Value> for IValue and From<IValue> for serde_json::Value for smoother interoperability with serde_json.From<serde_json::Map<String, serde_json::Value>> for IObject and the reverse, matching the existing HashMap/BTreeMap/IndexMap conversions.null, booleans, small numbers, and short strings — inline within the pointer-sized IValue, behind a widened 3-bit tag scheme. Small numbers are held as a mantissa * base^exp value (a base-2 binary float by default, so every inline number is exactly an f64), so most JSON numbers (integers, timestamps/ids, and short fractions such as 0.5 and 63.5) require no allocation or pointer indirection; only larger integers and out-of-range floats fall back to an 8-byte heap payload. Note: IString::as_str().as_ptr() is no longer stable across equal short strings, since they are no longer deduplicated to a shared allocation (value equality via == is unaffected).arbitrary_precision feature that stores numbers as their exact decimal value (mantissa * 10^exp inline, or a heap arbitrary-precision decimal) instead of rounding to f64. With it enabled, values such as 0.1 are kept exactly, and integers and decimals beyond f64's range and precision become representable; deserialization routes through the same parser as str::parse, so a value round-trips exactly.Full Changelog : 0.1.5...0.1.6
Full Changelog: 0.1.5...0.1.6
Borrow<str> impl for IString by default. The impl violates the Borrow contract because IString hashes by pointer, not by contents, causing silent lookup failures in HashMap/HashSet when using &str keys. A broken-borrow-impl-compat feature flag is available as a temporary compatibility measure.Fix soundness issue when OOM occurs
Full Changelog: 0.1.4...0.1.5
Clean Clippy warnings by @gkorland in #12
is_object typo. by @kjschiroo in #22indexmap in #28Full Changelog: 0.1.3...0.1.4
indexmap feature to enable conversion between IObject and IndexMap.Header layout.is_object typo in into_object.dashmap to 5.4.Add missing string de-serialization paths.
Fix incorrect interning of empty string.
Fix bounds on short integer storage.
Initial release: memory-efficient IValue replacement for serde_json::Value.
IValue replacement for serde_json::Value.IString) and numbers (INumber).IObject.IArray type.From/Into conversions for common types.Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →