[package]
name = "rasn"
version.workspace = true
categories = ["encoding", "no-std", "parser-implementations"]
description = "A safe no_std ASN.1 codec framework."
license.workspace = true
exclude = ["fuzzing"]
keywords = ["asn1", "der", "ber", "cer", "per"]
repository.workspace = true
edition.workspace = true

[lib]
bench = false

[workspace]
members = [".", "macros", "standards/*", "compiler", "compiler/pest"]
exclude = ["fuzzing"]

[workspace.package]
edition = "2021"
license = "MIT/Apache-2.0"
version = "0.10.5"
repository = "https://github.com/XAMPPRocky/rasn.git"

[workspace.dependencies]
pretty_assertions = "1.1"
chrono = { version = "0.4.26", default-features = false, features = ["alloc"] }
bitvec = { version = "1.0.1", default-features = false, features = ["alloc"] }

[features]
default = ["macros"]
macros = ["rasn-derive"]

[[bench]]
name = "criterion"
path = "benches/criterion.rs"
harness = false
test = true

[[bench]]
name = "iai"
path = "benches/iai.rs"
harness = false

[dependencies]
nom = { version = "7.1.3", default-features = false, features = ["alloc"] }
num-bigint = { version = "0.4.3", default-features = false }
num-traits = { version = "0.2.16", default-features = false }
snafu = { version = "0.7.5", default-features = false, features = ["backtraces"] }
bytes = { version = "1.4.0", default-features = false }
bitvec.workspace = true
rasn-derive = { version = "0.10", path = "macros", optional = true }
chrono.workspace = true
konst = { version = "0.3.5", default-features = false }
nom-bitvec = { package = "bitvec-nom2", version = "0.2.0" }
arrayvec = { version = "0.7.4", default-features = false }
either = { version = "1.9.0", default-features = false }
once_cell = { version = "1.18.0", default-features = false, features = ["race", "alloc"] }
num-integer = { version = "0.1.45", default-features = false, features = ["i128"] }

[dev-dependencies]
criterion = "0.5.1"
iai = "0.1.1"
once_cell = "1.18.0"
pretty_assertions.workspace = true
rasn-pkix = { path = "standards/pkix" }
x509-parser = "0.15.0"
