[package]
name = "composure"
version = "0.2.0"
edition.workspace = true
rust-version.workspace = true
description = "Discord bots over HTTP Interactions, no gateway: slash commands, components, modals and JSX-like views, on Cloudflare Workers (WASM) or any server"
readme = "../../README.md"
license.workspace = true
repository.workspace = true
homepage.workspace = true
keywords = ["discord", "bot", "interactions", "serverless", "wasm"]
categories = ["api-bindings", "web-programming::http-server", "wasm", "asynchronous"]
exclude = ["spec"]
[dependencies]
bitflags = "2.13.2"
ed25519-dalek = "3.0.0"
hex = "0.4.3"
serde = { version = "1.0.229", features = ["derive"] }
serde_json = { version = "1.0.154", features = ["raw_value"] }
serde_repr = "0.1.21"
composure_macros = { workspace = true, optional = true }
reqwest = { version = "0.13.5", optional = true, features = ["blocking"] }
tracing = { version = "0.1.44", default-features = false, features = ["std"], optional = true }
[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
js-sys = { version = "0.3.106", optional = true }
wasm-bindgen = { version = "0.2.129", optional = true }
wasm-bindgen-futures = { version = "0.4.79", optional = true }
[features]
macros = ["dep:composure_macros"]
web-crypto = ["dep:js-sys", "dep:wasm-bindgen", "dep:wasm-bindgen-futures"]
rest = []
rest-commands = ["rest"]
rest-messages = ["rest"]
rest-users = ["rest"]
rest-channels = ["rest"]
rest-guilds = ["rest"]
rest-members = ["rest"]
rest-roles = ["rest"]
rest-bans = ["rest"]
rest-threads = ["rest", "rest-messages"]
rest-invites = ["rest"]
rest-emojis = ["rest"]
rest-stickers = ["rest"]
rest-scheduled-events = ["rest"]
rest-automod = ["rest"]
rest-audit-log = ["rest"]
rest-webhooks = ["rest"]
rest-monetization = ["rest"]
rest-polls = ["rest"]
rest-soundboard = ["rest"]
rest-application = ["rest"]
rest-role-connections = ["rest"]
rest-onboarding = ["rest"]
rest-stage-instances = ["rest"]
rest-lobbies = ["rest"]
tier1 = ["rest", "rest-commands", "rest-messages", "rest-users", "rest-channels", "rest-guilds", "rest-members", "rest-roles"]
full = ["tier1", "rest-bans", "rest-threads", "rest-invites", "rest-emojis", "rest-stickers", "rest-scheduled-events", "rest-automod", "rest-audit-log", "rest-webhooks", "rest-monetization", "rest-polls", "rest-soundboard", "rest-application", "rest-role-connections", "rest-onboarding", "rest-stage-instances", "rest-lobbies"]
tracing = ["dep:tracing"]
reqwest = ["rest", "dep:reqwest"]
testing = ["rest"]
[dev-dependencies]
futures = { version = "0.3.34", default-features = false, features = ["executor"] }
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]