[package]
categories = ["api-bindings", "web-programming"]
description = "Types for the endpoints in the Matrix server-server API."
homepage = "https://ruma.dev/"
keywords = ["matrix", "chat", "messaging", "ruma"]
license = "MIT"
name = "ruma-federation-api"
readme = "README.md"
repository = "https://github.com/ruma/ruma"
version = "0.9.0"
edition = "2021"
rust-version = { workspace = true }

[package.metadata.docs.rs]
all-features = true

[features]
# Allow some mandatory fields in requests / responses to be missing, defaulting
# them to an empty string in deserialization.
compat-empty-string-null = []

client = ["dep:httparse", "dep:memchr"]
server = ["dep:bytes", "dep:rand"]
unstable-exhaustive-types = []
unstable-msc2448 = []
unstable-msc3618 = []
unstable-msc3723 = []
unstable-msc3843 = []
unstable-msc4125 = []
unstable-unspecified = []

[dependencies]
bytes = { workspace = true, optional = true }
http = { workspace = true }
httparse = { version = "1.9.0", optional = true }
js_int = { workspace = true, features = ["serde"] }
memchr = { version = "2.7.0", optional = true }
mime = { version = "0.3.0" }
rand = { workspace = true, optional = true }
ruma-common = { workspace = true, features = ["api"] }
ruma-events = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }

[dev-dependencies]
assert_matches2 = { workspace = true }
http = { workspace = true }

[lints]
workspace = true
