Jazz Turner-Baggs
6ba8bbc9ce
Make conversations generic over IdentityProvider
2026-05-02 09:50:55 -07:00
Jazz Turner-Baggs
b64abc1618
Standardize workspace imports
2026-05-02 09:49:16 -07:00
Jazz Turner-Baggs
05e4697514
Move relative path deps to workspace
2026-05-01 13:25:35 -07:00
Jazz Turner-Baggs
8988fb0d26
Sort all Cargo.toml deps for less conflicts
2026-05-01 12:24:47 -07:00
Jazz Turner-Baggs
4737ae0f06
Appease clippy
2026-04-28 09:50:23 -07:00
Jazz Turner-Baggs
94a2904c0e
Warning fixups
2026-04-28 08:30:41 -07:00
Jazz Turner-Baggs
aa380adb37
Re-use components in integration tests
2026-04-28 08:13:13 -07:00
Jazz Turner-Baggs
af3ff3c6a2
Add GroupV1
2026-04-28 08:13:12 -07:00
osmaczko
d68c0cb275
feat: implement Client crate and C FFI bindings ( #73 )
...
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-04-08 23:15:48 +02:00
kaichao
c44c52b127
feat: storage implementation and trait abstraction ( #79 )
...
* feat: storage for conversations
* fix: db types conversion
* feat: run migrations from sql files
* feat: persist identity
* fix: revert double ratchet storage refactor
* fix: clean
* refactor: use result wrapper for ffi
* refactor: uniform storage error into chat error
* fix: zeroize identity record
* fix: zeroize for secret keys in db operations
* fix: transactional sql migration
* fix: remove destroy_string
* feat: db storage for inbox ephermeral keys
* chore: remove in memory hashmap for ephemeral keys
* feat: persist conversation store
* feat: wire with the double ratchet storage
* feat: remove conversation store
* chore: fix conversation type not used
* feat: mock chat store implementation
* chore: sqlite module
* feat: sqlite crate
* chore: sqlite rename
* chore: more refactor
* extract ratchet store trait
* chore: clear error conversion
* chore: remove customized db conn
* chore: fix clippy
* chore: refactor to use generics and enum
* chore: further clean for review comments
2026-04-03 08:25:26 +08:00
Jazz Turner-Baggs
9a94f9a6d6
Flatten Repos ( #70 )
...
* move to “crates” style folder
* Update workspace
* clear crate names
* Rename crate folders based on feedback
* Use workspace dependencies instead of paths
* Move updated files from core
2026-03-24 18:21:00 -07:00