Skip to content

Commit ea42fc8

Browse files
committed
Update README.md
1 parent d75467d commit ea42fc8

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

README.md

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,16 @@
55
[![TravisCI](https://travis-ci.org/taocpp/json.svg)](https://travis-ci.org/taocpp/json)
66
[![Issues](https://img.shields.io/github/issues/taocpp/json.svg)](https://github.com/taocpp/json/issues)
77

8-
The Art of C++ / JSON is a zero-dependency C++11 header-only library that provides a generic JSON value object as well as conversions from and to JSON string representation. It uses `std::vector` for arrays, `std::map` for objects, and both `int64_t` and `double` for numbers.
8+
The Art of C++ / JSON is a zero-dependency C++11 header-only library that provides a generic JSON value object as well as conversions from and to JSON string representation. It also serves as a fully functional real-world example application for the [Parsing Expression Grammar Template Library (PEGTL)](https://github.com/ColinH/PEGTL).
99

10-
This library is designed for correctness and simplicity and as a real-world example application for the [Parsing Expression Grammar Template Library (PEGTL)](https://github.com/ColinH/PEGTL) that is used for parsing.
10+
## Design
1111

12+
This library is designed for correctness and simplicity, and strives for speed through minimalism rather than complicated optimisations.
13+
14+
It uses `std::vector` for arrays, `std::map` for objects, `std::string` for strings, `bool` for Booleans, and both `int64_t` and `double` for numbers.
15+
16+
The JSON value class contains a `union` of all of these types and does *not itself* perform any heap allocations (the wrapped `std::map`, `std::vector` and `std::string` *do* perform allocations normally).
17+
1218
## Status
1319

1420
The core JSON value class is implemented and working.
@@ -17,23 +23,29 @@ The conversions from and to JSON string representation are finished and working:
1723

1824
In internal tests we achieve a 100% score in the [Native JSON Benchmark](https://github.com/miloyip/nativejson-benchmark) conformance tests.
1925

20-
In a nutshell, that what is implemented works, but the API might still change before the 1.0 release.
26+
In a nutshell, that what is implemented works, but the API might still change (and be extended) before the 1.0 release.
2127

2228
## Documentation
2329

24-
Proper documentation will be written once all interfaces are stable.
30+
The documentation will be written once all interfaces are stable...
2531

2632
Until then, here are a few short indications on how to use this library:
2733

2834
* Requires Clang or GCC with -std=c++11 (or other compiler with sufficient C++11 support).
2935
* The library is header-only, to install and use simply copy the directory `include/tao` to a convenient place and include the file `include/tao/json.hh`.
30-
* The generic JSON value class is in `include/tao/json/value.hh`, that's the main part of this library.
36+
* The generic JSON value class, the main part of this library, is in `include/tao/json/value.hh`.
3137
* The interface and functions of class `tao::json::value` are hopefully reasonably self-explanatory.
3238
* To parse a JSON string representation, use one of the functions in `include/tao/json/parse.hh`.
3339
* To produce a JSON string representation, use one of the appropriate functions in `include/tao/json/stream.hh`.
40+
* Operators to compare JSON value objects are provided, as are equality operators between JSON values and some other types.
3441

3542
For questions and suggestions please contact the authors at **jsonl(at)colin-hirsch.net**.
3643

44+
#### Thank You
45+
46+
* Niels Lohmann and his [JSON library](https://github.com/nlohmann/json) for the inspiration.
47+
* Milo Yip and his [Native JSON Benchmark](https://github.com/miloyip/nativejson-benchmark) for a reference to measure progress against.
48+
3749
## License
3850

3951
<a href="http://www.opensource.org/"><img height="100" align="right" src="http://wiki.opensource.org/bin/download/OSI+Operations/Marketing+%26+Promotional+Collateral/OSI_certified_logo_vector.svg"></a>

0 commit comments

Comments
 (0)