[package]
name = "quicknode-sdk"
version = "0.1.0-alpha.25"
edition.workspace = true
license.workspace = true
description = "Core library for quicknode sdk"
repository = "https://github.com/quiknode-labs/sdk"
readme = "README.md"
keywords = ["quicknode", "blockchain", "web3", "sdk"]
categories = ["api-bindings", "web-programming"]

[lints]
workspace = true

[features]
python = ["pyo3", "pyo3-async-runtimes", "pyo3-stub-gen"]
node = ["napi", "napi-derive"]
ruby = ["magnus"]
rust = ["bon"]
extension-module = ["pyo3/extension-module"]

[dependencies]
thiserror = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
reqwest = { version = "0.13.2", default-features = false, features = ["json", "query", "rustls", "http2"] }
pyo3 = { workspace = true, optional = true, features = ["experimental-async"] }
pyo3-async-runtimes = { workspace = true, optional = true, features = ["tokio-runtime"] }
napi = { workspace = true, optional = true, features = ["async", "tokio_rt"] }
napi-derive = { workspace = true, optional = true }
pyo3-stub-gen = { workspace = true, optional = true }
magnus = { workspace = true, optional = true }
bon = { version = "3.9", optional = true }
config = "0.15"
url = "2.5.8"
secrecy = "0.8"

[[example]]
name = "admin"
required-features = ["rust"]

[[example]]
name = "admin_e2e"
required-features = ["rust"]

[[example]]
name = "streams"
required-features = ["rust"]

[[example]]
name = "streams_e2e"
required-features = ["rust"]

[[example]]
name = "webhooks_e2e"
required-features = ["rust"]

[dev-dependencies]
tokio = { version = "1.0", features = ["rt-multi-thread", "macros"] }
wiremock = "0.6"
