https://github.com/realtimechris/jsonifier
A few classes for parsing and serializing objects from/into JSON, in C++ - very rapidly.
https://github.com/realtimechris/jsonifier
cpp jasonparser json json-parsing json-parsing-library json-simd jsonifier parsing serialization simd-instructions simd-json
Last synced: 4 months ago
JSON representation
A few classes for parsing and serializing objects from/into JSON, in C++ - very rapidly.
- Host: GitHub
- URL: https://github.com/realtimechris/jsonifier
- Owner: RealTimeChris
- License: mit
- Created: 2022-10-19T07:45:18.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T12:58:05.000Z (about 1 year ago)
- Last Synced: 2024-10-29T14:51:53.214Z (about 1 year ago)
- Topics: cpp, jasonparser, json, json-parsing, json-parsing-library, json-simd, jsonifier, parsing, serialization, simd-instructions, simd-json
- Language: C++
- Homepage:
- Size: 190 MB
- Stars: 55
- Watchers: 5
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: ReadMe.md
- Funding: .github/FUNDING.yml
- License: License.md
Awesome Lists containing this project
README
# Jsonifier


#### Jsonifier is fully [RFC8259](https://datatracker.ietf.org/doc/html/rfc8259) compliant.
### A few classes for validating, serializing, parsing, prettifying, and minifying objects into/from JSON strings - very rapidly.
### [Benchmarks](https://github.com/RealTimeChris/Json-Performance)
### [More Benchmarks](https://github.com/Loki-Astari/JsonBenchmark)
### ***It achieves this through the usage of [simd-instructions](https://github.com/RealTimeChris/Jsonifier/tree/main/Include/jsonifier/Simd) as well as compile-time [hash-maps](https://github.com/RealTimeChris/Jsonifier/blob/main/Include/jsonifier/Utilities/HashMap.hpp) for the keys of the data being parsed.***
### ***Jsonifier doesn’t just parse JSON — it survives it. Every build is battle-hardened against malformed input by a custom fuzz-simulation test that systematically corrupts a 2000+ character JSON string one byte at a time, generating thousands of progressively invalid permutations. Each variant is force-fed through both parsing and schema validation. The result? Zero crashes. Zero memory violations. Zero undefined behavior. Jsonifier passes this gauntlet under UBSAN and ASAN with full memory and bounds safety — proving it’s not just fast, but ferociously robust in the face of chaos.***
----
### Compiler Support
----



### Operating System Support
----



### Usage Guide:
----
- ## [Installation](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/Installation.md)
- ## [Reflection](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/Reflection.md)
- ## [Optimizing For Minified Json](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/Optimizing_For_Minified_Json.md)
- ## [Partial Reading](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/PartialReading.md)
- ## [Serializing-Parsing](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/Usage_Serializing_Parsing.md)
- ## [Validating](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/Validating.md)
- ## [Prettifying](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/Prettifying.md)
- ## [Minifying](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/Minifying.md)
- ## [Error Handling](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/Errors.md)
- ## [CPU Architecture Selection](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/CPU_Architecture_Selection.md)
- ## [Excluding Keys at Runtime](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/Excluding_Keys.md)
- ## [Custom JSON Parsing/Serializing Behavior](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/Custom_Parsing_And_Serializing.md)
- ## [Parsing Arbitrary/Unknown Data](https://github.com/RealTimeChris/Jsonifier/blob/main/Documentation/Parsing_Arbitrary_Data.md)