[package] name = "iota-client" version = "1.4.0" authors = ["IOTA Stiftung"] edition = "2021" description = "The official, general-purpose IOTA client library in Rust for interaction with the IOTA network (Tangle)" documentation = "https://wiki.iota.org/iota.rs/welcome" homepage = "https://www.iota.org/" repository = "https://github.com/iotaledger/iota.rs" license = "Apache-2.0" keywords = ["iota", "tangle", "client"] categories = ["cryptography::cryptocurrencies"] [package.metadata.cargo-udeps.ignore] normal = ["async-trait"] [dependencies] bee-rest-api = { version = "0.1.7", default-features = false } bee-message = { version = "0.1.6", default-features = false, features = ["serde"] } bee-pow = { version = "0.2.0", default-features = false } bee-common = { version = "0.5.0", default-features = false } iota-crypto = { version = "0.9.1", default-features = false, features = ["std", "blake2b", "ed25519", "random", "slip10", "bip39", "bip39-en"] } url = { version = "2.2.2", default-features = false } serde = { version = "1.0.130", default-features = false, features = ["derive"] } serde_json = { version = "1.0.68", default-features = false } hex = { version = "0.4.3", default-features = false } tokio = { version = "1.25.0", default-features = false, features = ["macros", "rt-multi-thread", "time", "sync"], optional = true } thiserror = { version = "1.0.29", default-features = false } num_cpus = { version = "1.13.0", default-features = false } log = { version = "0.4.14", default-features = false } regex = { version = "1.5.5", default-features = false, features = ["std", "unicode-perl"] } zeroize = { version = "1.4.3", default-features = false } # sync ureq = { version = "2.2.0", default-features = false, features = ["json", "tls"], optional = true } # async reqwest = { version = "0.11.6", default-features = false, features = ["blocking", "json", "rustls-tls"], optional = true } futures = { version = "0.3.17", default-features = false, features = ["thread-pool"], optional = true } # MQTT rumqttc = { version = "0.10.0", default-features = false, features = ["websocket"], optional = true } # also used for storage once_cell = { version = "1.8.0", default-features = false, features = ["std"], optional = true } # storage async-trait = {version = "0.1.51", default-features = false } rusqlite = { version = "0.24.2", default-features = false, features = ["bundled"], optional = true } # wasm instant = { version = "0.1.12", default-features = false, optional = true } gloo-timers = { version = "0.2.3", default-features = false, features = ["futures"], optional = true } # single thread pow for wasm bee-ternary = { version = "0.5.2", default-features = false, optional = true } bytes = { version = "1.1.0", default-features = false, optional = true } [dev-dependencies] dotenv = { version = "0.15.0", default-features = false } ureq = { version = "2.2.0", default-features = false, features = ["tls", "json"] } [features] default = ["async"] sync = ["ureq", "tokio", "futures"] async = ["reqwest", "futures", "tokio"] mqtt = ["rumqttc", "once_cell", "futures"] storage = ["rusqlite", "once_cell"] wasm = ["reqwest", "futures", "gloo-timers", "instant", "bee-ternary", "bytes"] # Empty feature: 1.2.0 should actually have been a major breaking change since tls was made optional. # So crates that used iota.rs with the "tls" feature from 1.2.0 don't break when updating to 1.3.0, we will leave it here. tls = [] [[example]] name = "10_mqtt" required-features = ["mqtt"] [[example]] name = "storage" required-features = ["storage"]