mirror of
https://github.com/logos-messaging/chat-store.git
synced 2026-07-29 22:43:29 +00:00
chore: rename package
This commit is contained in:
parent
b2fd4f6ac1
commit
1b20fc45a6
38
Cargo.lock
generated
38
Cargo.lock
generated
@ -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"
|
||||
|
||||
@ -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]
|
||||
|
||||
10
Dockerfile
10
Dockerfile
@ -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"]
|
||||
|
||||
13
README.md
13
README.md
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user