mirror of
https://github.com/logos-messaging/libchat.git
synced 2026-08-27 08:01:09 +00:00
feat(chat-cli): wire up logos-delivery transport and switch to client API (#91)
Replace the direct use of `conversations::Context` with `client::ChatClient`, which is the intended public API for library consumers. Remove `MessageEnvelope` and the username-keyed session model. The envelope was never part of the wire protocol — sender identity was only tracked in the CLI's local state. Chats are now keyed by conversation ID; add `/nickname` as the user-facing replacement for named sessions. Add a logos-delivery (Waku) transport alongside the existing file transport. The active transport is selected at compile time: set `LOGOS_DELIVERY_LIB_DIR` to link liblogosdelivery, otherwise the file transport is used. Add logos-delivery as a Nix flake input and expose `.#logos-delivery` so the library can be built with `nix build` and referenced by `LOGOS_DELIVERY_LIB_DIR`. CI: rename `c-ffi-smoketest` to `smoketest`; add logos-delivery build step and a `--smoketest` invocation of chat-cli to verify startup.
This commit is contained in:
@@ -1,2 +1,21 @@
|
||||
# libchat
|
||||
Supporting library for Logos-chat
|
||||
|
||||
## Example app
|
||||
|
||||
[`bin/chat-cli`](bin/chat-cli/) is an end-to-end encrypted CLI chat app
|
||||
built on this library. It uses [logos-delivery](https://github.com/logos-messaging/logos-delivery)
|
||||
(Waku-based) as the transport so two users anywhere in the world can chat by
|
||||
sharing an intro bundle.
|
||||
|
||||
```sh
|
||||
# Build logos-delivery with Nix
|
||||
nix build .#logos-delivery
|
||||
# Build chat-cli with Cargo
|
||||
LOGOS_DELIVERY_LIB_DIR=./result/lib cargo build --release -p chat-cli
|
||||
# Run binary
|
||||
./target/release/chat-cli --name alice
|
||||
```
|
||||
|
||||
See [`bin/chat-cli/README.md`](bin/chat-cli/README.md) for full build,
|
||||
run, and test instructions.
|
||||
|
||||
Reference in New Issue
Block a user