[workspace] default-members = ["crates/cli"] members = ["crates/*"] resolver = "2" # Updated in the CI with a `sed` command package.version = "0.9.0" package.license = "Apache-2.0" package.authors = ["Quentin Gliech "] package.edition = "2021" package.homepage = "https://matrix-org.github.io/matrix-authentication-service/" package.repository = "https://github.com/matrix-org/matrix-authentication-service/" [workspace.lints.rust] unsafe_code = "forbid" [workspace.lints.clippy] all = "deny" pedantic = "warn" str_to_string = "deny" [workspace.lints.rustdoc] broken_intra_doc_links = "deny" [workspace.dependencies] # Workspace crates mas-axum-utils = { path = "./crates/axum-utils/", version = "=0.9.0" } mas-cli = { path = "./crates/cli/", version = "=0.9.0" } mas-config = { path = "./crates/config/", version = "=0.9.0" } mas-data-model = { path = "./crates/data-model/", version = "=0.9.0" } mas-email = { path = "./crates/email/", version = "=0.9.0" } mas-graphql = { path = "./crates/graphql/", version = "=0.9.0" } mas-handlers = { path = "./crates/handlers/", version = "=0.9.0" } mas-http = { path = "./crates/http/", version = "=0.9.0" } mas-i18n = { path = "./crates/i18n/", version = "=0.9.0" } mas-i18n-scan = { path = "./crates/i18n-scan/", version = "=0.9.0" } mas-iana = { path = "./crates/iana/", version = "=0.9.0" } mas-iana-codegen = { path = "./crates/iana-codegen/", version = "=0.9.0" } mas-jose = { path = "./crates/jose/", version = "=0.9.0" } mas-keystore = { path = "./crates/keystore/", version = "=0.9.0" } mas-listener = { path = "./crates/listener/", version = "=0.9.0" } mas-matrix = { path = "./crates/matrix/", version = "=0.9.0" } mas-matrix-synapse = { path = "./crates/matrix-synapse/", version = "=0.9.0" } mas-oidc-client = { path = "./crates/oidc-client/", version = "=0.9.0" } mas-policy = { path = "./crates/policy/", version = "=0.9.0" } mas-router = { path = "./crates/router/", version = "=0.9.0" } mas-spa = { path = "./crates/spa/", version = "=0.9.0" } mas-storage = { path = "./crates/storage/", version = "=0.9.0" } mas-storage-pg = { path = "./crates/storage-pg/", version = "=0.9.0" } mas-tasks = { path = "./crates/tasks/", version = "=0.9.0" } mas-templates = { path = "./crates/templates/", version = "=0.9.0" } mas-tower = { path = "./crates/tower/", version = "=0.9.0" } oauth2-types = { path = "./crates/oauth2-types/", version = "=0.9.0" } # GraphQL server [workspace.dependencies.async-graphql] version = "6.0.11" features = ["chrono", "url", "tracing"] # Utility to write and implement async traits [workspace.dependencies.async-trait] version = "0.1.80" # High-level error handling [workspace.dependencies.anyhow] version = "1.0.86" # UTF-8 paths [workspace.dependencies.camino] version = "1.1.7" # Time utilities [workspace.dependencies.chrono] version = "0.4.38" default-features = false features = ["serde", "clock"] # CLI argument parsing [workspace.dependencies.clap] version = "4.5.8" features = ["derive"] # Configuration loading [workspace.dependencies.figment] version = "0.10.19" features = ["env", "yaml", "test"] # HTTP headers [workspace.dependencies.headers] version = "0.3.9" # HTTP request/response [workspace.dependencies.http] version = "0.2.12" # HTTP body trait [workspace.dependencies.http-body] version = "0.4.6" # HTTP client [workspace.dependencies.hyper] version = "0.14.28" features = ["client", "http1", "http2", "stream", "runtime"] # Hyper Rustls support [workspace.dependencies.hyper-rustls] version = "0.25.0" features = ["http1", "http2"] default-features = false # Email sending [workspace.dependencies.lettre] version = "=0.11.4" default-features = false features = [ "tokio1-rustls-tls", "hostname", "builder", "tracing", "pool", "smtp-transport", "sendmail-transport", ] # Templates [workspace.dependencies.minijinja] version = "2.0.1" # Random values [workspace.dependencies.rand] version = "0.8.5" # TLS stack [workspace.dependencies.rustls] version = "0.22.4" # Use platform-specific verifier for TLS [workspace.dependencies.rustls-platform-verifier] version = "0.2.0" # JSON Schema generation [workspace.dependencies.schemars] version = "0.8.21" features = ["url", "chrono", "preserve_order"] # Serialization and deserialization [workspace.dependencies.serde] version = "1.0.203" features = ["derive"] # Most of the time, if we need serde, we need derive # JSON serialization and deserialization [workspace.dependencies.serde_json] version = "1.0.118" features = ["preserve_order"] # SQL database support [workspace.dependencies.sqlx] version = "0.7.4" features = [ "runtime-tokio-rustls", "postgres", "migrate", "chrono", "json", "uuid", "ipnetwork", ] # Custom error types [workspace.dependencies.thiserror] version = "1.0.60" # Async runtime [workspace.dependencies.tokio] version = "1.37.0" features = ["full"] # Tower services [workspace.dependencies.tower] version = "0.4.13" features = ["util"] # Logging and tracing [workspace.dependencies.tracing] version = "0.1.40" [workspace.dependencies.tracing-subscriber] version = "0.3.18" # OpenTelemetry [workspace.dependencies.opentelemetry] version = "0.23.0" features = ["trace", "metrics"] [workspace.dependencies.opentelemetry-http] version = "0.12.0" features = ["hyper", "tokio"] [workspace.dependencies.opentelemetry-semantic-conventions] version = "0.15.0" [workspace.dependencies.tracing-opentelemetry] version = "0.24.0" default-features = false # URL manipulation [workspace.dependencies.url] version = "2.5.2" features = ["serde"] # ULID support [workspace.dependencies.ulid] version = "1.1.2" features = ["serde"] # A few profile opt-level tweaks to make the test suite run faster [profile.dev.package] num-bigint-dig.opt-level = 3 sqlx-macros.opt-level = 3 cranelift-codegen.opt-level = 3 regalloc2.opt-level = 3 argon2.opt-level = 3 pbkdf2.opt-level = 3 bcrypt.opt-level = 3 sha2.opt-level = 3 digest.opt-level = 3 block-buffer.opt-level = 3 generic-array.opt-level = 3