chat-store/Cargo.toml
2026-07-22 13:11:54 +08:00

48 lines
1.7 KiB
TOML

# Standalone single-crate workspace: keeps this repo independent of any parent
# Cargo workspace it might be checked out beneath.
[workspace]
[package]
name = "chat-store"
version = "0.1.0"
edition = "2024"
[[bin]]
name = "chat-store"
path = "src/main.rs"
[dependencies]
anyhow = "1.0"
axum = "0.7"
base64 = "0.22"
# Wire schema for the delivery submissions, shared with libchat.
# TODO: switch to `{ git = "https://github.com/logos-messaging/chat_proto", rev = "..." }`
# once the store submission schemas land on chat_proto's main. Path dep only so
# this builds ahead of that merge.
chat-proto = { path = "../chat_proto/gen/rust" }
clap = { version = "4", features = ["derive"] }
ed25519-dalek = "2.2.0"
hex = "0.4"
# Embedded logos-delivery node for subscription-based ingestion. Path dep on
# the sibling libchat checkout; links the native liblogosdelivery (enter the
# libchat dev shell or set LOGOS_DELIVERY_LIB_DIR to build a runnable binary).
logos-delivery = { path = "../libchat/extensions/logos-delivery-rust" }
prost = "0.14"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# SQLite via sqlx with a bundled libsqlite3 — no sqlcipher/OpenSSL, no system libs.
sqlx = { version = "0.8", default-features = false, features = [
"runtime-tokio",
"sqlite",
"macros",
"migrate",
] }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "signal", "sync", "time"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
[dev-dependencies]
# `smoke_test` example only talks to a localhost HTTP server, so no TLS backend
# (and no OpenSSL) is pulled in.
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json"] }