[package] name = "ruma" 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.5.0" edition = "2018" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [features] api = ["ruma-common/api"] client = ["ruma-client"] events = ["ruma-common/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-common/either"] rand = ["ruma-common/rand"] markdown = ["ruma-common/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-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-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-common/unstable-pdu"] unstable-pre-spec = [ "ruma-common/unstable-pre-spec", "ruma-federation-api/unstable-pre-spec", ] unstable-msc1767 = ["ruma-common/unstable-msc1767"] unstable-msc2448 = [ "ruma-client-api/unstable-msc2448", "ruma-common/unstable-msc2448", "ruma-federation-api/unstable-msc2448" ] unstable-msc2675 = ["ruma-common/unstable-msc2675"] unstable-msc2676 = ["ruma-common/unstable-msc2676"] unstable-msc2677 = ["ruma-common/unstable-msc2677"] unstable-msc3246 = ["ruma-common/unstable-msc3246"] unstable-msc3488 = [ "ruma-client-api/unstable-msc3488", "ruma-common/unstable-msc3488", ] unstable-msc3551 = ["ruma-common/unstable-msc3551"] unstable-msc3552 = ["ruma-common/unstable-msc3552"] unstable-msc3553 = ["ruma-common/unstable-msc3553"] unstable-msc3618 = ["ruma-federation-api/unstable-msc3618"] unstable-msc3723 = ["ruma-federation-api/unstable-msc3723"] # Private feature, only used in test / benchmarking code __ci = [ "full", "unstable-pre-spec", "unstable-msc1767", "unstable-msc2448", "unstable-msc2675", "unstable-msc2676", "unstable-msc2677", "unstable-msc3246", "unstable-msc3488", "unstable-msc3551", "unstable-msc3552", "unstable-msc3553", "unstable-msc3618", "unstable-msc3723", "ruma-state-res/__ci", ] [dependencies] assign = "1.1.1" js_int = "0.2.0" ruma-common = { version = "0.8.0", path = "../ruma-common" } ruma-client = { version = "0.8.0", path = "../ruma-client", optional = true } ruma-signatures = { version = "0.10.0", path = "../ruma-signatures", optional = true } ruma-state-res = { version = "0.6.0", path = "../ruma-state-res", optional = true } ruma-appservice-api = { version = "0.5.0", path = "../ruma-appservice-api", optional = true } ruma-client-api = { version = "0.13.0", path = "../ruma-client-api", optional = true } ruma-federation-api = { version = "0.4.0", path = "../ruma-federation-api", optional = true } ruma-identity-service-api = { version = "0.4.0", path = "../ruma-identity-service-api", optional = true } ruma-push-gateway-api = { version = "0.4.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", "rand"] [[example]] name = "message_log" required-features = ["client-api-c", "client-ext-client-api", "client-hyper-native-tls"]