PackageTrack
Sign in Get early access

jsonptr

Data structures and logic for resolving, assigning, and deleting by JSON Pointers (RFC 6901)

0.8.2 66M downloads/mo #1048 most downloaded on crates.io chanced/jsonptr

What this package is like to depend on

Last release 3 days 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

3 releases in the last 12 months

see the full history below

Release timeline

41 releases · Jun 2022 to Aug 2026
2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 41
  1. 0.8.2 20 Aug 2026
    Release notes

    chore: Release jsonptr version 0.8.2

    Open source →
    Release notes

    Fixed

    • Fixed 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.
    Open source →
  2. 0.8.1 26 Jul 2026
    Release notes

    chore: Release jsonptr version 0.8.1

    Open source →
    Release notes

    Added

    • Added 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.

    Changed

    • Resolved all 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.

    Fixed

    • Fixed several broken/stale intra-doc links (a 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.
    Open source →
  3. 0.8.0 26 Jul 2026
    Release notes

    chore: Release jsonptr version 0.8.0

    Open source →
    Release notes

    Added

    • Adds Pointer::split_at_offset, the byte-offset-based replacement for the now-deprecated Pointer::split_at.

    Deprecated

    • Deprecated ResolveError name.
    • Deprecated 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).

    Fixed

    • 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.
    • Fixes returning an incorrect error type when parsing a Token that terminates with ~. This now correctly classifies the error as a Tilde error.
    • Disabled default features for the serde dependency, which enables using this library in no-std environments even with the serde feature enabled.

    Removed

    • Some methods were removed from 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.

    Changed

    • Token::from_encoded now accepts owned or borrowed strings (any type that implements Into<Cow<'_, str>>).
    • Sealed the Diagnose trait.
    • Implementation of the Default trait for Pointer now doesn't constrain the lifetime.
    Open source →
  4. 0.7.1 16 Feb 2025
    Release notes

    chore: Release jsonptr version 0.7.1

    Open source →
    Release notes

    Changed

    • Removes accidentally enabled default features "miette" and "toml"
    Open source →
  5. 0.7.0 13 Feb 2025 withdrawn
    Release notes
    • Renames crate::resolve::ResolveError to crate::resolve::Error
    • Adds type alias crate::resolve::ResolveError for crate::resolve::Error
    • Renames crate::assign::AssignError to crate::assign::Error
    • Adds type alias crate::assign::AssignError for crate::assign::Error`
    • Adds position (token index) to variants of assign::Error & resolve::Error

    Co-authored-by: André Mello [email protected]

    Open source →
    Release notes

    Added

    • Adds method into_buf for Box<Pointer> and impl From<PathBuf> for Box<Pointer>.
    • Adds unsafe associated methods Pointer::new_unchecked and PointerBuf::new_unchecked for external zero-cost construction.
    • Adds Pointer::starts_with and Pointer::ends_with for prefix and suffix matching.
    • Adds new ParseIndexError variant to express the presence non-digit characters in the token.
    • Adds Token::is_next for checking if a token represents the - character.
    • Adds InvalidEncoding to represent the two possible encoding errors when decoding a token.
    • Adds 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.
    • Adds diagnostic::Report<T> to capture the input for PointerBuf::parse and to facilitate miette integration for all errors.
    • Adds "miette" feature flag to enable miette integration for error reporting.

    Changed

    • Pointer::get now accepts ranges and can produce Pointer segments as output (similar to slice::get).
    • Bumps minimum Rust version to 1.79.
    • 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::
    • Renames ParseError::NoLeadingBackslash to ParseError::NoLeadingSlash (sorry for the churn, I spaced hard - @chanced).
    • Adds field position to variants of resolve::Error and assign::Error to indicate the token index of where the error occurred.
    • Renames ParseError::is_no_leading_backslash to ParseError::is_no_leading_slash.
    • Renames assign::AssignError to assign::Error
    • Renames resolve::ResolveError to resolve::Error
    • Renames InvalidEncodingError to EncodingError

    Fixed

    • Make validation of array indices conform to RFC 6901 in the presence of non-digit characters.

    Deprecated

    • ParseError::is_no_leading_backslash renamed to ParseError::is_no_leading_slash.
    • assign::AssignError renamed to assign::Error
    • resolve::ResolveError renamed to resolve::Error
    • InvalidEncodingError renamed to EncodingError
    Open source →
  6. 0.6.3 01 Oct 2024

    Nothing published for this version

  7. 0.6.2 30 Sep 2024 withdrawn
    Release notes

    Added

    • Adds methods len and is_empty to Pointer
    Open source →
  8. 0.6.1 26 Sep 2024

    Nothing published for this version

  9. 0.6.0 10 Aug 2024
    Release notes

    chore: Release jsonptr version 0.6.0

    Open source →
    Release notes

    Fixed

    • Token::to_index now fails if the token contains leading zeros, as mandated by the RFC.

    Changed

    • ParseIndexError is now an enum to reflect the new failure mode when parsing indices.
    Open source →
  10. 0.5.1 10 Jul 2024
    Release notes

    version bump (#65)

    Open source →
  11. 0.5.0 10 Jul 2024
    Release notes
    • removes offset method from InvalidEncodingERror
    Open source →
  12. 0.4.7 18 Mar 2024
    Release notes
    • Fixes issue with pop_front on a token with an empty string leaving the pointer in an invalid state. #25 by @wngr
    • Fixes issue with pop_back on a token with an empty string. #26 by @asmello
    Open source →
  13. 0.4.6 04 Mar 2024
    Release notes
    • Fixes Pointer::last panicking for empty/root pointers #23 by @wngr
    Open source →
  14. 0.4.5 23 Feb 2024
    Release notes

    Fixed

    • Fixes issue with Pointer::push_back that does not allow for empty strings to be appended as tokens. #21 fixed by @wngr
    Open source →
  15. 0.4.4 13 Oct 2023

    Nothing published for this version

  16. 0.4.3 20 Aug 2023
    Release notes

    Added

    • Adds parse method to Pointer which calls the currently existing FromStr impl
    Open source →
  17. 0.4.2 23 Jun 2023
    Release notes

    Added

    • implements IntoIterator for &Pointer
    Open source →
  18. 0.4.1 22 Jun 2023
    Release notes

    Added

    • implements Borrow<[u8]> and AsRef<[u8]> for Pointer
    Open source →
  19. 0.4.0 31 May 2023
    Release notes

    Added

    • Adds CHANGELOG.md which will be better upkept moving forward.
    • Adds MaybePointer to assist with deserialization which should not fail fast.

    Changed

    • 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.

    Removed

    • Removes optional MalformedPointerError from Pointer.
    Open source →
  20. 0.3.6 23 May 2023
    Release notes

    Changed

    • Adds quotes around Pointer debug output (#11)

    Fixed

    • Adds missing impl std::error::Error for Error, NotFoundError, MalformedError
    • Fixes build for std feature flag
    Open source →
  21. 0.3.5 13 May 2023

    Nothing published for this version

  22. 0.3.4 11 May 2023
    Release notes

    Added

    • Adds feature flag fluent-uri for From<fluent_uri::Uri<_> impl (#3)
    Open source →
  23. 0.3.3 18 Mar 2023

    Nothing published for this version

  24. 0.3.2 24 Feb 2023 withdrawn

    Nothing published for this version

  25. 0.3.1 24 Feb 2023 withdrawn

    Nothing published for this version

  26. 0.3.0 24 Feb 2023 withdrawn

    Nothing published for this version

  27. 0.2.0 24 Feb 2023
    Release notes

    Changed

    • std is now optional
    • Adds feature flags "uniresid", "url" to enable implementing From<Uri>, From<Url> (respectively).

    Removed

    • Removes Cargo.lock
    • Makes uniresid and uri optional
    Open source →
  28. 0.1.5 30 Jun 2022

    Nothing published for this version

  29. 0.1.4 30 Jun 2022

    Nothing published for this version

  30. 0.1.3 30 Jun 2022

    Nothing published for this version

  31. 0.1.2 22 Jun 2022

    Nothing published for this version

  32. 0.1.1 16 Jun 2022

    Nothing published for this version

  33. 0.1.0 12 Jun 2022
    Release notes

    Fixed

    • Fixes root pointer representation "" rather than the erroneous "/"
    • Fixes an issue where encoded tokens were not being resolved properly
    Open source →
  34. 0.0.8 12 Jun 2022

    Nothing published for this version

  35. 0.0.7 09 Jun 2022

    Nothing published for this version

  36. 0.0.6 09 Jun 2022

    Nothing published for this version

  37. 0.0.5 07 Jun 2022

    Nothing published for this version

  38. 0.0.4 07 Jun 2022

    Nothing published for this version

  39. 0.0.3 07 Jun 2022

    Nothing published for this version

  40. 0.0.2 07 Jun 2022

    Nothing published for this version

  41. 0.0.1 02 Jun 2022

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive