forked from amazon-ion/ion-rust
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
98 lines (85 loc) · 2.89 KB
/
Cargo.toml
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
[package]
name = "ion-rs"
authors = ["Amazon Ion Team <[email protected]>"]
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.0-rc.6"
edition = "2021"
# We need at least 1.65 for GATs[1] and 1.67 for `ilog`[2]
# [1] https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html
# [2] https://blog.rust-lang.org/2023/01/26/Rust-1.67.0.html#stabilized-apis
rust-version = "1.67"
[features]
default = []
experimental-ion-hash = ["digest", "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",
]
# 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", "dep:serde_with", "dep:serde"]
[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
chrono = { version = "0.4", default-features = false, features = ["clock", "std", "wasmbind"] }
delegate = "0.12.0"
thiserror = "1.0"
nom = "7.1.1"
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"] }
digest = { version = "0.9", optional = true }
ice_code = "0.1.4"
sha2 = { version = "0.9", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
serde_with = { version = "3.7.0", optional = true }
[dev-dependencies]
rstest = "0.19.0"
rstest_reuse = "0.6.0"
# 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
[profile.release]
lto = true
codegen-units = 1
[profile.profiling]
inherits = "release"
debug = true