ruwuma/crates/ruma/Cargo.toml

164 lines
6.0 KiB
TOML

[package]
name = "ruma"
authors = ["Jonas Platte <jplatte@posteo.de>"]
categories = ["api-bindings", "web-programming"]
keywords = ["matrix", "chat", "messaging", "ruma"]
description = "Types and traits for working with the Matrix protocol."
homepage = "https://www.ruma.io/"
repository = "https://github.com/ruma/ruma"
readme = "README.md"
license = "MIT"
version = "0.4.0"
edition = "2018"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[features]
api = ["ruma-api"]
client = ["ruma-client"]
events = ["ruma-events"]
signatures = ["ruma-signatures"]
state-res = ["ruma-state-res"]
# ruma-client feature flags
client-ext-client-api = ["client", "ruma-client/client-api"]
client-hyper = ["client", "ruma-client/hyper"]
client-hyper-native-tls = ["client", "ruma-client/hyper-native-tls"]
client-isahc = ["client", "ruma-client/isahc"]
client-reqwest = ["client", "ruma-client/reqwest"]
client-reqwest-native-tls = ["client", "ruma-client/reqwest-native-tls"]
client-reqwest-native-tls-vendored = ["client", "ruma-client/reqwest-native-tls-vendored"]
client-reqwest-rustls-manual-roots = ["client", "ruma-client/reqwest-rustls-manual-roots"]
client-reqwest-rustls-webpki-roots = ["client", "ruma-client/reqwest-rustls-webpki-roots"]
client-reqwest-rustls-native-roots = ["client", "ruma-client/reqwest-rustls-native-roots"]
appservice-api-c = ["api", "events", "ruma-appservice-api/client"]
appservice-api-s = ["api", "events", "ruma-appservice-api/server"]
appservice-api = ["appservice-api-c", "appservice-api-s"]
client-api-c = ["api", "events", "ruma-client-api/client"]
client-api-s = ["api", "events", "ruma-client-api/server"]
client-api = ["client-api-c", "client-api-s"]
federation-api-c = ["api", "signatures", "ruma-federation-api/client"]
federation-api-s = ["api", "signatures", "ruma-federation-api/server"]
federation-api = ["federation-api-c", "federation-api-s"]
identity-service-api-c = ["api", "ruma-identity-service-api/client"]
identity-service-api-s = ["api", "ruma-identity-service-api/server"]
identity-service-api = ["identity-service-api-c", "identity-service-api-s"]
push-gateway-api-c = ["api", "ruma-push-gateway-api/client"]
push-gateway-api-s = ["api", "ruma-push-gateway-api/server"]
push-gateway-api = ["push-gateway-api-c", "push-gateway-api-s"]
# Convenience features
either = ["ruma-identifiers/either"]
rand = ["ruma-identifiers/rand"]
markdown = ["ruma-events/markdown"]
# Everything except compat and unstable features
full = [
"api",
"client",
"client-ext-client-api",
"events",
"signatures",
"state-res",
"appservice-api",
"client-api",
"federation-api",
"identity-service-api",
"push-gateway-api",
"either",
"rand",
"markdown",
]
# Increase compatibility with other parts of the Matrix ecosystem, at the
# expense of weird behaviour where things deviate from the specification.
#
# For example, some mandatory string fields are defaulted to an empty string if
# missing with this feature.
compat = [
"ruma-common/compat",
"ruma-events/compat",
"ruma-identifiers/compat",
"ruma-client-api/compat",
"ruma-signatures/compat",
"ruma-state-res/compat",
]
# Helper features that aren't exactly part of the spec but could be helpful
# for crate consumers
appservice-api-helper = ["ruma-appservice-api/helper"]
# unstable: by using any of these, you opt out of all semver guarantees Ruma
# otherwise provides!
unstable-exhaustive-types = [
"ruma-common/unstable-exhaustive-types",
"ruma-events/unstable-exhaustive-types",
"ruma-appservice-api/unstable-exhaustive-types",
"ruma-client-api/unstable-exhaustive-types",
"ruma-federation-api/unstable-exhaustive-types",
"ruma-identity-service-api/unstable-exhaustive-types",
"ruma-push-gateway-api/unstable-exhaustive-types",
"ruma-state-res/unstable-exhaustive-types"
]
unstable-pdu = ["ruma-events/unstable-pdu"]
unstable-pre-spec = [
"ruma-common/unstable-pre-spec",
"ruma-client-api/unstable-pre-spec",
"ruma-events/unstable-pre-spec",
"ruma-federation-api/unstable-pre-spec",
"ruma-identifiers/unstable-pre-spec",
"ruma-signatures/unstable-pre-spec",
"ruma-state-res/unstable-pre-spec"
#"ruma-identity-service-api/unstable-pre-spec",
#"ruma-push-gateway-api/unstable-pre-spec",
]
unstable-spec = [
"ruma-client-api/unstable-spec"
]
[dependencies]
assign = "1.1.1"
js_int = "0.2.0"
ruma-common = { version = "0.6.0", path = "../ruma-common" }
ruma-identifiers = { version = "0.20.0", path = "../ruma-identifiers", features = ["serde"] }
ruma-serde = { version = "0.5.0", path = "../ruma-serde" }
ruma-client = { version = "0.7.0", path = "../ruma-client", optional = true }
ruma-events = { version = "0.24.6", path = "../ruma-events", optional = true }
ruma-signatures = { version = "0.9.0", path = "../ruma-signatures", optional = true }
ruma-state-res = { version = "0.4.1", path = "../ruma-state-res", optional = true }
ruma-api = { version = "0.18.5", path = "../ruma-api", optional = true }
ruma-appservice-api = { version = "0.4.0", path = "../ruma-appservice-api", optional = true }
ruma-client-api = { version = "0.12.3", path = "../ruma-client-api", optional = true }
ruma-federation-api = { version = "0.3.1", path = "../ruma-federation-api", optional = true }
ruma-identity-service-api = { version = "0.3.0", path = "../ruma-identity-service-api", optional = true }
ruma-push-gateway-api = { version = "0.3.0", path = "../ruma-push-gateway-api", optional = true }
[dev-dependencies]
anyhow = "1.0.37"
isahc = "1.3.1"
serde = { version = "1.0.118", features = ["derive"] }
tokio = { version = "1.0.1", features = ["macros", "rt"] }
tokio-stream = { version = "0.1.1", default-features = false }
[[example]]
name = "hello_world"
required-features = ["client-api-c", "client-ext-client-api", "client-hyper-native-tls", "rand"]
[[example]]
name = "hello_isahc"
required-features = ["client-api-c", "client-ext-client-api", "client-isahc"]
[[example]]
name = "message_log"
required-features = ["client-api-c", "client-ext-client-api", "client-hyper-native-tls"]