features.md (rapidjson-1.0.2) | : | features.md (rapidjson-1.1.0) | ||
---|---|---|---|---|
skipping to change at line 23 | skipping to change at line 23 | |||
* Only included `<cstdio>`, `<cstdlib>`, `<cstring>`, `<inttypes.h>`, `<new>`, `<stdint.h>`. | * Only included `<cstdio>`, `<cstdlib>`, `<cstring>`, `<inttypes.h>`, `<new>`, `<stdint.h>`. | |||
* Without C++ exception, RTTI | * Without C++ exception, RTTI | |||
* High performance | * High performance | |||
* Use template and inline functions to reduce function call overheads. | * Use template and inline functions to reduce function call overheads. | |||
* Internal optimized Grisu2 and floating point parsing implementations. | * Internal optimized Grisu2 and floating point parsing implementations. | |||
* Optional SSE2/SSE4.2 support. | * Optional SSE2/SSE4.2 support. | |||
## Standard compliance | ## Standard compliance | |||
* RapidJSON should be fully RFC4627/ECMA-404 compliance. | * RapidJSON should be fully RFC4627/ECMA-404 compliance. | |||
* Support JSON Pointer (RFC6901). | ||||
* Support JSON Schema Draft v4. | ||||
* Support Unicode surrogate. | * Support Unicode surrogate. | |||
* Support null character (`"\u0000"`) | * Support null character (`"\u0000"`) | |||
* For example, `["Hello\u0000World"]` can be parsed and handled gracefully. The re is API for getting/setting lengths of string. | * For example, `["Hello\u0000World"]` can be parsed and handled gracefully. The re is API for getting/setting lengths of string. | |||
* Support optional relaxed syntax. | ||||
* Single line (`// ...`) and multiple line (`/* ... */`) comments (`kParseComme | ||||
ntsFlag`). | ||||
* Trailing commas at the end of objects and arrays (`kParseTrailingCommasFlag`) | ||||
. | ||||
* `NaN`, `Inf`, `Infinity`, `-Inf` and `-Infinity` as `double` values (`kParseN | ||||
anAndInfFlag`) | ||||
* [NPM compliant](http://github.com/miloyip/rapidjson/blob/master/doc/npm.md). | ||||
## Unicode | ## Unicode | |||
* Support UTF-8, UTF-16, UTF-32 encodings, including little endian and big endia n. | * Support UTF-8, UTF-16, UTF-32 encodings, including little endian and big endia n. | |||
* These encodings are used in input/output streams and in-memory representation . | * These encodings are used in input/output streams and in-memory representation . | |||
* Support automatic detection of encodings in input stream. | * Support automatic detection of encodings in input stream. | |||
* Support transcoding between encodings internally. | * Support transcoding between encodings internally. | |||
* For example, you can read a UTF-8 file and let RapidJSON transcode the JSON s trings into UTF-16 in the DOM. | * For example, you can read a UTF-8 file and let RapidJSON transcode the JSON s trings into UTF-16 in the DOM. | |||
* Support encoding validation internally. | * Support encoding validation internally. | |||
* For example, you can read a UTF-8 file, and let RapidJSON check whether all J SON strings are valid UTF-8 byte sequence. | * For example, you can read a UTF-8 file, and let RapidJSON check whether all J SON strings are valid UTF-8 byte sequence. | |||
skipping to change at line 69 | skipping to change at line 76 | |||
* Support comprehensive error code if parsing failed. | * Support comprehensive error code if parsing failed. | |||
* Support error message localization. | * Support error message localization. | |||
## DOM (Document) | ## DOM (Document) | |||
* RapidJSON checks range of numerical values for conversions. | * RapidJSON checks range of numerical values for conversions. | |||
* Optimization for string literal | * Optimization for string literal | |||
* Only store pointer instead of copying | * Only store pointer instead of copying | |||
* Optimization for "short" strings | * Optimization for "short" strings | |||
* Store short string in `Value` internally without additional allocation. | * Store short string in `Value` internally without additional allocation. | |||
* For UTF-8 string: maximum 11 characters in 32-bit, 15 characters in 64-bit. | * For UTF-8 string: maximum 11 characters in 32-bit, 21 characters in 64-bit (1 3 characters in x86-64). | |||
* Optionally support `std::string` (define `RAPIDJSON_HAS_STDSTRING=1`) | * Optionally support `std::string` (define `RAPIDJSON_HAS_STDSTRING=1`) | |||
## Generation | ## Generation | |||
* Support `rapidjson::PrettyWriter` for adding newlines and indentations. | * Support `rapidjson::PrettyWriter` for adding newlines and indentations. | |||
## Stream | ## Stream | |||
* Support `rapidjson::GenericStringBuffer` for storing the output JSON as string . | * Support `rapidjson::GenericStringBuffer` for storing the output JSON as string . | |||
* Support `rapidjson::FileReadStream` and `rapidjson::FileWriteStream` for input /output `FILE` object. | * Support `rapidjson::FileReadStream` and `rapidjson::FileWriteStream` for input /output `FILE` object. | |||
skipping to change at line 97 | skipping to change at line 104 | |||
* A stack-based allocator (allocate sequentially, prohibit to free individual a llocations, suitable for parsing). | * A stack-based allocator (allocate sequentially, prohibit to free individual a llocations, suitable for parsing). | |||
* User can provide a pre-allocated buffer. (Possible to parse a number of JSONs without any CRT allocation) | * User can provide a pre-allocated buffer. (Possible to parse a number of JSONs without any CRT allocation) | |||
* Support standard CRT(C-runtime) allocator. | * Support standard CRT(C-runtime) allocator. | |||
* Support custom allocators. | * Support custom allocators. | |||
## Miscellaneous | ## Miscellaneous | |||
* Some C++11 support (optional) | * Some C++11 support (optional) | |||
* Rvalue reference | * Rvalue reference | |||
* `noexcept` specifier | * `noexcept` specifier | |||
* Range-based for loop | ||||
End of changes. 4 change blocks. | ||||
1 lines changed or deleted | 11 lines changed or added |