jjpwrgem-parse 0.14.0

JSON parser and formatter with rich errors
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.14.0]https://github.com/20jasper/JJPWRGEM/compare/jjpwrgem-parse-v0.13.2...jjpwrgem-parse-v0.14.0 - 2026-06-01

### Added

- *(cli)* [**breaking**] replace --json-lines flag with --parser <type>
- *(parse)* [**breaking**] builders and structs for configurations
- [**breaking**] add range to value struct and visitor methods

### Deprecated

- *(cli)* [**breaking**] remove cr line ending option

## [0.13.2]https://github.com/20jasper/JJPWRGEM/compare/jjpwrgem-parse-v0.13.1...jjpwrgem-parse-v0.13.2 - 2026-05-26

### Added

- *(parse)* JSON lines formatting and checking

## [0.13.1]https://github.com/20jasper/JJPWRGEM/compare/jjpwrgem-parse-v0.13.0...jjpwrgem-parse-v0.13.1 - 2026-05-25

### Fixed

- out of bounds index on multibyte error source

## [0.13.0]https://github.com/20jasper/JJPWRGEM/compare/jjpwrgem-parse-v0.12.1...jjpwrgem-parse-v0.13.0 - 2026-05-24

### Fixed

- set limit of 128 nesting depth

## [0.12.1]https://github.com/20jasper/JJPWRGEM/compare/jjpwrgem-parse-v0.12.0...jjpwrgem-parse-v0.12.1 - 2026-05-23

### Fixed

- *(deps)* loosen dependency versions

## [0.12.0]https://github.com/20jasper/JJPWRGEM/compare/jjpwrgem-parse-v0.11.1...jjpwrgem-parse-v0.12.0 - 2026-05-23

### Deprecated

- [**breaking**] flatten parse module hierarchy and tighten internal visibility

## [0.11.0]https://github.com/20jasper/JJPWRGEM/releases/tag/jjpwrgem-parse-v0.11.0 - 2026-05-22

### Added

- [**breaking**] inline objects based on width
- [**breaking**] number only array will fill format instead of expanding
- [**breaking**] prettier number normalization
- improve exponent diagnostics
- provide rich utf8 error context to the cli
- *(parse)* add prettify_value_into and uglify_value_into
- serde feature for serializing serde::Serializable and serde_json::Value ([#91]https://github.com/20jasper/JJPWRGEM/pull/91)
- end of line option
- [**breaking**] preferred width
- [**breaking**] change pretty default indent to 2 spaces
- [**breaking**] non empty arrays put items on newline
- consistent key ordering

### Deprecated

- [**breaking**] error helpers, diagnostic constants, Emitter, join_into, UglifyEmitVisitor
- deprecated!(parse): removed line and column numbers from error and display impl

### Documentation

- add xtask to generate readmes

### Fixed

- account for delimiters in array width measurement
- parse value visitor now handles object key events properly
- spacial case empty object to be on one line

### Performance

- remove iterator abstraction layers
- bytewise parsing for exponents
- bytewise parsing for mantissa
- *(parse)* skip whitespace with portable SIMD (u8x32)
- *(parse)* replace next_if whitespace loop with peek fast path + byte scan
- uglify_serializable now uses faster serialization from the crate instead of deferring to serde_json
- don't build ast when uglifying from string slice
- don't build ast when validating syntax
- track count of digits instead of vec of chars
- only cache successful tokens in TokenStream
- write delimiters and indentation directly to buffer, avoiding intermediate allocations
- avoid using fmt machinery in hot paths, instead pushing directly
- TokenStream iterator instead of collecting into intermediary Vec
- join_into utility to declaratively avoid allocating delimiter strings
- write to single buffer instead of allocating buffer per JSON value