Skip to content

v3.0.0 — Swift API Redesign & Full JSON Schema Support

Latest

Choose a tag to compare

@miamisunset miamisunset released this 01 Jun 19:45
· 1 commit to main since this release
01394e5

v3.0.0 — Swift API Redesign & Full JSON Schema Support

Breaking Changes

  • get<T>() accessors removed, replaced by typed require*() accessors (requireString, requireInt, etc.) — aligns with Swift API design guidelines (#45)
  • JSONSchemaError.keyword changed from String to JSONSchemaKeyword enum for type-safe keyword handling (#52, #53)
  • dump API redesigned — new JSON.Indent type replaces raw indent parameters; OutputOptions added to encoder
  • Source files reorganized following Swift API design guidelines — imports may need updating (#49)

New Features

  • Full JSON Schema support — core validation, composition keywords, array/object keywords, $ref/$id resolution, format validation, string content keywords, output/error reporting, draft-specific dispatch, schema generation from instances (#28, #30, #32-#45)
  • Comparable conformance on JSON — enables sorted(), max(), min() and other Comparable-constrained APIs
  • JSONWithUnknownKeys — captures unknown keys during decoding while preserving known-key structure
  • Performance optimizations across parsing, serialization, and binary formats (#43)

Bug Fixes

  • Comprehensive 13-phase bug hunt fixing correctness issues across all subsystems (#48)
  • Type hierarchy aligned with nlohmann/json comparison semantics — fixes edge-case comparison behavior (#51)
  • Various CBOR, BSON, MessagePack, UBJSON edge-case fixes
  • Parser overflow and schema compilation fixes

Refactoring & Maintenance

  • Source and test files reorganized into focused files by concern (#31, #49)
  • Modernized test patterns with Swift Testing best practices (#46)
  • DocC documentation comments added, README verified against API (#47)
  • Removed stale plan files (PROGRESS.md, BUG_HUNT_PLAN.md, SCHEMA_PLAN.md)
  • CLAUDE.md project instructions added

1,710 tests — all passing