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