mirror of
https://github.com/logos-messaging/libchat.git
synced 2026-06-27 19:49:31 +00:00
Design and review discussions have surfaced diverging views of how the chat stack is layered. Add a normative reference for the target architecture so those discussions share one picture. - Defines the layers — Conversation Core, Client (Generic + Platform), Application — with a responsibilities table and call/event flow. - States the governing principles: caller-driven sync core, sync results vs async observations, a data-not-behavioural boundary, and easy-edge/powerful-core. - Documents runtime independence (Generic Client optional; runtime choice at the Platform Client) and the Services/ConversationTypes axis. - Aligns terminology with the chat specifications.
libchat
Supporting library for Logos-chat
Example app
bin/chat-cli is an end-to-end encrypted CLI chat app
built on this library. By default it uses logos-delivery
(Waku-based) as the transport so two users anywhere in the world can chat by
sharing an intro bundle. A local file transport is also bundled in; pick at
runtime with --transport <logos-delivery|file>.
# 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 (defaults to --transport logos-delivery)
./target/release/chat-cli --name alice
See bin/chat-cli/README.md for full build,
run, and test instructions.
Description
Languages
Rust
99.5%
Nix
0.5%