refactor(workspace): decompose project into multiple crates

This commit is contained in:
rustmailer
2026-04-23 21:45:34 +08:00
parent 5b884125f7
commit 0b866c81ff
171 changed files with 2203 additions and 2042 deletions

View File

@@ -1,48 +1,20 @@
[package]
name = "bichon"
[workspace]
members = ["crates/core", "crates/server", "crates/cli", "crates/admin"]
resolver = "2"
[workspace.package]
version = "1.0.0"
edition = "2021"
[[bin]]
name = "bichon"
path = "src/main.rs"
[[bin]]
name = "bichonctl"
path = "src/bin/bichonctl.rs"
[[bin]]
name = "bichon-admin"
path = "src/bin/bichon_admin.rs"
[features]
default = []
vendored-openssl = ["openssl-sys"]
[profile.release]
strip = true
lto = true
opt-level = 3
codegen-units = 1
[dependencies]
[workspace.dependencies]
chrono = "0.4.44"
clap = { version = "4.6.1", features = ["derive", "env"] }
mimalloc = "0.1.49"
native_db = "0.8.2"
itertools = "0.14.0"
native_model = "0.4.20"
poem = { version = "3.1.12", features = ["embed", "compression", "rustls"] }
poem-derive = "3.1.12"
poem-openapi = { version = "5.1.16", features = [
"openapi-explorer",
"rapidoc",
"scalar",
"redoc",
"swagger-ui",
"email",
] }
ring = { version = "0.17.14", features = ["std"] }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
@@ -74,7 +46,6 @@ tokio-rustls = { version = "0.26.4", default-features = false, features = [
"tls12",
] }
timeago = "0.6.0"
ahash = "0.8.12"
oauth2 = { version = "5.0.0", features = ["reqwest-blocking"] }
url = { version = "2.5.8", features = ["serde"] }
sysinfo = "0.38.4"
@@ -104,19 +75,12 @@ murmur3 = "0.5.2"
autoconfig = "0.4.0"
urlencoding = "2.1.3"
dashmap = "6.1.0"
# Statically links OpenSSL by compiling from source, avoiding system library dependencies
openssl-sys = { version = "0.9.114", optional = true, features = ["vendored"] }
gethostname = "1.1.0"
itoa = "1.0.18"
html2text = "0.17.1"
bytes = "1.11.1"
dialoguer = "0.12.0"
console = "0.16.3"
toml = "0.9.8"
memmap2 = "0.9.10"
outlook-pst = { git = "https://github.com/rustmailer/outlook-pst-rs.git", branch = "main" }
compressed-rtf = "1.0.1"
codepage-strings = "1.0.2"
mail-send = "0.6.0"
rcgen = "0.14.7"
rustls-pemfile = "2.2.0"
@@ -126,8 +90,10 @@ fjall = { version = "3.1.4", features = ["lz4", "metrics", "bytes_1"] }
tantivy = { version = "0.26.0", features = ["zstd-compression"] }
tracing-log = "0.2.0"
tokio-util = "0.7.18"
[dev-dependencies]
#bincode = "1.3.3"
#secret-lib = "1.0.0"
tempfile = "3.27.0"
lettre = "0.11.21"
[profile.release]
strip = true
lto = true
opt-level = 3
codegen-units = 1