finnhub 0.2.2

A comprehensive Rust client for the Finnhub.io financial data API with 96% endpoint coverage, flexible rate limiting, and WebSocket support
Documentation
# 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 = "finnhub"
version = "0.2.2"
authors = ["Jeffrey Brown"]
build = false
exclude = [
    ".github/",
    ".gitignore",
    ".claude/",
    "CLAUDE.md",
    "TEST_COVERAGE.md",
    "api-specs/",
    "tests/",
    "benches/",
    "run_api_tests.sh",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A comprehensive Rust client for the Finnhub.io financial data API with 96% endpoint coverage, flexible rate limiting, and WebSocket support"
homepage = "https://github.com/jbradenbrown/finnhub"
documentation = "https://docs.rs/finnhub"
readme = "README.md"
keywords = [
    "finnhub",
    "finance",
    "api",
    "stocks",
    "trading",
]
categories = [
    "api-bindings",
    "finance",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/jbradenbrown/finnhub"

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

[features]
default = []
websocket = ["tokio-tungstenite"]

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

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

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

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

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

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

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

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

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

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

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

[[example]]
name = "websocket_basic"
path = "examples/websocket_basic.rs"
required-features = ["websocket"]

[dependencies.async-trait]
version = "0.1"

[dependencies.chrono]
version = "0.4"
features = ["serde"]

[dependencies.futures]
version = "0.3"

[dependencies.reqwest]
version = "0.12"
features = [
    "json",
    "rustls-tls",
]

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

[dependencies.serde_json]
version = "1.0"

[dependencies.thiserror]
version = "1.0"

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

[dependencies.tokio-tungstenite]
version = "0.24"
features = ["rustls-tls-native-roots"]
optional = true

[dependencies.tower]
version = "0.5"
features = [
    "limit",
    "retry",
    "timeout",
]

[dependencies.tracing]
version = "0.1"

[dependencies.url]
version = "2.5"

[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]

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

[dev-dependencies.pretty_assertions]
version = "1.4"

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

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

[profile.release]
opt-level = 3
lto = true