benejson core
Dependencies
- Usable < stdint.h>
- Optional <wchar.h>, <math.h>
- scons building environment (http://www.scons.org)
- POSIX compliant environment to build test cases
Build
Build with scons.
License
MIT/X License
Authors
David Bender (codehero@gmail.com)
Contact
David Bender (codehero@gmail.com)
Mailing List (benejson@librelist.com)
Applications
- Embedded/MMU-less systems
- Script bindings
- Dropin source integration
Design and Features
- Parse function that operates either in callback mode or element pulling mode.
- Does not eagerly parse numeric or string values
- No malloc calls in the core, so by design there are no memory leaks.
- ZERO use of global variables, including malloc calls
- Inhibit DoS attacks by limiting depth and avoiding eager evaluations
- Noneager, conversion by function permits integers to be interpreted as floats
- Interpreting data values is done by extracting strings or values from the input buffer, into a buffer allocated by the user.
- The parsing library tracks the length of JSON strings, so that the user will know how much memory to allocate.
- Strings that cross fragments are reported as fragments to the user
- User may specify an array of sorted strings as keys to match against when parsing. When the library reports the key to the user, it will report the index of the key in the array. This eliminates the need to strcmp() a priori known key strings.
Usage
Please see source package or github repository.
Project Ideas
- Create library to incrementally parse CouchDB responses (especially views)
Download
Please go to the Downloads page for the latest tagged release.
You can also clone the project with Git
by running:
$ git clone git://github.com/codehero/benejson