[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.2.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", "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", ] # 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-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-state-res/unstable-pre-spec" #"ruma-identity-service-api/unstable-pre-spec", #"ruma-push-gateway-api/unstable-pre-spec", ] [dependencies] assign = "1.1.1" js_int = "0.2.0" ruma-common = { version = "0.5.4", path = "../ruma-common" } ruma-identifiers = { version = "0.19.4", path = "../ruma-identifiers", features = ["serde"] } ruma-serde = { version = "0.4.2", path = "../ruma-serde" } ruma-client = { version = "0.6.0", path = "../ruma-client", optional = true } ruma-events = { version = "0.23.3", path = "../ruma-events", optional = true } ruma-signatures = { version = "0.8.0", path = "../ruma-signatures", optional = true } ruma-state-res = { version = "0.2.0", path = "../ruma-state-res", optional = true } ruma-api = { version = "0.17.1", path = "../ruma-api", optional = true } ruma-appservice-api = { version = "0.3.0", path = "../ruma-appservice-api", optional = true } ruma-client-api = { version = "0.11.0", path = "../ruma-client-api", optional = true } ruma-federation-api = { version = "0.2.0", path = "../ruma-federation-api", optional = true } ruma-identity-service-api = { version = "0.2.0", path = "../ruma-identity-service-api", optional = true } ruma-push-gateway-api = { version = "0.2.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"] [[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"]