chore: rename package

This commit is contained in:
kaichaosun 2026-06-11 15:47:15 +08:00
parent b2fd4f6ac1
commit 1b20fc45a6
No known key found for this signature in database
GPG Key ID: 223E0F992F4F03BF
5 changed files with 36 additions and 35 deletions

38
Cargo.lock generated
View File

@ -188,6 +188,25 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
[[package]]
name = "chat-store"
version = "0.1.0"
dependencies = [
"anyhow",
"axum",
"base64",
"clap",
"ed25519-dalek",
"hex",
"rusqlite",
"serde",
"serde_json",
"thiserror",
"tokio",
"tracing",
"tracing-subscriber",
]
[[package]]
name = "clap"
version = "4.6.1"
@ -555,25 +574,6 @@ version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
name = "keypackage-registry"
version = "0.1.0"
dependencies = [
"anyhow",
"axum",
"base64",
"clap",
"ed25519-dalek",
"hex",
"rusqlite",
"serde",
"serde_json",
"thiserror",
"tokio",
"tracing",
"tracing-subscriber",
]
[[package]]
name = "lazy_static"
version = "1.5.0"

View File

@ -3,12 +3,12 @@
[workspace]
[package]
name = "keypackage-registry"
name = "chat-store"
version = "0.1.0"
edition = "2024"
[[bin]]
name = "keypackage-registry"
name = "chat-store"
path = "src/main.rs"
[dependencies]

View File

@ -20,11 +20,11 @@ COPY Cargo.toml Cargo.lock ./
RUN mkdir src \
&& echo "fn main() {}" > src/main.rs \
&& cargo build --release --locked \
&& rm -rf src target/release/deps/keypackage_registry* target/release/keypackage-registry
&& rm -rf src target/release/deps/chat_store* target/release/chat-store
# Now build the real binary; dependency artifacts above are reused.
COPY src ./src
RUN cargo build --release --locked --bin keypackage-registry
RUN cargo build --release --locked --bin chat-store
########################################
# Runtime stage
@ -35,7 +35,7 @@ RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /app/target/release/keypackage-registry /usr/local/bin/keypackage-registry
COPY --from=builder /app/target/release/chat-store /usr/local/bin/chat-store
# Matches the default --bind 0.0.0.0:8080.
EXPOSE 8080
@ -44,5 +44,5 @@ EXPOSE 8080
VOLUME ["/data"]
ENV RUST_LOG=info
ENTRYPOINT ["keypackage-registry"]
CMD ["--bind", "0.0.0.0:8080", "--db", "/data/keypackage-registry.db"]
ENTRYPOINT ["chat-store"]
CMD ["--bind", "0.0.0.0:8080", "--db", "/data/chat-store.db"]

View File

@ -1,8 +1,9 @@
# Chat Store
Persistence for group-chat users' key packages — the **keypackage-registry**
HTTP service, extracted from [libchat](https://github.com/logos-messaging/libchat)
so it can be deployed on its own.
Persistence for group-chat users' key packages — the **chat-store** HTTP service
(formerly `keypackage-registry`), extracted from
[libchat](https://github.com/logos-messaging/libchat) so it can be deployed on
its own.
Standalone HTTP service that caches MLS KeyPackages keyed by **`device_id`**, so a
client can fetch a contact's keypackage without an out-of-band exchange.
@ -46,13 +47,13 @@ exactly one way — no delimiter, even though `key_package` is arbitrary bytes.
```bash
cargo build --release
./target/release/keypackage-registry # binds 0.0.0.0:8080, db ./keypackage-registry.db
./target/release/chat-store # binds 0.0.0.0:8080, db ./chat-store.db
```
| Flag | Default | Description |
|------|---------|-------------|
| `--bind <addr>` | `0.0.0.0:8080` | HTTP bind address |
| `--db <path>` | `keypackage-registry.db` | SQLite database path |
| `--db <path>` | `chat-store.db` | SQLite database path |
| `--max-per-identity <n>` | `100` | Bundles retained per `device_id` |
| `--retention-days <n>` | `30` | Drop bundles older than this |
| `--prune-interval-secs <n>` | `3600` | How often the prune task runs |
@ -69,7 +70,7 @@ docker build -t chat-store .
docker run --rm -p 8080:8080 -v chat-store-data:/data chat-store
```
The image runs the binary with `--bind 0.0.0.0:8080 --db /data/keypackage-registry.db`
The image runs the binary with `--bind 0.0.0.0:8080 --db /data/chat-store.db`
by default; override the `CMD` to change flags, e.g.:
```bash

View File

@ -24,14 +24,14 @@ use tracing_subscriber::EnvFilter;
use store::Store;
#[derive(Parser, Debug)]
#[command(name = "keypackage-registry", about = "Testnet KeyPackage Registry")]
#[command(name = "chat-store", about = "Testnet Chat Store (KeyPackage + account directory)")]
struct Cli {
/// Address to bind the HTTP server.
#[arg(long, default_value = "0.0.0.0:8080")]
bind: SocketAddr,
/// SQLite database path.
#[arg(long, default_value = "keypackage-registry.db")]
#[arg(long, default_value = "chat-store.db")]
db: PathBuf,
/// Maximum number of bundles retained per account_id.
@ -80,7 +80,7 @@ async fn main() -> Result<()> {
let listener = tokio::net::TcpListener::bind(cli.bind)
.await
.with_context(|| format!("failed to bind {}", cli.bind))?;
tracing::info!("keypackage-registry listening on {}", cli.bind);
tracing::info!("chat-store listening on {}", cli.bind);
axum::serve(listener, app)
.with_graceful_shutdown(shutdown_signal())
.await