7 Commits

Author SHA1 Message Date
osmaczko
0a6e833b53
feat: implement Client crate and C FFI bindings
Implement a `client` crate that wraps the `libchat` context behind a
simple `ChatClient<D>` API. The delivery strategy is pluggable via a
`DeliveryService` trait, with two implementations provided:

- `InProcessDelivery` — shared `MessageBus` for single-process tests
- `CDelivery` — C function-pointer callback for the FFI layer

Add a `client-ffi` crate that exposes the client as a C API via
`safer-ffi`. A `generate-headers` binary produces the companion C
header.

Include two runnable examples:
- `examples/in-process` — Alice/Bob exchange using in-process delivery
- `examples/c-ffi` — same exchange written entirely in C; smoketested
under valgrind (to catch memory leaks) in CI

iterates: #71
2026-03-30 21:24:29 +02:00
Aleksey
c5f9994c9e
feat: add ci checks
* base ci add

* Remove .DS_Store files

* Add .DS_Store to gitignore

* remove master & develop, kept only stable in matrix

Restrict CI workflow to only the main branch for pushes and pull requests.

* Update .github/workflows/ci.yml

Co-authored-by: osmaczko <33099791+osmaczko@users.noreply.github.com>

* Update .github/workflows/ci.yml

Co-authored-by: osmaczko <33099791+osmaczko@users.noreply.github.com>

---------

Co-authored-by: osmaczko <33099791+osmaczko@users.noreply.github.com>
2026-02-10 14:40:01 +01:00
Jazz Turner-Baggs
1cb1ffc996
Nim FFI Wrapper for LibChat (#25)
* remove unneeded code

* Update comment style

* Update Nim side to support safer_ffi

* Fix Introduction from impl

* Updates
2026-01-28 10:38:08 -08:00
kaichao
8e2b5211b4
Managed data storage for Ratchet state (#21)
* feat: managed persist storage with sqlite

* chore: sync skipped keys

* chore: refactor

* chore: refactor

* chore: clean code

* chore: export skipped keys from state.

* chore: renaming data to record

* chore: remove types from stroage mod file
2026-01-28 14:54:16 +08:00
kaichao
58392841cd
Double ratchet FFI usage in Nim (#14)
* feat: ffi

* feat: ffi interface and header generation

* feat: nim ffi example

* chore: doc

* fix: encrypt state clean

* chore: zeroize when drop
2026-01-21 17:24:20 +08:00
kaichao
fc76453f4c
Implement double ratchet (#9) 2026-01-15 08:47:02 +08:00
Jazz Turner-Baggs
04d6f8a84b
Add Project scaffolding (#1) 2025-12-22 09:40:46 -08:00