forked from amazon-ion/ion-rust
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
133 lines (113 loc) · 3.8 KB
/
Copy pathCargo.toml
File metadata and controls
133 lines (113 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
[package]
name = "ion-rs"
authors = ["Amazon Ion Team <ion-team@amazon.com>"]
description = "Implementation of Amazon Ion"
homepage = "https://github.com/amazon-ion/ion-rust"
repository = "https://github.com/amazon-ion/ion-rust"
license = "Apache-2.0"
readme = "README.md"
keywords = ["ion", "parser", "json", "format", "serde"]
categories = ["encoding", "parser-implementations"]
exclude = [
"**/.git/**",
"**/.github/**",
"**/.travis.yml",
"**/.appveyor.yml",
"**/ion-tests/iontestdata/**",
"*.pdf"
]
version = "1.0.1"
edition = "2021"
rust-version = "1.82"
[features]
default = []
experimental-ion-hash = ["dep:digest", "dep:sha2", "experimental-reader-writer"]
# Feature for indicating particularly bleeding edge APIs or functionality in the library.
# These are not guaranteed any sort of API stability and may also have non-standard
# Ion behavior (e.g., draft Ion 1.1 capabilities).
experimental = [
"experimental-reader-writer",
"experimental-tooling-apis",
"experimental-serde",
"experimental-ion-1-1",
"experimental-chrono",
]
# Access to public conversions between Timestamp and chrono types (NaiveDateTime, DateTime<FixedOffset>).
experimental-chrono = []
# Feature for indicating explicit opt-in to Ion 1.1
experimental-ion-1-1 = ["experimental-reader-writer"]
# Access to the streaming Reader and Writer types.
# These APIs are functional and well-tested, but are not yet stable.
experimental-reader-writer = []
# Access to low-level encoding information. These APIs are not near stabilization.
experimental-tooling-apis = []
# Experimental serde API to serialize and deserialize Ion data into Rust objects using serde crate
experimental-serde = ["experimental-reader-writer", "experimental-chrono", "dep:serde_with", "dep:serde"]
bigdecimal = ["dep:bigdecimal"]
[dependencies]
base64 = "0.12"
# chrono < 0.5 brings in a deprecated version of the `time` crate via `oldtime` feature by default
# this makes it explicitly not do this as there is an advisory warning against this:
# See: https://github.com/chronotope/chrono/issues/602
compact_str = "0.8.0"
chrono = { version = "0.4", default-features = false, features = ["clock", "std", "wasmbind"] }
delegate = "0.12.0"
thiserror = "1.0"
winnow = { version = "=0.6.24", features = ["simd"] }
num-bigint = "0.4"
num-integer = "0.1.44"
num-traits = "0.2"
arrayvec = "0.7"
smallvec = { version = "1.9.0", features = ["const_generics"] }
bumpalo = { version = "3.15.3", features = ["collections", "std"] }
generic-array = "=0.14.7" # 0.14.8 introduces a deprecation warning that fails our CI/CD checks. Revisit in #1009
digest = { version = "0.9", optional = true }
ice_code = "0.1.4"
rustc-hash = "2.0.0"
phf = { version = "0.11.2", features = ["macros"] }
sha2 = { version = "0.9", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
serde_with = { version = "3.7.0", optional = true }
visibility = "0.1.1"
memchr = "2.7.4"
bigdecimal = { version = "0.4", optional = true }
[dev-dependencies]
rstest = "0.25.0"
rstest_reuse = "0.6.0"
serde_bytes = "0.11.17"
# Used by ion-tests integration
walkdir = "2.5.0"
test-generator = "0.3"
criterion = "0.5.1"
rand = "0.8.5"
tempfile = "3.10.0"
[[bench]]
name = "read_many_structs"
harness = false
[[bench]]
name = "write_many_structs"
harness = false
[[bench]]
name = "encoding_primitives"
harness = false
[[bench]]
name = "byod"
harness = false
bench = false
[[bench]]
name = "text_location_throughput"
harness = false
[profile.release]
lto = true
codegen-units = 1
[profile.profiling]
inherits = "release"
debug = true
# All dependencies (but not ion-rs itself) are optimized by default, even in debug builds.
# This makes test runs faster without affecting incremental build times.
[profile.dev.package."*"]
opt-level = 2
[[test]]
name = "conformance"
harness = false
test = false