[package]
name = "artemis"
version = "0.1.0"
authors = ["Genna Wingert <wingertge@gmail.com>"]
edition = "2018"
description = "An integrated GraphQL Client that supports caching, fetching and others through extensible exchanges in Rust and with WASM."
readme = "README.md"
repository = "https://github.com/wingertge/artemis.git"
keywords = ["graphql", "web", "async", "cache", "wasm"]
categories = ["asynchronous", "wasm", "web-programming", "web-programming::http-client"]
license = "MIT OR Apache-2.0"

[[bench]]
name = "integration_bench"

[features]
default = ["observable", "default-exchanges"]
observable = ["tokio", "stable-vec", "futures"]
default-exchanges = ["reqwest"]

[dependencies]
artemis-codegen-proc-macro = { path = "../artemis-codegen-proc-macro", version = "^0.1.0-alpha.0" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
async-trait = "0.1"
parking_lot = "0.10"
bincode = "1"

futures = { version = "0.3", optional = true }
stable-vec = { version = "0.4", optional = true }

[dev-dependencies]
# artemis-test = { path = "../artemis-test" }
lazy_static = "1"
criterion = "0.3"
criterion-macro = "0.3"
rand = "0.7"
wasm-bindgen-test = "0.3"
# artemis-build = { path = "../artemis-build" }

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
tokio = { version = "0.2", features = ["full"] }
tokio-test = "0.2"

[target.'cfg(any(doc, target_arch = "wasm32"))'.dependencies]
wasm-bindgen = "0.2"
js-sys = "0.3"
wasm-bindgen-futures = "0.4"
serde-wasm-bindgen = "0.1"
web-sys = { version = "0.3", features = ["RequestInit", "Window", "Request"] }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { version = "0.2", optional = true, features = ["rt-core"] }
reqwest = { version = "0.10", optional = true, features = ["json"] }