1
0
mirror of https://github.com/matrix-org/matrix-authentication-service.git synced 2026-01-03 17:02:28 +03:00
Files
authentication-service/Cargo.toml
2024-07-05 10:07:40 +02:00

277 lines
6.9 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 = "7.0.6"
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"]
# Bytes
[workspace.dependencies.bytes]
version = "1.6.0"
# 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.3"
# 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.2"
# JSON Schema generation
[workspace.dependencies.schemars]
version = "0.8.21"
features = ["url", "chrono", "preserve_order"]
# Sentry error tracking
[workspace.dependencies.sentry]
version = "0.34.0"
default-features = false
features = ["backtrace", "contexts", "panic", "tower"]
# Sentry tower layer
[workspace.dependencies.sentry-tower]
version = "0.34.0"
features = ["http"]
# Sentry tracing integration
[workspace.dependencies.sentry-tracing]
version = "0.34.0"
# 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.120"
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"
[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