Major refactor

This commit is contained in:
2026-04-03 23:04:51 -04:00
parent e7f337c735
commit 35d07e8df1
124 changed files with 4929 additions and 2429 deletions

View File

@@ -1,32 +1,66 @@
[package]
name = "siren"
version = "0.2.10"
edition = "2021"
[workspace]
members = [
"crates/siren",
"crates/siren-core",
"crates/siren-bot",
"crates/siren-api",
]
resolver = "2"
[workspace.package]
edition = "2024"
version = "0.3.0"
rust-version = "1.94"
authors = ["Ben Sherriff <ben@bensherriff.com>"]
description = "A Discord bot for playing music"
repository = "https://github.com/bensherriff/siren"
readme = "README.md"
license = "GPL-3.0-or-later"
[dependencies]
dotenv = "0.15.0"
log = "0.4.22"
env_logger = "0.11.5"
serde = { version = "1.0.210", features = ["derive"] }
serde_json = "1.0.128"
serenity = { version = "0.12.2", default-features = false, features = ["client", "gateway", "rustls_backend", "model", "voice", "cache", "framework", "standard_framework"] }
songbird = { version = "0.4.6", features = ["builtin-queue"] }
symphonia = { version = "0.5.4", features = ["all"] }
sqlx = { version = "0.8.2", features = ["runtime-tokio", "postgres", "chrono", "uuid"] }
chrono = { version = "0.4.38", features = ["serde"] }
reqwest = { version = "0.11", default-features = false, features = ["json"] }
uuid = { version = "1.11.0", features = ["serde", "v4"] }
redis = { version = "0.27.4", features = ["tokio-comp", "connection-manager", "r2d2"] }
rand = "0.8.5"
rand_chacha = "0.3.1"
tokio = { version = "1.42.0", features = ["macros", "rt-multi-thread", "signal"] }
regex = "1.11.0"
axum = { version = "0.7.7", features = ["json"] }
axum-extra = { version = "0.9.6", features = ["typed-header"] }
lazy_static = "1.5.0"
jsonwebtoken = "9.3.0"
[workspace.dependencies]
# Internal crates
siren-core = { path = "crates/siren-core" }
siren-bot = { path = "crates/siren-bot" }
siren-api = { path = "crates/siren-api" }
# Async runtime
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
# Logging
log = "0.4"
env_logger = "0.11"
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Discord / Audio
serenity = { version = "0.12", default-features = false, features = ["client", "gateway", "rustls_backend", "model", "voice", "cache", "framework", "standard_framework"] }
#songbird = { version = "0.5", features = ["builtin-queue"] }
# Temporary until DAVE encryption release https://github.com/serenity-rs/songbird/issues/293
songbird = { git = "https://github.com/serenity-rs/songbird.git", branch = "next", features = ["builtin-queue"] }
symphonia = { version = "0.5", features = ["all"] }
# HTTP
reqwest = { version = "0.12", default-features = false, features = ["json"] }
# Database
sqlx = { version = "0.8", features = ["runtime-tokio", "postgres", "chrono", "uuid"] }
redis = { version = "1", features = ["tokio-comp", "connection-manager", "r2d2"] }
# Utilities
dotenv = "0.15"
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1", features = ["serde", "v4"] }
rand = "0.10"
rand_chacha = "0.10"
regex = "1"
lazy_static = "1"
# API
axum = { version = "0.8", features = ["json", "ws", "macros"] }
axum-extra = { version = "0.12", features = ["typed-header"] }
jsonwebtoken = { version = "10", features = ["rust_crypto"] }
tower-http = { version = "0.6", features = ["fs", "cors"] }
dashmap = "6"
futures-util = "0.3"