osmaczko 9d9a691fe3
refactor: remove client-ffi and legacy nim bindings (#133)
closes: #77

The C consumer story lives downstream now: logos-chat-module wraps the
client crate and exposes its own C API. The in-tree client-ffi crate has
no consumers left, and the nim bindings still target the removed
Context-based C API.

- delete crates/client-ffi (including the message-exchange C example)
  and nim-bindings
- drop core/conversations' unused safer-ffi dependency plus the leftover
  C artifact crate-types: staticlib on core/conversations, cdylib on
  double-ratchets (neither crate has extern "C" exports)
- flake.nix: drop the default package (it built libclient_ffi.a plus its
  header); keep the logos-delivery package and the dev shell
- ci.yml: drop the C FFI smoketest steps (valgrind included), the rustup
  install the smoketest no longer needs, and the nix-build job that
  built the removed default package
- ADR 0001: point the FFI-compatibility driver at the downstream C API
  boundary instead of crates/client-ffi
2026-06-15 17:55:58 +02:00
2026-01-30 15:46:36 +00:00

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
Supporting library for Logos-chat
Readme
Languages
Rust 99.5%
Nix 0.5%