~/talk

A Fast, Compliant JSON Pull Parser for Writing Robust Applications

Talkat CppCon 2023 · on Tuesday, 2023-10-03· at 09:00· Cottonwood 2/3, 6700 North Gaylord Rockies Boulevard· [databases]
links:none on file
slides:none on file

An open source, fully validating pull parser is presented as a middle ground between DOM and SAX: it claims competitive speed versus boost.JSON and rapidjson while avoiding simdjson’s shortcut (simdjson is faster because it skips full validation). It uses O(1) memory (no dynamic allocations while parsing), exposes a pull API that lets callers express expected schema (automatic error handling), compiles as header-only C++ (uses modern C++ features), and is already used in a production codebase.

AI-written summary · about

  1. 0:00JSON parsing challenges
  2. 1:08Traditional parsers fall short
  3. 2:10Design goals for fast parser
  4. 3:35JSON grammar basics
  5. 6:43DOM parsers limitations
  6. 10:51When DOM parsers useful
  7. 12:14SAX parsers drawbacks
  8. 17:09Range algorithms and lazy
  9. 23:24Range algorithms and JSON
  10. 25:52JSON pull parser concept
  11. 26:14Pull parser core mechanics
  12. 31:49Pull vs DOM/SAX
  13. 32:52Schema-aware parsing API
  14. 34:15Higher-level parsing abstractions
  15. 43:46Extending library with algorithms
  16. 45:10Parser design principles
  17. 46:16Open-source release and plans
  18. 46:39Q&A: Benchmarks
  19. 47:41Q&A: TypeScript schemas
  20. 48:44Q&A: Array parsing
  21. 49:27Q&A: Higher-level interfaces
  22. 49:47Q&A: Deep recursion
  23. 50:51Q&A: Schema automation
  24. 51:58Q&A: iOS compatibility
  25. 53:22Q&A: C++ standards
  26. 54:03Q&A: Streaming JSON
  27. 54:24Q&A: Clang JSON output
  28. 54:46Q&A: Duplicate keys
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.