Skip to content

default-writer/c-json-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

  • lightning-fast implementation of a JSON parser
  • added JSON validation
  • easy to read, learn and implement
  • c17 ready / c89 compatible

performance

  • 2.8 nanoseconds (per run)
  • 3846 bytes in a test data

badges

CodeQL

Speed comparison

Metric simdjson c-json-parser(*) c-json-parser(**) c-json-parser json-c
execution time (100K run) 00:00:00.393 00:00:00.244 00:00:00.281 00:00:01.182 00:00:04.093
execution time (1M runs) 00:00:03.959 00:00:02.446 00:00:02.804 00:00:11.838 00:00:42.702
allocation calls (100K runs) - 0 0 20,000,000 52,900,000
allocation calls (1M runs) - 0 0 200,000,000 529,000,000
total heap usage (100K runs) - 0 0 806,400,000 4,179,600,000
total heap usage (1M runs) - 0 0 8,064,000,000 41,796,000,000

(*) - 0-alloc version without string escape symbols validation (**) - 0-alloc version with string escape symbols validation

docs

screenshots

logo_c_json_parser

tools

Ninja + Clang

prerequisites

sudo apt install -y git cmake clang clang gcc g++ lld

build

./build-c-json-parser.sh

profiling

./gprof.sh

test

./test.sh

runtime / performance

./perf.sh
./perf.sh perf-c-json-parser
./perf.sh perf-c-json-parser-long
./perf.sh perf-c-json-parser-no-string-validation
./perf.sh perf-c-json-parser-no-string-validation-long

installation simdjson / json-c

./bin/install_json_c.sh
./bin/install_simdjson.sh
./build-json-c.sh
./build-simdjson.sh 

About

Simple json parser

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published