NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #985 most downloaded on crates.io
Data structures and logic for resolving, assigning, and deleting by JSON Pointers (RFC 6901)
Last release 1 months ago
20 Aug 2026
Ships unpredictably
gaps range from 9 days to 1.4 years
Some releases are documented
notes for 18 of 36 stable releases
5 versions withdrawn
withdrawn after publishing
4 years old
41 releases · first in 2022
One column per quarter.
chore: Release jsonptr version 0.8.2
chore: Release jsonptr version 0.8.2
Token::from_encoded accepting a ~ immediately followed by
another ~ (e.g. "~~0") as valid, letting safe code build a
PointerBuf that Pointer::parse then rejected on the same bytes. A ~
must now always be followed by 0 or 1. Resolves
#128.chore: Release jsonptr version 0.8.1
chore: Release jsonptr version 0.8.1
Token::into_encoded, which consumes the Token and returns its
encoded string representation as a Cow<'a, str> without allocating.
Resolves #115.ReplaceError (returned by PointerBuf::replace) is now re-exported from
the crate root, so callers can actually name the type.clippy (clippy::all + clippy::pedantic) and rustc lint
warnings across the full feature powerset — including newer-toolchain lints
(mismatched_lifetime_syntaxes) and feature-combination dead-code warnings.
Internal only; no public API changes.crate::asign typo, an "RFC
6091" typo, stale toml docs.rs links pointing at 0.8 instead of 0.9) and
a doc comment on Pointer::len that used // instead of /// and was
silently dropped from rendered docs.chore: Release jsonptr version 0.8.0
chore: Release jsonptr version 0.8.0
Pointer::split_at_offset, the byte-offset-based replacement for the
now-deprecated Pointer::split_at.ResolveError name.Pointer::split_at in favor of Pointer::split_at_offset. The
split_at name is being reserved so it can be reintroduced as a position
(index) based split by 1.0, consistent with the rest of the API (e.g.
Pointer::get).Delete::delete no longer panics when a pointer's final token resolves to
an array index equal to the array's length (e.g. - on any array, or a
numeric index equal to the length). It now returns None and leaves the
document unmodified, as documented. Fixes
#120.EncodingError and ParseIndexError now implement Diagnostic, which
unifies the API for errors originating from parse-like operations.Token that
terminates with ~. This now correctly classifies the error as a Tilde
error.serde dependency, which enables using
this library in no-std environments even with the serde feature enabled.InvalidCharacterError, as that type no
longer holds a copy of the input string internally. This is a breaking
change. To access equivalent functionality, use the Diagnostic API
integration.Token::from_encoded now accepts owned or borrowed strings (any type that
implements Into<Cow<'_, str>>).Diagnose trait.Default trait for Pointer now doesn't constrain the lifetime.chore: Release jsonptr version 0.7.1
chore: Release jsonptr version 0.7.1
"miette" and "toml"Renames crate::ResolveError to crate::Error
crate::resolve::ResolveError to crate::resolve::Errorcrate::resolve::ResolveError for crate::resolve::Errorcrate::assign::AssignError to crate::assign::Errorcrate::assign::AssignError for crate::assign::Error`position (token index) to variants of assign::Error & resolve::ErrorCo-authored-by: André Mello 3285133+asmello@users.noreply.github.com
into_buf for Box<Pointer> and impl From<PathBuf> for Box<Pointer>.Pointer::new_unchecked and PointerBuf::new_unchecked for
external zero-cost construction.Pointer::starts_with and Pointer::ends_with for prefix and suffix matching.ParseIndexError variant to express the presence non-digit characters in the token.Token::is_next for checking if a token represents the - character.InvalidEncoding to represent the two possible encoding errors when decoding a token.diagnotic::Diagnostic trait to facilitate error reporting and
miette integration. All errors intended for usage with assign::Assign or
resolve::Resolve must implement this trait.diagnostic::Report<T> to capture the input for PointerBuf::parse
and to facilitate miette integration for all errors."miette" feature flag to enable miette integration for error reporting.Pointer::get now accepts ranges and can produce Pointer segments as output (similar to
slice::get).PointerBuf::parse now returns RichParseError, an alias to
Report<ParseError> which contains the allocated string as well as the
error. Use Report::original for matches or `Report::ParseError::NoLeadingBackslash to ParseError::NoLeadingSlash
(sorry for the churn, I spaced hard - @chanced).position to variants of resolve::Error and assign::Error to indicate the
token index of where the error occurred.ParseError::is_no_leading_backslash to ParseError::is_no_leading_slash.assign::AssignError to assign::Errorresolve::ResolveError to resolve::ErrorInvalidEncodingError to EncodingErrorParseError::is_no_leading_backslash renamed to ParseError::is_no_leading_slash.assign::AssignError renamed to assign::Errorresolve::ResolveError renamed to resolve::ErrorInvalidEncodingError renamed to EncodingErrorNothing published for this version
Adds methods len and is_empty to Pointer
len and is_empty to PointerNothing published for this version
chore: Release jsonptr version 0.6.0
chore: Release jsonptr version 0.6.0
Token::to_index now fails if the token contains leading zeros, as mandated by the RFC.ParseIndexError is now an enum to reflect the new failure mode when parsing indices.version bump
removes offset method from InvalidEncodingERror
InvalidEncodingERrorThis is a breaking release including:
Pointer that enables zero-copy usage patternsconst fn Pointer::from_static for compile-time allocated PointersPointer::root singleton pointerPointer::split_front, Pointer::split_back, Pointer::parent, Pointer::strip_suffixDisplay and Debug for ParseErrorPointer::split_at which utilizes character offsets to split a pointer at a separatorParseError, ResolveError, AssignError"#" are no longer accepted. Previously, the erroneous leading hashtag was allowed during parsing but discarded.Assign, Resolve, ResolveMut, Delete all now use associated types Value and Error, allowing for more impls other than JSONPathBuf("/foo/bar") instead of "/foo/bar") - Display remains the samePointer type renamed to PointerBufoffset indexing instead of owned copies of Pointer and Token.Pointer::root is now PointerBuf::newPointer::new is now PointerBuf::from_tokens (and takes an IntoIterator argument - arrays still work)Pointer::union is now PointerBuf::intersectionToken type has been simplified and is now by default a borrowed type (use Token::to_owned or Token::into_owned to make it owned)Assign::assign now returns Result<Option<Assign::Value>, AssignError>, where Option<Assign::Value> is the replaced valuePointer::union is misleadingly namedAssignmentMaybePointerErrorimpl Deref<Target=&str> from Pointerurl, fluent-uri and uniresid as well as the TryFrom implementations for their respective typesToken::as_key and Token::as_str - use Token::decoded().as_ref() to achieve the same effectTokenFixes issue with pop_front on a token with an empty string leaving the pointer in an invalid state. #25 by @wngr
Fixes Pointer::last panicking for empty/root pointers #23 by @wngr
Pointer::last panicking for empty/root pointers #23 by @wngrFixes issue with Pointer::push_back that does not allow for empty strings to be appended as tokens. #21 fixed by @wngr
Pointer::push_back that does not allow for empty strings
to be appended as tokens. #21 fixed by @wngrNothing published for this version
Adds parse method to Pointer which calls the currently existing FromStr impl
parse method to Pointer which calls the currently existing FromStr
implimplements IntoIterator for &Pointer
IntoIterator for &Pointerimplements Borrow<[u8]> and AsRef<[u8]> for Pointer
Borrow<[u8]> and AsRef<[u8]> for PointerAdds CHANGELOG.md which will be better upkept moving forward.
CHANGELOG.md which will be better upkept moving forward.MaybePointer to assist with deserialization which should not fail fast.Pointer::new now accepts a generic list, so &["example"] can be replaced by ["example"]. For untyped, empty slices (i.e. Pointer::new(&[])), use Pointer::default().std is now enabled by default.MalformedPointerError from Pointer.Adds quotes around Pointer debug output
Pointer debug output (#11)impl std::error::Error for Error, NotFoundError, MalformedErrorstd feature flagNothing published for this version
Adds feature flag fluent-uri for From impl
fluent-uri for From<fluent_uri::Uri<_> impl (#3)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Adds feature flags "uniresid", "url" to enable implementing From , From (respectively).
std is now optional"uniresid", "url" to enable implementing From<Uri>, From<Url> (respectively).Cargo.lockuniresid and uri optionalNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fixes root pointer representation "" rather than the erroneous "/"
"" rather than the erroneous "/"Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →