aboutsummaryrefslogtreecommitdiff
path: root/lib/jsoncpp/doc/roadmap.dox
blob: 1ec0ab60f702bfe7112d2a03e617259ab2633b29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*! \page roadmap JsonCpp roadmap
  \section ms_64bits Adds support for 64 bits integer
    There has been many request to add support for 64 bits integer. Use case for this are:
	- time is nowdays commonly represented with a 64 bits integer
	- 64 bits integer are frequently used as primary key id in many systems
	
	Plans to add support is:
	- must be optional, a configuration option since not all platforms provides 64 bits integer types.
	- move definition of Int and UInt from forwards.h to config.h, with the required platform magic.
	- C++ defines no standard to define 64 bits integer. Rely on msvc extension, and long long type that 
	  is widely supported.
  \section ms_release Makes JsonCpp ready for release
  - Build system clean-up:
	- Fix build on Windows (shared-library build is broken)
	- Add enable/disable flag for static and shared library build
	- Enhance help
  - Platform portability check: (Notes: was ok on last check)
	- linux/gcc, 
	- solaris/cc, 
	- windows/msvc678, 
	- aix/vacpp
  - Add JsonCpp version to header as numeric for use in preprocessor test
  - Remove buggy experimental hash stuff
  \section ms_strict Adds a strict mode to reader/parser
	Strict JSON support as specific in RFC 4627 (http://www.ietf.org/rfc/rfc4627.txt?number=4627).
	- Enforce only object or array as root element
	- Disable comment support
    - Get jsonchecker failing tests to pass in strict mode
  \section ms_writer Writter control
    Provides more control to determine how specific items are serialized when JSON allow choice:
	- Optionally allow escaping of non-ASCII characters using unicode escape sequence "\\u".
	- Optionally allow escaping of "/" using "\/".
  \section ms_separation Expose json reader/writer API that do not impose using Json::Value.
	Some typical use-case involve an application specific structure to/from a JSON document.
    - Event base parser to allow unserializing a Json document directly in datastructure instead of
      using the intermediate Json::Value.
    - "Stream" based parser to serialized a Json document without using Json::Value as input.
	- Performance oriented parser/writer:
		- Provides an event based parser. Should allow pulling & skipping events for ease of use.
		- Provides a JSON document builder: fast only.
  \section ms_perfo Performance tuning
    - Provides support for static property name definition avoiding allocation 
    - Static property dictionnary can be provided to JSON reader
    - Performance scenario & benchmarking
*/