- Fixed memory leak.
- Updated to yyjson 0.8.0
-
Improvements to decoding.
-
New functions that can take data input from a
Collection where Element == UInt8
. -
Added the ability to get all the keys for a keyed decoding container.
-
- Tweaked
Package.swift
again, trying to find the right combo that makes the SwiftPM happy in various external projects.
-
Tweaked
Package.swift
to use version descriptions that will be easier to build with other projects. -
Added notes in
README.md
regarding semantic versioning of this project. -
Improved documentation on the handler-based decoding function.
-
Eliminated
Encoder
andDecoder
as to not conflict with the names of the native language protocols.-
Introduction of
QuickJSON.encode()
to take the primary role of encoding data from the outgoing struct. -
Introduction of
QuickJSON.decode()
to take the primary role of decoding data from the outgoing struct.
-
-
Inclusion of a new build flag that includes descriptive log information when enabled:
QUICKJSON_SHOULDLOG
-
Default loggers may be provided for encoding and decoding independently.
-
Log levels can be provided per job.
-
-
Addition of special
decode
function that handles its decoding and type interpretation with a handler function instead of using type-integrated decoding viaCodable
. -
Completely reimplemented
MemoryPool
name. No longer a typealias foryyjson_alc
...which is now abstracted from the developer. A simple call to theMemoryPool
initializer is all that is needed to guarantee safe memory use. -
Bugfix: decoding flags were not being passed into yyjson.
- Improvements to the unkeyed decoding container. Specific errors are now thrown to handle circumstances where a user of the unkeyed container exceeds the boundaries of the data.
- Unkeyed decoding container no longer increments (moving on to the next item in its bounds) when an error is thrown trying to decode a value.
-
Bugfix: optimized and completed implementation of MemoryPools.
-
Converted
QuickJSON.Encoder
andQuickJSON.Decoder
to classes.
-
Bugfix: unkeyed decoding containers failed to load the first object within their bounds, causing them to fail immediately.
- Added test coverage for unkeyed decoding containers.
-
Bugfix:
QuickJSON.Encoder.encode(...)
was returning an array containing aNUL
byte at the end of every return value. This has been corrected.
MemoryPool.allocate(...)
now throws aMemoryPool.InitializationError
instead of returning an optional value.
-
Improvements to
MemoryPool
typealias.-
Added extension function
maxReadSize
that returns the apropriate maximum buffer size for decoding data of known maximum length. -
Improved documentation on existing extension function
allocate
-
- Added decoding variant that uses
from:UnsafeRawPointer, size:size_t
as input.
- Updated
Package.swift
to reference C libyyjson
directly, since thetannerdsilva/yyjson
fork was simply a mirror (a fork initially deemed necessary for managing release tags).
- Updated
Package.swift
to use SemVer range foryyjson
instead of explicit revision hashes.
-
First tag. Expecting a fairly stable experience, but more development is needed to really finish off the API surface.
-
Basic tests to prove high-level functionality.
-
Plentiful comments and consistent naming.
-
MIT license.
-
One dependency (
yyjson
, of course)