More README tinkers
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# WeaselJSON: A Streaming JSON Parser Review
|
# WeaselJSON: A Streaming JSON Parser
|
||||||
|
|
||||||
## What is WeaselJSON?
|
## What is WeaselJSON?
|
||||||
|
|
||||||
@@ -17,7 +17,6 @@ WeaselJSON is a high-performance, streaming JSON parser that uses callbacks inst
|
|||||||
- The callback API is a pain to use correctly
|
- The callback API is a pain to use correctly
|
||||||
- Requires a lot of boilerplate for simple tasks
|
- Requires a lot of boilerplate for simple tasks
|
||||||
- Most people don't actually need streaming JSON parsing
|
- Most people don't actually need streaming JSON parsing
|
||||||
- Some features only work if you control how the JSON is structured
|
|
||||||
|
|
||||||
## JSON Parser Decision Guide
|
## JSON Parser Decision Guide
|
||||||
|
|
||||||
@@ -46,7 +45,6 @@ flowchart TD
|
|||||||
- Performance is critical and your data fits in memory
|
- Performance is critical and your data fits in memory
|
||||||
- You can work with forward-only traversal (no random access or backtracking)
|
- You can work with forward-only traversal (no random access or backtracking)
|
||||||
- You need maximum speed but still want a usable API
|
- You need maximum speed but still want a usable API
|
||||||
- Your JSON structure is consistent and you control both generation and parsing
|
|
||||||
- You're okay with partial validation (only validates parts you actually access)
|
- You're okay with partial validation (only validates parts you actually access)
|
||||||
- Your JSON keys don't contain escape sequences (OnDemand matches raw keys without unescaping)
|
- Your JSON keys don't contain escape sequences (OnDemand matches raw keys without unescaping)
|
||||||
|
|
||||||
@@ -73,7 +71,7 @@ The parser represents excellent engineering work and occupies a useful niche. It
|
|||||||
- No memory allocations during parsing
|
- No memory allocations during parsing
|
||||||
- O(1) memory usage regardless of input size
|
- O(1) memory usage regardless of input size
|
||||||
- Streaming API - no need to buffer the entire document in memory. Parsing is resumed when more data is available
|
- 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 (modifies your input buffer unless WeaselJsonRaw flag is used). No unicode normalization is performed
|
- By default, strings are unescaped in place before they're presented (modifies your input buffer). No unicode normalization is performed
|
||||||
- Robust to crashes with untrusted input
|
- Robust to crashes with untrusted input
|
||||||
- SIMD optimizations for string scanning and validation
|
- SIMD optimizations for string scanning and validation
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user