Skip to content

This is modified version of parson that uses the Checked C extension to C. Parson is a lightweight json parsing library.

License

Notifications You must be signed in to change notification settings

plum-umd/checkedc-parson

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

This Checked C version of parson is a fork of the parson JSON parsing library by kgabis (https://github.com/kgabis/parson)). The code is converted into Checked C to provide bounds guarantees from the compiler (see https://github.com/Microsoft/checkedc for more information). DO NOT USE THIS CODE IN PRODUCTION. It is not kept up to date with the main parson project.

Usage

Requires the checkedc-clang compiler (https://github.com/Microsoft/checkedc-clang) to build. If that is not aliased to clang on your system, edit the Makefile to set CC appropriately.

On UNIX

To build only: make compile

To build and then run the unit tests: make or make test

On Windows

To build only: nmake -f Makefile.win

To build and then run the unit tests nmake -f Makefile.win or nmake -f Makefile.win test

Branches

  • baseline: The original C code that the conversion starts from. Note that this is already behind the main parson project. This branch should pass all 325 unit tests.
  • master: The converted Checked C code. This branch should pass all 325 unit tests.
  • version1-summer-2018: This was our first take at converting parson to Checked C. The master branch has the 2nd take on conversion. It introduces fewer itypes and adds length arguments in a cleaner fashion.

License

The MIT License (MIT)

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

About

This is modified version of parson that uses the Checked C extension to C. Parson is a lightweight json parsing library.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 86.9%
  • C++ 12.9%
  • Makefile 0.2%