[package] name = "ruma" authors = ["Jonas Platte "] 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.0.3" edition = "2018" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] assign = "1.1.1" js_int = "0.2.0" ruma-common = { version = "0.5.0", path = "../ruma-common" } ruma-identifiers = { version = "0.19.0", path = "../ruma-identifiers", features = ["serde"] } ruma-serde = { version = "0.3.1", path = "../ruma-serde" } ruma-client = { version = "=0.5.0-alpha.2", path = "../ruma-client", optional = true } ruma-events = { version = "=0.22.0-alpha.3", path = "../ruma-events", optional = true } ruma-signatures = { version = "0.7.0", path = "../ruma-signatures", optional = true } ruma-api = { version = "=0.17.0-alpha.4", path = "../ruma-api", optional = true } ruma-appservice-api = { version = "=0.2.0-alpha.3", path = "../ruma-appservice-api", optional = true } ruma-client-api = { version = "=0.10.0-alpha.3", path = "../ruma-client-api", optional = true } ruma-federation-api = { version = "=0.1.0-alpha.2", path = "../ruma-federation-api", optional = true } ruma-identity-service-api = { version = "=0.1.0-alpha.1", path = "../ruma-identity-service-api", optional = true } ruma-push-gateway-api = { version = "=0.1.0-alpha.1", path = "../ruma-push-gateway-api", optional = true } [dev-dependencies] serde = { version = "1.0.118", features = ["derive"] } [features] api = ["ruma-api"] client = ["ruma-client"] events = ["ruma-events"] signatures = ["ruma-signatures"] # 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-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", "events", "signatures", "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", ] # 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", ] 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-identity-service-api/unstable-pre-spec", #"ruma-push-gateway-api/unstable-pre-spec", ]