We removed here the Timeout layer on the HTTP client service, because it required the body to be Default, which isn't the case anymore. Not sure what to do about it.
259 lines
6.5 KiB
TOML
259 lines
6.5 KiB
TOML
[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 <quenting@element.io>"]
|
|
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"
|
|
|
|
# HTTP router
|
|
[workspace.dependencies.axum]
|
|
version = "0.7.5"
|
|
|
|
# Extra utilities for Axum
|
|
[workspace.dependencies.axum-extra]
|
|
version = "0.9.3"
|
|
features = ["cookie-private", "cookie-key-expansion", "typed-header"]
|
|
|
|
# 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.4.0"
|
|
|
|
# HTTP request/response
|
|
[workspace.dependencies.http]
|
|
version = "1.1.0"
|
|
|
|
# HTTP body trait
|
|
[workspace.dependencies.http-body]
|
|
version = "1.0.0"
|
|
|
|
# http-body utilities
|
|
[workspace.dependencies.http-body-util]
|
|
version = "0.1.2"
|
|
|
|
# HTTP client and server
|
|
[workspace.dependencies.hyper]
|
|
version = "1.4.0"
|
|
features = ["client", "http1", "http2"]
|
|
|
|
# Additional Hyper utilties
|
|
[workspace.dependencies.hyper-util]
|
|
version = "0.1.6"
|
|
features = [
|
|
"client",
|
|
"server",
|
|
"server-auto",
|
|
"service",
|
|
"http1",
|
|
"http2",
|
|
"tokio",
|
|
]
|
|
|
|
# Hyper Rustls support
|
|
[workspace.dependencies.hyper-rustls]
|
|
version = "0.27.2"
|
|
features = ["http1", "http2"]
|
|
default-features = false
|
|
|
|
# Email sending
|
|
[workspace.dependencies.lettre]
|
|
version = "0.11.7"
|
|
default-features = false
|
|
features = [
|
|
"tokio1-rustls-tls",
|
|
"hostname",
|
|
"builder",
|
|
"tracing",
|
|
"pool",
|
|
"smtp-transport",
|
|
"sendmail-transport",
|
|
]
|
|
|
|
# Templates
|
|
[workspace.dependencies.minijinja]
|
|
version = "2.0.2"
|
|
|
|
# Random values
|
|
[workspace.dependencies.rand]
|
|
version = "0.8.5"
|
|
|
|
# TLS stack
|
|
[workspace.dependencies.rustls]
|
|
version = "0.23.10"
|
|
|
|
# Use platform-specific verifier for TLS
|
|
[workspace.dependencies.rustls-platform-verifier]
|
|
version = "0.3.1"
|
|
|
|
# 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.119"
|
|
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.61"
|
|
|
|
# Async runtime
|
|
[workspace.dependencies.tokio]
|
|
version = "1.38.0"
|
|
features = ["full"]
|
|
|
|
# Tower services
|
|
[workspace.dependencies.tower]
|
|
version = "0.4.13"
|
|
features = ["util"]
|
|
|
|
# Tower HTTP layers
|
|
[workspace.dependencies.tower-http]
|
|
version = "0.5.2"
|
|
features = ["cors", "fs", "add-extension"]
|
|
|
|
# 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
|