Cargo Features

[dependencies]
simd-json = { version = "0.13.8", default-features = false, features = ["arraybackend", "value-no-dup-keys", "128bit", "known-key", "swar-number-parsing", "approx-number-parsing", "serde_impl", "alloc", "no-inline", "bench-serde", "hints", "perf", "docsrs", "runtime-detection", "bench-all", "bench-apache_builds", "bench-event_stacktrace_10kb", "bench-canada", "bench-log", "bench-twitter", "big-int-as-float", "beef", "jemallocator"] }
default = runtime-detection, serde_impl, swar-number-parsing

These default features are set whenever simd-json is added without default-features = false somewhere in the dependency tree.

arraybackend

Enables arraybackend of halfbrown

value-no-dup-keys

Forces the owned::Value and borrowed::Value to deduplicate duplicated keys by letting consecutive keys overwrite previous ones. This comes at a performance cost. By default duplicate keys will not be overwritten and feeding json objects with duplicated keys to either of the Values will result in undefined behavior.

128bit

Support for 128 bit integers

Enables 128bit of value-trait

known-key = ahash, once_cell

used for enabeling known keys in favour of a slower hasher that is not protected against hash collision attacks

Affects value::ObjectHasher

swar-number-parsing default

use 8 number at once parsing strategy

approx-number-parsing

Uses a approximate float parsing algorithm that is faster but does not guarantee round trips for the edges

serde_impl default = serde, serde_json

serde compatibility

Enables serde of halfbrown

Affects simd-json::serde

alloc = alloc_counter

for testing allocations

no-inline

don't inline code - used for debugging

bench-serde = serde_json

also bench serde in the benchmarks

hints

use branch hints - requires nightly :(
requires nightly

perf = colored, getopts, perfcnt, serde_json

for perf testing, used by the example

docsrs

for documentation

runtime-detection default

use runtime detection of the CPU features where possible instead of enforcing an instruction set

Enables runtime-detection of value-trait

bench-all = bench-apache_builds, bench-canada, bench-citm_catalog, bench-event_stacktrace_10kb, bench-github_events, bench-log, bench-twitter

bench fetures

bench-apache_builds bench-all?
bench-event_stacktrace_10kb bench-all?
bench-github_events bench-canada bench-all?
bench-citm_catalog bench-log bench-all?
bench-twitter bench-all?
big-int-as-float

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features.

beef implicit feature

Enables beef

beef:

More compact Cow

once_cell known-key?

Enables once_cell

ahash known key

ahash known-key?
serde serde_impl

Enables serde

serde compatibilty

serde_json bench-serde? perf? serde_impl
alloc_counter alloc?

Enables alloc_counter

perf testing

colored perf?
getopts perf?
jemallocator implicit feature

Enables jemallocator

jemallocator:

A Rust allocator backed by jemalloc

perfcnt perf?