# 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 = "titan-rust-client"
version = "0.1.9"
authors = ["ohaddahan@gmail.com"]
build = false
exclude = [
    ".github/*",
    ".env*",
    "examples/*.sh",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Rust client for Titan Exchange WebSocket API"
homepage = "https://github.com/ohaddahan/titan-rust-client"
documentation = "https://docs.rs/titan-rust-client"
readme = "README.md"
license = "MIT"
repository = "https://github.com/ohaddahan/titan-rust-client.git"

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

[features]
cli = [
    "clap",
    "dotenvy",
    "tokio-stream",
    "tracing-subscriber",
    "bs58",
    "solana",
]
default = ["solana"]
solana = [
    "solana-sdk",
    "solana-client",
    "solana-address-lookup-table-interface",
]

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

[[bin]]
name = "titan-cli"
path = "src/bin/titan_cli.rs"

[[bin]]
name = "titan-rust-client"
path = "src/main.rs"

[[test]]
name = "api"
path = "tests/api.rs"

[[test]]
name = "connection"
path = "tests/connection.rs"

[[test]]
name = "integration"
path = "tests/integration.rs"

[[test]]
name = "simple_ws"
path = "tests/simple_ws.rs"

[dependencies.anyhow]
version = "1"

[dependencies.bs58]
version = "0.5"
optional = true

[dependencies.bytes]
version = "1"

[dependencies.clap]
version = "4"
features = [
    "derive",
    "env",
]
optional = true

[dependencies.dotenvy]
version = "0.15"
optional = true

[dependencies.futures-util]
version = "0.3"

[dependencies.rmp-serde]
version = "1.3"

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

[dependencies.rustls-native-certs]
version = "0.8"

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.serde_json]
version = "1"

[dependencies.solana-address-lookup-table-interface]
version = "2.2.2"
optional = true

[dependencies.solana-client]
version = "2.3"
optional = true

[dependencies.solana-sdk]
version = "2.3"
optional = true

[dependencies.thiserror]
version = "2"

[dependencies.titan-api-codec]
version = "1.2.1"
features = [
    "messagepack",
    "zstd",
    "brotli",
    "gzip",
]

[dependencies.titan-api-types]
version = "2.0.0"
features = [
    "serde",
    "pubkey-str",
    "solana-instruction-convert-v2",
    "solana-pubkey-convert-v2",
    "solana-alt-account-convert-v2",
]

[dependencies.tokio]
version = "1"
features = ["full"]

[dependencies.tokio-rustls]
version = "0.26"

[dependencies.tokio-stream]
version = "0.1"
optional = true

[dependencies.tokio-tungstenite]
version = "0.26"
features = ["rustls-tls-native-roots"]

[dependencies.tracing]
version = "0.1"

[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true

[dev-dependencies.cargo-husky]
version = "1"
features = [
    "precommit-hook",
    "run-cargo-test",
    "run-cargo-clippy",
    "run-cargo-fmt",
    "run-for-all",
]
default-features = false

[dev-dependencies.dotenvy]
version = "0.15"

[dev-dependencies.tokio-test]
version = "0.4"

[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
