"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "readme.md" between
rapidjson-1.0.2.tar.gz and rapidjson-1.1.0.tar.gz

About: RapidJSON is a fast JSON parser/generator for C++ with both SAX/DOM style API.

readme.md  (rapidjson-1.0.2):readme.md  (rapidjson-1.1.0)
![](doc/logo/rapidjson.png) ![](doc/logo/rapidjson.png)
![](https://img.shields.io/badge/release-v1.0.2-blue.png) ![](https://img.shields.io/badge/release-v1.1.0-blue.png)
## A fast JSON parser/generator for C++ with both SAX/DOM style API ## A fast JSON parser/generator for C++ with both SAX/DOM style API
Tencent is pleased to support the open source community by making RapidJSON avai lable. Tencent is pleased to support the open source community by making RapidJSON avai lable.
Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
* [RapidJSON GitHub](https://github.com/miloyip/rapidjson/) * [RapidJSON GitHub](https://github.com/miloyip/rapidjson/)
* RapidJSON Documentation * RapidJSON Documentation
* [English](http://miloyip.github.io/rapidjson/) * [English](http://rapidjson.org/)
* [简体中文](http://miloyip.github.io/rapidjson/zh-cn/) * [简体中文](http://rapidjson.org/zh-cn/)
* [GitBook](https://www.gitbook.com/book/miloyip/rapidjson/) with downloadable PDF/EPUB/MOBI, without API reference. * [GitBook](https://www.gitbook.com/book/miloyip/rapidjson/) with downloadable PDF/EPUB/MOBI, without API reference.
## Build status ## Build status
| [Linux][lin-link] | [Windows][win-link] | [Coveralls][cov-link] | | [Linux][lin-link] | [Windows][win-link] | [Coveralls][cov-link] |
| :---------------: | :-----------------: | :-------------------: | | :---------------: | :-----------------: | :-------------------: |
| ![lin-badge] | ![win-badge] | ![cov-badge] | | ![lin-badge] | ![win-badge] | ![cov-badge] |
[lin-badge]: https://travis-ci.org/miloyip/rapidjson.png?branch=master "Travis b uild status" [lin-badge]: https://travis-ci.org/miloyip/rapidjson.png?branch=master "Travis b uild status"
[lin-link]: https://travis-ci.org/miloyip/rapidjson "Travis build status" [lin-link]: https://travis-ci.org/miloyip/rapidjson "Travis build status"
[win-badge]: https://ci.appveyor.com/api/projects/status/u658dcuwxo14a8m9/branch /master "AppVeyor build status" [win-badge]: https://ci.appveyor.com/api/projects/status/u658dcuwxo14a8m9/branch /master "AppVeyor build status"
[win-link]: https://ci.appveyor.com/project/miloyip/rapidjson/branch/master "Ap pVeyor build status" [win-link]: https://ci.appveyor.com/project/miloyip/rapidjson/branch/master "Ap pVeyor build status"
[cov-badge]: https://coveralls.io/repos/miloyip/rapidjson/badge.png?branch=maste r [cov-badge]: https://coveralls.io/repos/miloyip/rapidjson/badge.png?branch=maste r
[cov-link]: https://coveralls.io/r/miloyip/rapidjson?branch=master [cov-link]: https://coveralls.io/r/miloyip/rapidjson?branch=master
## Introduction ## Introduction
RapidJSON is a JSON parser and generator for C++. It was inspired by [RapidXml]( http://rapidxml.sourceforge.net/). RapidJSON is a JSON parser and generator for C++. It was inspired by [RapidXml]( http://rapidxml.sourceforge.net/).
* RapidJSON is small but complete. It supports both SAX and DOM style API. The S AX parser is only a half thousand lines of code. * RapidJSON is **small** but **complete**. It supports both SAX and DOM style AP I. The SAX parser is only a half thousand lines of code.
* RapidJSON is fast. Its performance can be comparable to `strlen()`. It also op tionally supports SSE2/SSE4.2 for acceleration. * RapidJSON is **fast**. Its performance can be comparable to `strlen()`. It als o optionally supports SSE2/SSE4.2 for acceleration.
* RapidJSON is self-contained. It does not depend on external libraries such as BOOST. It even does not depend on STL. * RapidJSON is **self-contained** and **header-only**. It does not depend on ext ernal libraries such as BOOST. It even does not depend on STL.
* RapidJSON is memory friendly. Each JSON value occupies exactly 16/20 bytes for most 32/64-bit machines (excluding text string). By default it uses a fast memo ry allocator, and the parser allocates memory compactly during parsing. * RapidJSON is **memory-friendly**. Each JSON value occupies exactly 16 bytes fo r most 32/64-bit machines (excluding text string). By default it uses a fast mem ory allocator, and the parser allocates memory compactly during parsing.
* RapidJSON is Unicode friendly. It supports UTF-8, UTF-16, UTF-32 (LE & BE), an d their detection, validation and transcoding internally. For example, you can r ead a UTF-8 file and let RapidJSON transcode the JSON strings into UTF-16 in the DOM. It also supports surrogates and "\u0000" (null character). * RapidJSON is **Unicode-friendly**. It supports UTF-8, UTF-16, UTF-32 (LE & BE) , and their detection, validation and transcoding internally. For example, you c an read a UTF-8 file and let RapidJSON transcode the JSON strings into UTF-16 in the DOM. It also supports surrogates and "\u0000" (null character).
More features can be read [here](doc/features.md). More features can be read [here](doc/features.md).
JSON(JavaScript Object Notation) is a light-weight data exchange format. RapidJS ON should be in fully compliance with RFC7159/ECMA-404. More information about J SON can be obtained at JSON(JavaScript Object Notation) is a light-weight data exchange format. RapidJS ON should be in fully compliance with RFC7159/ECMA-404, with optional support of relaxed syntax. More information about JSON can be obtained at
* [Introducing JSON](http://json.org/) * [Introducing JSON](http://json.org/)
* [RFC7159: The JavaScript Object Notation (JSON) Data Interchange Format](http: //www.ietf.org/rfc/rfc7159.txt) * [RFC7159: The JavaScript Object Notation (JSON) Data Interchange Format](http: //www.ietf.org/rfc/rfc7159.txt)
* [Standard ECMA-404: The JSON Data Interchange Format](http://www.ecma-internat ional.org/publications/standards/Ecma-404.htm) * [Standard ECMA-404: The JSON Data Interchange Format](http://www.ecma-internat ional.org/publications/standards/Ecma-404.htm)
## Highlights in v1.1 (2016-8-25)
* Added [JSON Pointer](doc/pointer.md)
* Added [JSON Schema](doc/schema.md)
* Added [relaxed JSON syntax](doc/dom.md) (comment, trailing comma, NaN/Infinity
)
* Iterating array/object with [C++11 Range-based for loop](doc/tutorial.md)
* Reduce memory overhead of each `Value` from 24 bytes to 16 bytes in x86-64 arc
hitecture.
For other changes please refer to [change log](CHANGELOG.md).
## Compatibility ## Compatibility
RapidJSON is cross-platform. Some platform/compiler combinations which have been tested are shown as follows. RapidJSON is cross-platform. Some platform/compiler combinations which have been tested are shown as follows.
* Visual C++ 2008/2010/2013 on Windows (32/64-bit) * Visual C++ 2008/2010/2013 on Windows (32/64-bit)
* GNU C++ 3.8.x on Cygwin * GNU C++ 3.8.x on Cygwin
* Clang 3.4 on Mac OS X (32/64-bit) and iOS * Clang 3.4 on Mac OS X (32/64-bit) and iOS
* Clang 3.4 on Android NDK * Clang 3.4 on Android NDK
Users can build and run the unit tests on their platform/compiler. Users can build and run the unit tests on their platform/compiler.
## Installation ## Installation
RapidJSON is a header-only C++ library. Just copy the `include/rapidjson` folder to system or project's include path. RapidJSON is a header-only C++ library. Just copy the `include/rapidjson` folder to system or project's include path.
RapidJSON uses following software as its dependencies: RapidJSON uses following software as its dependencies:
* [CMake](http://www.cmake.org) as a general build tool * [CMake](https://cmake.org/) as a general build tool
* (optional)[Doxygen](http://www.doxygen.org) to build documentation * (optional)[Doxygen](http://www.doxygen.org) to build documentation
* (optional)[googletest](https://code.google.com/p/googletest/) for unit and per formance testing * (optional)[googletest](https://github.com/google/googletest) for unit and perf ormance testing
To generate user documentation and run tests please proceed with the steps below : To generate user documentation and run tests please proceed with the steps below :
1. Execute `git submodule update --init` to get the files of thirdparty submodul es (google test). 1. Execute `git submodule update --init` to get the files of thirdparty submodul es (google test).
2. Create directory called `build` in rapidjson source directory. 2. Create directory called `build` in rapidjson source directory.
3. Change to `build` directory and run `cmake ..` command to configure your buil d. Windows users can do the same with cmake-gui application. 3. Change to `build` directory and run `cmake ..` command to configure your buil d. Windows users can do the same with cmake-gui application.
4. On Windows, build the solution found in the build directory. On Linux, run `m ake` from the build directory. 4. On Windows, build the solution found in the build directory. On Linux, run `m ake` from the build directory.
On successfull build you will find compiled test and example binaries in `bin` On successfull build you will find compiled test and example binaries in `bin`
directory. The generated documentation will be available in `doc/html` directory. The generated documentation will be available in `doc/html`
skipping to change at line 129 skipping to change at line 139
return 0; return 0;
} }
~~~~~~~~~~ ~~~~~~~~~~
Note that this example did not handle potential errors. Note that this example did not handle potential errors.
The following diagram shows the process. The following diagram shows the process.
![simpledom](doc/diagram/simpledom.png) ![simpledom](doc/diagram/simpledom.png)
More [examples](https://github.com/miloyip/rapidjson/tree/master/example) are av More [examples](https://github.com/miloyip/rapidjson/tree/master/example) are av
ailable. ailable:
* DOM API
* [tutorial](https://github.com/miloyip/rapidjson/blob/master/example/tutorial/
tutorial.cpp): Basic usage of DOM API.
* SAX API
* [simplereader](https://github.com/miloyip/rapidjson/blob/master/example/simpl
ereader/simplereader.cpp): Dumps all SAX events while parsing a JSON by `Reader`
.
* [condense](https://github.com/miloyip/rapidjson/blob/master/example/condense/
condense.cpp): A command line tool to rewrite a JSON, with all whitespaces remov
ed.
* [pretty](https://github.com/miloyip/rapidjson/blob/master/example/pretty/pret
ty.cpp): A command line tool to rewrite a JSON with indents and newlines by `Pre
ttyWriter`.
* [capitalize](https://github.com/miloyip/rapidjson/blob/master/example/capital
ize/capitalize.cpp): A command line tool to capitalize strings in JSON.
* [messagereader](https://github.com/miloyip/rapidjson/blob/master/example/mess
agereader/messagereader.cpp): Parse a JSON message with SAX API.
* [serialize](https://github.com/miloyip/rapidjson/blob/master/example/serializ
e/serialize.cpp): Serialize a C++ object into JSON with SAX API.
* [jsonx](https://github.com/miloyip/rapidjson/blob/master/example/jsonx/jsonx.
cpp): Implements a `JsonxWriter` which stringify SAX events into [JSONx](https:/
/www-01.ibm.com/support/knowledgecenter/SS9H2Y_7.1.0/com.ibm.dp.doc/json_jsonx.h
tml) (a kind of XML) format. The example is a command line tool which converts i
nput JSON into JSONx format.
* Schema
* [schemavalidator](https://github.com/miloyip/rapidjson/blob/master/example/sc
hemavalidator/schemavalidator.cpp) : A command line tool to validate a JSON with
a JSON schema.
* Advanced
* [prettyauto](https://github.com/miloyip/rapidjson/blob/master/example/prettya
uto/prettyauto.cpp): A modified version of [pretty](https://github.com/miloyip/r
apidjson/blob/master/example/pretty/pretty.cpp) to automatically handle JSON wit
h any UTF encodings.
* [parsebyparts](https://github.com/miloyip/rapidjson/blob/master/example/parse
byparts/parsebyparts.cpp): Implements an `AsyncDocumentParser` which can parse J
SON in parts, using C++11 thread.
* [filterkey](https://github.com/miloyip/rapidjson/blob/master/example/filterke
y/filterkey.cpp): A command line tool to remove all values with user-specified k
ey.
* [filterkeydom](https://github.com/miloyip/rapidjson/blob/master/example/filte
rkeydom/filterkeydom.cpp): Same tool as above, but it demonstrates how to use a
generator to populate a `Document`.
 End of changes. 12 change blocks. 
11 lines changed or deleted 23 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)