Cargo Features
[dependencies]
simd-json = { version = "0.14.3", 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", "ordered-float", "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
somewhere in the dependency tree.default-features = false - arraybackend
-
Enables arraybackend of halfbrown
- value-no-dup-keys
-
Forces the
owned::Value
andborrowed::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 theValue
s 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 an approximate float parsing algorithm that is faster but does not guarantee round trips for the edges
- serde_impl default = serde, serde_json
-
serde compatibility
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
- ordered-float
-
use an Eq wrapper for floats
Enables ordered-float of value-trait
- 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. These features may have been created by mistake, and this functionality may be removed in the future.
- 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?