Expand description
§Zero JSON (zjson)
Parse JSON with zero allocation.
§Status
This library is still in development. We still need:
- Tests
- Better documentation
- More examples
- Potentially a simplified API (it is not stable yet)
If you would like to contribute to this, please open an issue or contact me directly.
§How to Use
Create a document from a JSON string.
Call next on any container (document, object, array) to get the next value.
The returned value must be fully parsed before continuing.
Match on the returned Any value to handle each type.
Call get on a single value (string, number, boolean, null) to get it.
Call finish on a value to skip it (so that the parent container can continue).
§Features
alloc- adds features that require allocation (only allocating escaped strings, there is a no-alloc alternative)std(enablesalloc, default) - adds features that requirestd(Errorimpls)
§Specification
The parser is (hopefully) ECMA 404 complient, including support for Unicode surrogate pairs. The diagram on json.org is a great representation of the standard.
§Alternatives
This library is designed to be fast and require no allocations.
This means that the API is more complex than something like serde with serde_json.
§Examples
There are examples in the examples directory.
§License
Zero JSON is licensed under either the MIT license or the Apache License Version 2.0 at your option.
Modules§
- any
- Types that abstract over all JSON types.
- array
- Types related to JSON arrays.
- document
- Types related to JSON documents.
- literal
- Types related to JSON
true,falseandnullvalues. - multi_
document - Types related to JSON documents with multiple values.
- number
- Types related to JSON numbers.
- object
- Types related to JSON objects.
- string
- Types related to JSON strings.