# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

[package]
name = "apache-avro"
description = "A library for working with Apache Avro in Rust"
readme = "README.md"
version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
edition.workspace = true
rust-version.workspace = true
keywords.workspace = true
categories.workspace = true
documentation.workspace = true

[features]
bzip = ["dep:bzip2"]
derive = ["dep:apache-avro-derive"]
snappy = ["dep:crc32fast", "dep:snap"]
xz = ["dep:xz2"]
zstandard = ["dep:zstd"]

[lib]
# disable benchmarks to allow passing criterion arguments to `cargo bench`
bench = false
path = "src/lib.rs"

[[bench]]
harness = false
name = "serde"

[[bench]]
harness = false
name = "serde_json"

[[bench]]
harness = false
name = "single"

[dependencies]
apache-avro-derive = { default-features = false, version = "0.17.0", path = "../avro_derive", optional = true }
bigdecimal = { default-features = false, version = "0.4.3", features = ["std", "serde"] }
bzip2 = { default-features = false, version = "0.4.4", optional = true }
crc32fast = { default-features = false, version = "1.4.0", optional = true }
digest = { default-features = false, version = "0.10.7", features = ["core-api"] }
libflate = { default-features = false, version = "2.0.0", features = ["std"] }
log = { workspace = true }
num-bigint = { default-features = false, version = "0.4.4", features = ["std", "serde"] }
regex-lite = { default-features = false, version = "0.1.5", features = ["std", "string"] }
serde = { workspace = true }
serde_json = { workspace = true }
snap = { default-features = false, version = "1.1.0", optional = true }
strum = { default-features = false, version = "0.26.2" }
strum_macros = { default-features = false, version = "0.26.2" }
thiserror = { default-features = false, version = "1.0.58" }
typed-builder = { default-features = false, version = "0.18.2" }
uuid = { default-features = false, version = "1.8.0", features = ["serde", "std"] }
xz2 = { default-features = false, version = "0.1.7", optional = true }
zstd = { default-features = false, version = "0.13.1", optional = true }


[target.'cfg(target_arch = "wasm32")'.dependencies]
quad-rand = { default-features = false, version = "0.2.1" }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
rand = { default-features = false, version = "0.8.5", features = ["default"] }

[dev-dependencies]
anyhow = { default-features = false, version = "1.0.82", features = ["std"] }
apache-avro-test-helper = { default-features = false, version = "0.17.0", path = "../avro_test_helper" }
criterion = { default-features = false, version = "0.5.1" }
hex-literal = { default-features = false, version = "0.4.1" }
md-5 = { default-features = false, version = "0.10.6" }
pretty_assertions = { default-features = false, version = "1.4.0", features = ["std"] }
serial_test = "3.0.0"
sha2 = { default-features = false, version = "0.10.8" }
paste = { default-features = false, version = "1.0.14" }
rstest = { default-features = false, version = "0.19.0" }

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
