2025-05-22 15:51:51 -04:00
2025-05-12 15:14:57 +00:00
2025-05-22 15:51:51 -04:00
2025-05-22 11:00:59 -04:00
2025-05-22 15:36:46 -04:00
2025-05-13 15:01:27 -04:00
2025-05-16 12:55:45 -04:00
2025-05-12 15:14:57 +00:00
2025-05-12 15:14:57 +00:00
2025-05-18 17:23:22 -04:00
2025-05-20 12:43:26 -04:00

Weaseljson

An rfc8259-compliant streaming json parser

Features

  • SAX-style api
  • No memory allocations during parsing
  • O(1) stack memory usage
  • Streaming api - no need to buffer the entire document in memory. Parsing is resumed when more data is available
  • Strings are unescaped in place before they're presented. No unicode normalization is performed
  • Robust to crashes with untrusted input

Rfc8259 conformance notes

  • There are no limits on number precision. Numbers are only validated syntactically and are presented as is
  • Only utf-8 is accepted
  • Invalid utf-8 is rejected
  • Byte order markers are rejected
  • Invalid escaped utf16 surrogate pairs are rejected
  • Documents that are too deeply nested are rejected to control memory usage
  • Duplicate keys are presented

Caveats

  • Users should be prepared to discard work done during SAX callbacks if the document is ultimately rejected
Description
No description provided
Readme Apache-2.0 4.5 MiB
Languages
C++ 85.1%
CMake 10.3%
Python 2.9%
C 1.5%
Shell 0.2%