All Projects → datalust → Squirrel Json

datalust / Squirrel Json

Licence: other
A vectorized JSON parser for pre-validated, minified documents

Programming Languages

rust
11053 projects

Labels

Projects that are alternatives of or similar to Squirrel Json

Configr
Implements the JSON, INI, YAML and TOML parser, for R setting and writing of configuration file.
Stars: ✭ 38 (-11.63%)
Mutual labels:  json
Flatjson
A fast JSON parser (and builder)
Stars: ✭ 39 (-9.3%)
Mutual labels:  json
Json Photoshop Scripting
JSON Photoshop Scripting project: alternative way of scripting Photoshop in JavaScript, based on JSON.
Stars: ✭ 42 (-2.33%)
Mutual labels:  json
Gocd Json Config Plugin
GoCD configuration plugin which supports JSON format
Stars: ✭ 39 (-9.3%)
Mutual labels:  json
Partial.lenses.validation
Partial Lenses Validation is a JavaScript library for validating and transforming data
Stars: ✭ 39 (-9.3%)
Mutual labels:  json
Emrichen
A Template engine for YAML & JSON
Stars: ✭ 40 (-6.98%)
Mutual labels:  json
Val
golang JSON validation library.
Stars: ✭ 37 (-13.95%)
Mutual labels:  json
Mkvtoolnix Batch
Windows Batch script to automate batch processing using mkvtoolnix.
Stars: ✭ 42 (-2.33%)
Mutual labels:  json
Cfg Center
高性能配置读取服务器,为Yaml配置文件提供JSON RESTful读取接口
Stars: ✭ 39 (-9.3%)
Mutual labels:  json
Pantry
🥑 Free data storage as a service that allows devs to store JSON for multiple apps & users. A good resource when building personal projects, apps for hackathons, and prototypes alike.
Stars: ✭ 42 (-2.33%)
Mutual labels:  json
Hyperpotamus
🥋 YAML/JSON automation scripting 🤺
Stars: ✭ 38 (-11.63%)
Mutual labels:  json
Quicktype Vs
Visual Studio extension to paste JSON as C#, C++, TypeScript, and more
Stars: ✭ 39 (-9.3%)
Mutual labels:  json
Retrofit Recyclervew
An implementation of a RecyclerView using Retrofit and Glide to create a movie list
Stars: ✭ 40 (-6.98%)
Mutual labels:  json
Jazzon
Add some jazz to your JSON files
Stars: ✭ 38 (-11.63%)
Mutual labels:  json
Chinese Xinhua
📙 中华新华字典数据库。包括歇后语,成语,词语,汉字。
Stars: ✭ 8,705 (+20144.19%)
Mutual labels:  json
Jbuilder
Generate JSON objects with a Builder-style DSL, inspired by jbuilder
Stars: ✭ 37 (-13.95%)
Mutual labels:  json
Manifold
Manifold plugs into Java to supplement it with powerful features, from Type-safe Metaprogramming (direct access to GraphQL, JSON, XML, etc.), Extension Methods, Operator Overloading, and Unit Expressions to an integrated Template Engine and a Preprocessor. All fully supported in IntelliJ IDEA and Android Studio. Simply add Manifold to your project and begin taking advantage of it.
Stars: ✭ 993 (+2209.3%)
Mutual labels:  json
Jsonj
A fluent Java API for manipulating json data structures
Stars: ✭ 42 (-2.33%)
Mutual labels:  json
Goloc
A flexible tool for application localization using Google Sheets.
Stars: ✭ 42 (-2.33%)
Mutual labels:  json
Pretty Print Json
🦋 Pretty-print JSON data into HTML to indent and colorize (written in TypeScript)
Stars: ✭ 41 (-4.65%)
Mutual labels:  json

squirrel-json

🐿⚡

This is the JSON deserializer used by Seq's storage engine. You might find this useful if you're building a document database that stores documents as minified JSON maps.

squirrel-json is a vectorized parser for minified JSON documents. This library is optimized for chewing through very large numbers of normalized documents where only fragments of those documents may be needed.

squirrel-json takes inspiration from simd-json and is very fast. squirrel-json is an interesting piece of software, but is neither as useful nor as interesting as simd-json if you're looking for a state-of-the-art JSON deserializer. This library makes heavy trade-offs to perform very well for sparse deserialization of pre-validated JSON maps at the expense of being unsuitable for just about anything else.

See this blog post for some more details!

⚠️ CAREFUL

This library is designed for parsing pre-validated, minified JSON maps. It guarantees UB freedom for any input (including when that input is invalid UTF8), but only guarantees sensical results for valid JSON. See the test cases with an invalid_ prefix to get an idea of what different kinds of input do.

This library contains a lot of unsafe code and is very performance sensitive. Any changes need to be carefully considered and should be:

  • tested against the benchmarks to make sure we don't regress (at least not accidentally).
  • fuzz tested to ensure there aren't soundness holes introduced.

We take advantage of properties of the JSON document to avoid bounds checks wherever possible and use tricks like converting enum variants into interior pointers. Hot paths try to avoid branching as much as possible.

Any unchecked operations performed on the document are done using macros that use the checked variant in test/debug builds to make sure we don't ever cause UB when working through documents.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].