Releases: Tencent/rapidjson
Releases · Tencent/rapidjson
v1.1.0
Highlights
- Added JSON Pointer
- Added JSON Schema
- Added relaxed JSON syntax (comment, trailing comma, NaN/Infinity)
- Iterating array/object with C++11 Range-based for loop
- Reduce memory overhead of each
Value
from 24 bytes to 16 bytes in x86-64 architecture.
Added
- Add GenericDocument ctor overload to specify JSON type (#369)
- Add FAQ (#372, #373, #374, #376)
- Add forward declaration header
fwd.h
- Add @platformio Library Registry manifest file (#400)
- Implement assignment operator for BigInteger (#404)
- Add comments support (#443)
- Adding coapp definition (#460)
- documenttest.cpp: EXPECT_THROW when checking empty allocator (470)
- GenericDocument: add implicit conversion to ParseResult (#480)
- Use <wchar.h> with C++ linkage on Windows ARM (#485)
- Detect little endian for Microsoft ARM targets
- Check Nan/Inf when writing a double (#510)
- Add JSON Schema Implementation (#522)
- Add iostream wrapper (#530)
- Add Jsonx example for converting JSON into JSONx (a XML format) (#531)
- Add optional unresolvedTokenIndex parameter to Pointer::Get() (#532)
- Add encoding validation option for Writer/PrettyWriter (#534)
- Add Writer::SetMaxDecimalPlaces() (#536)
- Support {0, } and {0, m} in Regex (#539)
- Add Value::Get/SetFloat(), Value::IsLossLessFloat/Double() (#540)
- Add stream position check to reader unit tests (#541)
- Add Templated accessors and range-based for (#542)
- Add (Pretty)Writer::RawValue() (#543)
- Add Document::Parse(std::string), Document::Parse(const char*, size_t length) and related APIs. (#553)
- Add move constructor for GenericSchemaDocument (#554)
- Add VS2010 and VS2015 to AppVeyor CI (#555)
- Add parse-by-parts example (#556, #562)
- Support parse number as string (#564, #589)
- Add kFormatSingleLineArray for PrettyWriter (#577)
- Added optional support for trailing commas (#584)
- Added filterkey and filterkeydom examples (#615)
- Added npm docs (#639)
- Allow options for writing and parsing NaN/Infinity (#641)
- Add std::string overload to PrettyWriter::Key() when RAPIDJSON_HAS_STDSTRING is defined (#698)
Fixed
- Fix gcc/clang/vc warnings (#350, #394, #397, #444, #447, #473, #515, #582, #589, #595, #667)
- Fix documentation (#482, #511, #550, #557, #614, #635, #660)
- Fix emscripten alignment issue (#535)
- Fix missing allocator to uses of AddMember in document (#365)
- CMake will no longer complain that the minimum CMake version is not specified (#501)
- Make it usable with old VC8 (VS2005) (#383)
- Prohibit C++11 move from Document to Value (#391)
- Try to fix incorrect 64-bit alignment (#419)
- Check return of fwrite to avoid warn_unused_result build failures (#421)
- Fix UB in GenericDocument::ParseStream (#426)
- Keep Document value unchanged on parse error (#439)
- Add missing return statement (#450)
- Fix Document::Parse(const Ch*) for transcoding (#478)
- encodings.h: fix typo in preprocessor condition (#495)
- Custom Microsoft headers are necessary only for Visual Studio 2012 and lower (#559)
- Fix memory leak for invalid regex (26e69ff)
- Fix a bug in schema minimum/maximum keywords for 64-bit integer (e7149d6)
- Fix a crash bug in regex (#605)
- Fix schema "required" keyword cannot handle duplicated keys (#609)
- Fix cmake CMP0054 warning (#612)
- Added missing include guards in istreamwrapper.h and ostreamwrapper.h (#634)
- Fix undefined behaviour (#646)
- Fix buffer overrun using PutN (#673)
- Fix rapidjson::value::Getstd::string() may returns wrong data (#681)
- Add Flush() for all value types (#689)
- Handle malloc() fail in PoolAllocator (#691)
- Fix builds on x32 platform. #703
Changed
- Clarify problematic JSON license (#392)
- Move Travis to container based infrastructure (#504, #558)
- Make whitespace array more compact (#513)
- Optimize Writer::WriteString() with SIMD (#544)
- x86-64 48-bit pointer optimization for GenericValue (#546)
- Define RAPIDJSON_HAS_CXX11_RVALUE_REFS directly in clang (#617)
- Make GenericSchemaDocument constructor explicit (#674)
- Optimize FindMember when use std::string (#690)
v1.0.2
Added
- Add Value::XXXMember(...) overloads for std::string (#335)
Fixed
- 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)
Changed
v1.0.1
v1.0.0
This is the final v1.0.0 release of RapidJSON.
After the v1.0-beta, a lot of efforts have been put to make RapidJSON 100% line-of-code covered by the unit tests.
Major changes since v1.0-beta
- Fixed a bug in trimming long number sequence (4824f12)
- Fix double quote in unicode escape (#288)
- Fix negative zero roundtrip (double only) (#289)
- Remove an invalid Document::ParseInsitu() API (e7f1c6d)
- Remove dead branches and add more unit tests for coverage
- Standardize behavior of
memcpy()
andmalloc()
(0c5c153, #305, 0e8bbe5) - Add version macros (#311)
v1.0 Beta
This is the first pre-release of RapidJSON at GitHub.
There have been a lot of improvements and bug fixes since v0.11. Some notable ones are listed as follows.
Features
- RFC 7159 (#101)
- Optional Iterative Parser (#76)
- Deep-copy values (#20)
- Error code and message (#27)
- ASCII Encoding (#70)
kParseStopWhenDoneFlag
(#83)kParseFullPrecisionFlag
(881c91d)- Add
Key()
to handler concept (#134) - C++11 compatibility and support (#128)
Optimizations
- Optimized number-to-string and vice versa conversions (#137, #80)
- Short-String Optimization (#131)
- Local stream optimization by traits (#32)
Build
- Migrating from Premake to CMAKE (#192)
- Remove other JSON libraries for performance comparison (#180)
- Travis & Appveyor Continuous Integration, with Valgrind verification (#24, #242)
- Resolve all warning reports
Documentation
- Redo all documentation
- English, Simplified Chinese
- Doxygen with Markdown
- Gitbook
Notes
Note that the copyright owner is changed but the project is still distributed under MIT license.
Please help testing this release in your development platform. The API shall not be changed in v1.0. Only bug fixes are permitted.
It is planned to release the official v1.0 at 15 April 2015.