about summary refs log tree commit diff
path: root/Cargo.toml
diff options
context:
space:
mode:
authorVika <vika@fireburn.ru>2025-01-01 05:32:37 +0300
committerVika <vika@fireburn.ru>2025-01-01 06:53:53 +0300
commitdf509eadc9aecef605194b7c97c5fb02bf928b79 (patch)
tree46c027e024db98e43585033bce505e60161be27d /Cargo.toml
parent01c4c798aeb6fe9e12af14c2a96f5e5279f49cdd (diff)
downloadkittybox-df509eadc9aecef605194b7c97c5fb02bf928b79.tar.zst
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
Diffstat (limited to 'Cargo.toml')
-rw-r--r--Cargo.toml186
1 files changed, 93 insertions, 93 deletions
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 }