# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "oracledb"
version = "0.6.0"
build = false
exclude = ["tests/"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure-Rust async Oracle Database thin-mode driver."
homepage = "https://github.com/MuhDur/rust-oracledb"
documentation = "https://docs.rs/oracledb"
readme = "README.md"
keywords = [
    "oracle",
    "database",
    "driver",
    "async",
    "tns",
]
categories = [
    "database",
    "asynchronous",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/MuhDur/rust-oracledb"

[features]
arrow = [
    "dep:arrow-array",
    "dep:arrow-buffer",
    "dep:arrow-data",
    "dep:arrow-schema",
]
cassette = ["oracledb-protocol/cassette"]
chrono = ["dep:chrono"]
default = ["derive"]
derive = ["dep:oracledb-derive"]
experimental = ["oracledb-protocol/experimental"]
rust_decimal = ["dep:rust_decimal"]
serde_json = ["dep:serde_json"]
soda = ["dep:serde_json"]
tracing = ["dep:tracing"]
uuid = ["dep:uuid"]

[lib]
name = "oracledb"
path = "src/lib.rs"

[[example]]
name = "min_connect"
path = "examples/min_connect.rs"

[[example]]
name = "perf_attribution_map"
path = "examples/perf_attribution_map.rs"

[[example]]
name = "profile_fetch_attribution"
path = "examples/profile_fetch_attribution.rs"

[[example]]
name = "profile_select1_client_cpu"
path = "examples/profile_select1_client_cpu.rs"

[[example]]
name = "smoke"
path = "examples/smoke.rs"

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

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

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

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

[dependencies.arrow-array]
version = "59.0.0"
optional = true

[dependencies.arrow-buffer]
version = "59.0.0"
optional = true

[dependencies.arrow-data]
version = "59.0.0"
optional = true

[dependencies.arrow-schema]
version = "59.0.0"
optional = true

[dependencies.asupersync]
version = "=0.3.4"
features = ["tls"]

[dependencies.chrono]
version = "0.4"
features = ["std"]
optional = true
default-features = false

[dependencies.oracledb-derive]
version = "0.6.0"
optional = true

[dependencies.oracledb-protocol]
version = "0.6.0"

[dependencies.rust_decimal]
version = "1"
features = ["std"]
optional = true
default-features = false

[dependencies.rustls]
version = "0.23.39"
features = [
    "std",
    "tls12",
    "ring",
]
default-features = false

[dependencies.rustls-pki-types]
version = "1.14.1"

[dependencies.rustls-webpki]
version = "0.103"
features = [
    "std",
    "ring",
]
default-features = false

[dependencies.serde_json]
version = "1.0"
optional = true

[dependencies.thiserror]
version = "2.0"

[dependencies.tracing]
version = "0.1"
features = [
    "std",
    "attributes",
]
optional = true
default-features = false

[dependencies.uuid]
version = "1"
optional = true
default-features = false

[dependencies.x509-cert]
version = "0.2"

[dev-dependencies.allocation-counter]
version = "0.8"

[dev-dependencies.criterion]
version = "0.5"
features = ["cargo_bench_support"]
default-features = false

[dev-dependencies.proptest]
version = "1.11"

[dev-dependencies.rustls-pemfile]
version = "2.2"

[dev-dependencies.sha2]
version = "0.10"

[dev-dependencies.tracing-subscriber]
version = "0.3"
features = [
    "std",
    "fmt",
]
default-features = false

[dev-dependencies.trybuild]
version = "1.0.116"

[lints.clippy]
dbg_macro = "deny"
todo = "deny"
unwrap_used = "deny"

[lints.rust]
unsafe_code = "forbid"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(fuzzing)"]
