From df509eadc9aecef605194b7c97c5fb02bf928b79 Mon Sep 17 00:00:00 2001 From: Vika Date: Wed, 1 Jan 2025 05:32:37 +0300 Subject: Use workspace dependencies to simplify dependency management This will reduce risks of dependency duplication in the tree when updating or adding new dependencies, as one could simply inherit from the workspace. `cargo-autoinherit` was considered, but it migrates EVERY single dependency, whereas I'd prefer that only reused dependencies are migrated. Additionally, it doesn't merge features automatically, requiring manual intervention anyway. Change-Id: If0dd19012c723ab71f599119d108e805b2d5e463 --- Cargo.toml | 186 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 93 insertions(+), 93 deletions(-) (limited to 'Cargo.toml') diff --git a/Cargo.toml b/Cargo.toml index 682e81f..18081ac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,6 +54,49 @@ required-features = ["sqlparser"] [workspace] members = [".", "./util", "./templates", "./indieauth", "./templates-neo", "./tower-watchdog"] default-members = [".", "./util", "./templates", "./indieauth"] + +[workspace.dependencies] +axum = "0.7.9" +axum-core = "0.4.5" +chrono = { version = "0.4.39", features = ["serde"] } +clap = "4.5.23" +data-encoding = "2.6.0" +ellipse = "0.2.0" +faker_rand = "0.1.1" +futures = "0.3.31" +futures-util = "0.3.31" +html = "0.6.3" +http = "1.2" +include_dir = "0.7.4" +libflate = "2.1.0" +markup = "0.15.0" +microformats = "0.14.0" +rand = "0.8.5" +serde = { version = "1.0.217", features = ["derive"] } +serde_json = "1.0.134" +serde_urlencoded = "0.7.1" +serde_variant = "0.1.3" +sha2 = "0.10.8" +sqlx = { version = "0.8.1", features = ["json"] } +thiserror = "2.0.9" +time = "0.3.37" +tokio = "1.42.0" +tokio-stream = "0.1.17" +tokio-util = "0.7.13" +tower = "0.5.2" +tower-http = "0.6.2" +tower-layer = "0.3.3" +tower-service = "0.3.3" +tower-test = "0.4.0" +tracing = "0.1.41" +tracing-log = "0.2.0" +tracing-subscriber = "0.3.19" +tracing-test = "0.2.5" +tracing-tree = "0.4.0" +url = { version = "2.5.4", features = ["serde"] } +uuid = "1.11.0" +walkdir = "2.5.0" + [dependencies.kittybox-util] version = "0.3.0" path = "./util" @@ -69,102 +112,59 @@ features = ["axum"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dev-dependencies] -tempfile = "^3.14.0" # Temporary file managment -wiremock = "^0.6.2" -faker_rand = "^0.1.1" # Seedable, rand-compatible generators of fake data -rand = "^0.8.5" # Utilities for random number generation -tracing-test = "^0.2.5" +faker_rand = { workspace = true } +rand = { workspace = true } +tempfile = "3.14.0" +tracing-test = { workspace = true } +wiremock = "0.6.2" [dependencies] -argon2 = { version = "^0.5.3", features = ["std"] } -async-trait = "^0.1.83" # Type erasure for async trait methods -bytes = "^1.9.0" -data-encoding = "^2.6.0" # Efficient and customizable data-encoding functions like base64, base32, and hex -either = "^1.13.0" # A general purpose sum type with two cases -futures = "^0.3.31" # An implementation of futures and streams -futures-util = "^0.3.31" # Common utilities and extension traits for the futures-rs library -hex = "^0.4.3" -lazy_static = "^1.5.0" # A macro for declaring lazily evaluated statics in Rust -listenfd = "^1.0.1" # A simple library to work with listenfds passed from the outside (systemd/catflap socket activation) -markdown = "^1.0.0-alpha.21" # Native Rust library for parsing Markdown and (outputting HTML) -newbase60 = "^0.1.4" # A library that implements Tantek Çelik's New Base 60 -rand = "^0.8.5" # Random number generators. -serde_json = "^1.0.134" # A JSON serialization file format -serde_urlencoded = "^0.7.1" # `x-www-form-urlencoded` meets Serde -serde_variant = "^0.1.3" # Retrieve serde provided variant names for enum objects -relative-path = "^1.9.3" # Portable relative paths for Rust -sha2 = "^0.10.8" # SHA-2 series of algorithms for Rust -uuid = { version = "^1.11.0", features = [ "v4" ] } -tracing = { version = "0.1.41", features = [] } -tracing-tree = "0.4.0" -tracing-log = "0.2.0" -tracing-subscriber = { version = "0.3.19", features = ["env-filter", "json"] } -tower-http = { version = "0.6.2", features = ["trace", "cors", "catch-panic", "sensitive-headers"] } -tower = { version = "0.5.2", features = ["tracing"] } -webauthn = { version = "0.5.0", package = "webauthn-rs", features = ["danger-allow-state-serialisation"], optional = true } +anyhow = { version = "1.0.95", optional = true } +argon2 = { version = "0.5.3", features = ["std"] } +async-trait = "0.1.83" +axum = { workspace = true, features = ["multipart", "json", "form", "macros"] } +axum-extra = { version = "0.9.6", features = ["cookie", "cookie-signed", "typed-header"] } base64 = "0.22.1" +bytes = "1.9.0" +chrono = { workspace = true } +clap = { workspace = true, features = ["derive"], optional = true } +data-encoding = { workspace = true } +either = "1.13.0" +futures = { workspace = true } +futures-util = { workspace = true } +hex = "0.4.3" html5ever = "=0.27.0" -mime = "0.3.17" http-cache-reqwest = { version = "0.15.0", default-features = false, features = ["manager-moka"] } +hyper = "1.5.2" +lazy_static = "1.5.0" +listenfd = "1.0.1" +markdown = "1.0.0-alpha.21" +microformats = { workspace = true } +mime = "0.3.17" +newbase60 = "0.1.4" +prometheus = { version = "0.13.4", features = ["process"] } +rand = { workspace = true } +redis = { version = "0.27.6", features = ["aio", "tokio-comp"], optional = true } +relative-path = "1.9.3" +reqwest = { version = "0.12.11", default-features = false, features = ["gzip", "brotli", "json", "stream"] } reqwest-middleware = "0.4.0" -[dependencies.tokio] -version = "^1.42.0" -features = ["full", "tracing"] # TODO determine if my app doesn't need some features -#[dependencies.console-subscriber] -#version = "0.1.10" -[dependencies.tokio-stream] -version = "^0.1.17" -features = ["time", "net"] -[dependencies.tokio-util] -version = "^0.7.13" -features = ["io-util"] -[dependencies.anyhow] -version = "^1.0.95" -optional = true -[dependencies.axum] -version = "^0.7.9" -features = ["multipart", "json", "form", "macros"] -[dependencies.axum-extra] -version = "^0.9.6" -features = ["cookie", "cookie-signed", "typed-header"] -[dependencies.chrono] # Date and time library for Rust -version = "^0.4.39" -features = ["serde"] -[dependencies.redis] -version = "^0.27.6" -optional = true -features = ["aio", "tokio-comp"] -[dependencies.prometheus] # Prometheus instrumentation library for Rust applications -version = "^0.13.4" -features = ["process"] -[dependencies.serde] # A generic serialization/deserialization framework -version = "^1.0.217" -features = ["derive"] -[dependencies.url] # URL library for Rust, based on the WHATWG URL Standard -version = "^2.5.4" -features = ["serde"] -[dependencies.hyper] -version = "^1.5.2" -features = [] -[dependencies.reqwest] -version = "^0.12.11" -default-features = false -features = ["gzip", "brotli", "json", "stream"] -[dependencies.microformats] -version = "0.14.0" -#git = "https://gitlab.com/maxburon/microformats-parser" - -[dependencies.clap] -version = "4.5.23" -features = ["derive"] -optional = true -[dependencies.thiserror] -version = "2.0.9" -[dependencies.sqlx] -version = "^0.8.1" -features = ["uuid", "chrono", "json", "postgres", "runtime-tokio"] -optional = true -[dependencies.sqlparser] -version = "0.53.0" -features = ["serde", "serde_json"] -optional = true +serde = { workspace = true } +serde_json = { workspace = true } +serde_urlencoded = { workspace = true } +serde_variant = { workspace = true } +sha2 = { workspace = true } +sqlparser = { version = "0.53.0", features = ["serde", "serde_json"], optional = true } +sqlx = { workspace = true, features = ["uuid", "chrono", "postgres", "runtime-tokio"], optional = true } +thiserror = { workspace = true } +tokio = { workspace = true, features = ["full", "tracing"] } +tokio-stream = { workspace = true, features = ["time", "net"] } +tokio-util = { workspace = true, features = ["io-util"] } +tower = { workspace = true, features = ["tracing"] } +tower-http = { workspace = true, features = ["trace", "cors", "catch-panic", "sensitive-headers"] } +tracing = { workspace = true, features = [] } +tracing-log = { workspace = true } +tracing-subscriber = { workspace = true, features = ["env-filter", "json"] } +tracing-tree = { workspace = true } +url = { workspace = true } +uuid = { workspace = true, features = ["v4"] } +webauthn = { version = "0.5.0", package = "webauthn-rs", features = ["danger-allow-state-serialisation"], optional = true } -- cgit 1.4.1