Files
letro-authentication-service/Cargo.toml
Quentin Gliech cd899abed9 Move tower-http dep to the workspace and adapt mas-axum-utils
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.
2024-07-05 10:07:40 +02:00

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