DeserializationOptions.allowInvalidUTF8 to restore the previous behavior).
Overview
JBird 3.0 focuses on parsing performance and correctness. It fixes several known bugs when parsing numeric values and adds support for Swift 6.4 and Xcode 27. Compared to previous version, JBird 3.0 parses typical JSON about 25 to 30 percent faster while executing roughly a third fewer CPU instructions. The gains on real-world payloads can be even larger. The twitter benchmark is up to 36 percent faster with half the allocations. Deeply nested documents are up to 42 percent faster, and string-heavy inputs are up to 2.8 times faster. Peak memory usage is unchanged across the board. Full comparisons are in the Benchmarks directory.
What's Changed
- Update to Xcode 27, Swift 6.4 by @vsanthanam in #412
- Add
InlineArrayConversion Support by @vsanthanam in #414 - Add additional
JSONRepresentableconformances to standard library string types by @vsanthanam in #421 - Replace single length arrays with
CollectionOfOneby @vsanthanam in #415 - Delete Deprecated Error Types by @vsanthanam in #424
- Drop support for Swift 6.1 by @vsanthanam in #425
- Fix CodeQL on Xcode 27 by @vsanthanam in #426
- Dramatically Reduce Materialization Overhead by @vsanthanam in #423
- Simplify WASM Actions Flow by @vsanthanam in #435
- Vectorize String Parsing by @vsanthanam in #431
- Centralize swift settings in 6.2 and 6.3 package manifests by @vsanthanam in #438
- Remove Deprecated JSON Subscript APIs by @vsanthanam in #437
- Migrate to mise for tool dependencies by @vsanthanam in #439
- Vectorize Whitespace Parsing by @vsanthanam in #441
- Remove deprecated JSON Pointer/Patch Overloads by @vsanthanam in #442
- Fix Number Parsing Rounding and Classification by @vsanthanam in #448
- Run unit tests for WASM by @vsanthanam in #444
- Use Swift Module Selectors in macro generated code by @vsanthanam in #449
- Use
Mutexinstead ofNSLockon iOS 18+ by @vsanthanam in #451 - Move 6.2 toolchain to 6.2.4 in CI workflow by @vsanthanam in #452
- Reject Invalid UTF-8 Sequences by @vsanthanam in #453
- Rerun Benchmarks by @vsanthanam in #457
- Update to version 3.0.0 by @vsanthanam in #458
Full Changelog: 2.3.1...3.0.0