osmaczko
0d66d7d905
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-04-01 13:31:53 +02: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
kaichao
daeecbd679
Persist identity ( #67 )
...
* 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
* refactor: inline identity record name clone
2026-03-25 08:45:22 +08:00
Jazz Turner-Baggs
960bb195a1
Update crate name ( #59 )
2026-02-22 08:24:10 +02:00
osmaczko
57fe656728
feat: update introduction bundle encoding ( #43 )
...
closes : #27
2026-02-11 19:51:22 +01:00
dependabot[bot]
45b54bf983
Build(deps): bump bytes from 1.11.0 to 1.11.1 ( #41 )
...
Bumps [bytes](https://github.com/tokio-rs/bytes ) from 1.11.0 to 1.11.1.
- [Release notes](https://github.com/tokio-rs/bytes/releases )
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.11.0...v1.11.1 )
---
updated-dependencies:
- dependency-name: bytes
dependency-version: 1.11.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 18:44:47 -08:00
Jazz Turner-Baggs
d5c16f51de
Integrate DR into PrivateV1 ( #32 )
...
* Add crate
* Initialize session
* Add encrypt / decrypt
2026-02-03 15:17:45 -08:00
kaichao
74695877fa
Split storage crate to abstract database layer ( #30 )
...
* feat: shared storage crate
* chore: remove backup codes
* chore: remove feature gates
* chore: clean out of order demo
* chore: refactor create session
* chore: shorten error name
* chore: clean errors
* chore: remove table exist check
* chore: remove unused traits
* chore: remove unused functions.
* chore: use tempfile for examples
2026-02-03 09:39:02 +08:00
kaichao
10940321ff
Encode ratchet sate for serialization ( #20 )
...
* feat: costom encode for double ratchet
* chore: correct capacity
* chore: refactor reference
* chore: reader for parse bytes
* chore: extract reader
* chore: example with persist state.
* chore: update example
* chore: implement serde compatibility.
* chore: as_bytes
* chore: zerorize the secrec material
* chore: use as_types to return reference for static key.
* chore: extract example from basic demo
2026-01-29 09:19:52 +08:00
Jazz Turner-Baggs
15bb395475
Rust API - conversation creation ( #24 )
...
* Adds final changes for rust side API
* Add Safer_ffi impl
* Simplify api
* Add const handle offset
2026-01-28 09:59:07 -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
Jazz Turner-Baggs
fe23c39321
PrivateV1 Convo Initialization via Inbox ( #13 )
...
* Load orginal protofiles
* Change package name
* Add prost generation
* Remove placeholders
* Add generated files + imports
* replace with chat-proto
* Add XK0
* auto formatting
* Initial implementation of PrivateV1 initialization
* Add ConvoFactory trait
* Hook up indentity placeholder
* Remove RemoteInbox until it’s needed
* Simplify Identity ownership
* Clean up x3handshake
* Move inbox encryption
* Simplify inbox encryption
* Cleanup warnings
* Add todos
* Update chat-proto crate
* Publickey Handling
* Reorg Inbox handshake
* Update Inbox convoId
* Remove file structure headers
* Update ConvoID
* Add Domain Separator trait
* Remove Convo trait functions
* Rename Context
* Add SecretKey
* Add workspace dependency
* update KE name
* Update comments for clarity
* Remove Xk0 references
* Bump chat_proto version and relock
2026-01-21 15:39:09 -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