Rapidjson is an attempt to create the fastest JSON parser and generator. This is an unofficial release from the master branch as of 11/2017.
- Small but complete. Supports both SAX and DOM style API. SAX parser only a few hundred lines of code.
- Fast. In the order of magnitude of strlen(). Optionally supports SSE2/SSE4.2 for acceleration.
- Self-contained. Minimal dependency on standard libraries. No BOOST, not even STL.
- Compact. Each JSON value is 16 or 20 bytes for 32 or 64-bit machines respectively (excluding text string storage). With the custom memory allocator, parser allocates memory compactly during parsing.
- Full RFC4627 compliance. Supports UTF-8, UTF-16 and UTF-32.
- Support both in-situ parsing (directly decode strings into the source JSON text) and non-destructive parsing (decode strings into new buffers).
- Parse number to int/unsigned/int64_t/uint64_t/double depending on input
- Support custom memory allocation. Also, the default memory pool allocator can also be supplied with a user buffer (such as a buffer allocated on user's heap or - programme stack) to minimize allocation.
As the name implies, rapidjson is inspired by rapidxml.
Add Value::XXXMember(...) overloads for std::string (#335)
Include rapidjson.h for all internal/error headers.
Parsing some numbers incorrectly in full-precision mode (kFullPrecisionParseFlag) (#342)
Fix alignment of 64bit platforms (#328)
Fix MemoryPoolAllocator::Clear() to clear user-buffer (0691502)
CMakeLists for include as a thirdparty in projects (#334, #337)
Change Document::ParseStream() to use stack allocator for Reader (ffbe386)
This package has no dependencies.