1[package] 2name = "serde_json" 3version = "1.0.94" # remember to update html_root_url 4authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"] 5categories = ["encoding", "parser-implementations", "no-std"] 6description = "A JSON serialization file format" 7documentation = "https://docs.rs/serde_json" 8edition = "2018" 9keywords = ["json", "serde", "serialization"] 10license = "MIT OR Apache-2.0" 11repository = "https://github.com/serde-rs/json" 12rust-version = "1.36" 13 14[dependencies] 15serde = { version = "1.0.100", default-features = false } 16indexmap = { version = "1.5.2", features = ["std"], optional = true } 17itoa = "1.0" 18ryu = "1.0" 19 20[dev-dependencies] 21automod = "1.0" 22indoc = "2.0" 23ref-cast = "1.0" 24rustversion = "1.0" 25serde = { version = "1.0.100", features = ["derive"] } 26serde_bytes = "0.11" 27serde_derive = "1.0" 28serde_stacker = "0.1" 29trybuild = { version = "1.0.49", features = ["diff"] } 30 31[workspace] 32members = ["tests/crate"] 33 34[lib] 35doc-scrape-examples = false 36 37[package.metadata.docs.rs] 38features = ["raw_value", "unbounded_depth"] 39targets = ["x86_64-unknown-linux-gnu"] 40rustdoc-args = ["--cfg", "docsrs"] 41 42[package.metadata.playground] 43features = ["raw_value"] 44 45 46### FEATURES ################################################################# 47 48[features] 49default = ["std"] 50 51std = ["serde/std"] 52 53# Provide integration for heap-allocated collections without depending on the 54# rest of the Rust standard library. 55# NOTE: Disabling both `std` *and* `alloc` features is not supported yet. 56alloc = ["serde/alloc"] 57 58# Make serde_json::Map use a representation which maintains insertion order. 59# This allows data to be read into a Value and written back to a JSON string 60# while preserving the order of map keys in the input. 61preserve_order = ["indexmap", "std"] 62 63# Use sufficient precision when parsing fixed precision floats from JSON to 64# ensure that they maintain accuracy when round-tripped through JSON. This comes 65# at an approximately 2x performance cost for parsing floats compared to the 66# default best-effort precision. 67# 68# Unlike arbitrary_precision, this feature makes f64 -> JSON -> f64 produce 69# output identical to the input. 70float_roundtrip = [] 71 72# Use an arbitrary precision number representation for serde_json::Number. This 73# allows JSON numbers of arbitrary size/precision to be read into a Number and 74# written back to a JSON string without loss of precision. 75# 76# Unlike float_roundtrip, this feature makes JSON -> serde_json::Number -> JSON 77# produce output identical to the input. 78arbitrary_precision = [] 79 80# Provide a RawValue type that can hold unprocessed JSON during deserialization. 81raw_value = [] 82 83# Provide a method disable_recursion_limit to parse arbitrarily deep JSON 84# structures without any consideration for overflowing the stack. When using 85# this feature, you will want to provide some other way to protect against stack 86# overflows, such as by wrapping your Deserializer in the dynamically growing 87# stack adapter provided by the serde_stacker crate. Additionally you will need 88# to be careful around other recursive operations on the parsed result which may 89# overflow the stack after deserialization has completed, including, but not 90# limited to, Display and Debug and Drop impls. 91unbounded_depth = [] 92