All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
Unreleased 2015-09-27
- Refactored Writer and PrettyWriter to both directly inherit from new class WriterBase and moved all common code into WriterBase. Much less code.
- new classes IOStreamReadStream and IOStreamWriterStream that supports std::iostream
- WriterBase extends Writer and PrettyWriter by adding overloaded functor methods that write values, ie: bool operator()(TYPE value) where TYPE is one of the types you can write to JSON.
- WriterBase extends Writer and PrettyWriter by adding overloaded functor methods that write key/value pair. ie bool operator()(char *key, TYPE value) where TYPE is one of the types you can write to JSON.
- WriterBase has overloaded all functions that take a string as a parameter in such a way that it can differentiate between string literals and char * variables. It avoids a redundant strlen call for string literals as the length is known at compile time.
- Added new classes ObjectBlock and ArrayBlock. On construction they will start and Object/Array and on destruction close and Object/Array automatically. Reduces bugs and complexity of code by removing the need to remember to close and open Object/Array.
1.0.2 - 2015-05-14
- 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 (0691502573f1afd3341073dd24b12c3db20fbde4)
- CMakeLists for include as a thirdparty in projects (#334, #337)
- Change Document::ParseStream() to use stack allocator for Reader (ffbe38614732af8e0b3abdc8b50071f386a4a685)
1.0.1 - 2015-04-25
- Changelog following Keep a CHANGELOG suggestions.
- Parsing of some numbers (e.g. "1e-00011111111111") causing assertion (#314).
- Visual C++ 32-bit compilation error in
diyfp.h
(#317).
1.0.0 - 2015-04-22
- 100% Coverall coverage.
- Version macros (#311)
- A bug in trimming long number sequence (4824f12efbf01af72b8cb6fc96fae7b097b73015).
- Double quote in unicode escape (#288).
- Negative zero roundtrip (double only) (#289).
- Standardize behavior of
memcpy()
andmalloc()
(0c5c1538dcfc7f160e5a4aa208ddf092c787be5a, #305, 0e8bbe5e3ef375e7f052f556878be0bd79e9062d).
- Remove an invalid
Document::ParseInsitu()
API (e7f1c6dd08b522cfcf9aed58a333bd9a0c0ccbeb).
- RFC 7159 (#101)
- Optional Iterative Parser (#76)
- Deep-copy values (#20)
- Error code and message (#27)
- ASCII Encoding (#70)
kParseStopWhenDoneFlag
(#83)kParseFullPrecisionFlag
(881c91d696f06b7f302af6d04ec14dd08db66ceb)- Add
Key()
to handler concept (#134) - C++11 compatibility and support (#128)
- Optimized number-to-string and vice versa conversions (#137, #80)
- Short-String Optimization (#131)
- Local stream optimization by traits (#32)
- Travis & Appveyor Continuous Integration, with Valgrind verification (#24, #242)
- Redo all documentation (English, Simplified Chinese)
- Copyright ownership transfered to THL A29 Limited (a Tencent company).
- Migrating from Premake to CMAKE (#192)
- Resolve all warning reports
- Remove other JSON libraries for performance comparison (#180)