osmaczko
1f8c38d2ce
fix(nim-bindings): fix ABI mismatch in destroy_* FFI functions and add defer-based cleanup
...
Nim's C backend silently transforms large struct parameters (>16 bytes) into
pointer parameters when calling importc functions. The destroy_* functions were
declared taking T by value in Rust, but Nim always passed &T — causing Rust to
read garbage from the stack on x86-64 (SIGILL on CI) while accidentally working
on ARM64 macOS due to that ABI coincidentally also using pointers for large structs.
Fix by changing all destroy_* functions to take &mut T and using drop_in_place,
which is the correct idiom for dropping a value through a pointer.
On the Nim side, replace scattered manual destroy calls with defer, which
guarantees cleanup on all exit paths and prevents use-after-destroy bugs.
2026-02-25 20:03:09 +01:00
Jazz Turner-Baggs
798fbf731a
Rust -> Nim ABI ( #62 )
...
* Use correct build hook
* force sret like return from rust code for nim compatibility
* Fix target mismatch
* Update usages
2026-02-24 15:28:02 -08:00
Jazz Turner-Baggs
eb941387df
Add Installation name ( #58 )
...
* Add Identity name
* Update Context to accept a name
* Change constructor in bindings
* Add name retrieval to bindings
* Update constructor string type
* Remove uneeded files
* rename functions for symmetry
2026-02-19 17:25:42 -08:00
osmaczko
a9ca4ffb7d
chore: expose isNewConvo property ( #57 )
2026-02-18 20:01:47 +01:00
Jazz Turner-Baggs
95ddce9161
Key types ( #56 )
...
* Add generic SymmetricKey container
* Rename SecretKey to SymmetricKey32
* Update SymmetricKey usage
* Add PublicKey
* Update PublicKey uses
* Add PrivateKey
* Replace StaticSecret with PrivateKey
* Fix imports
* Remove InstallKey from constructors
* Final integration
* lint fixes
* Fixups
2026-02-18 09:29:33 -08:00
Jazz Turner-Baggs
3b69f946fd
PrivateV1 Convo Ids ( #54 )
...
* Add conversation_ids for privateV1
* Skip handling of unknown payloads
* Tag initial ContentData as new
* Add Integration test
* truncate convo_id to size
* Clippy fixes
* cleanup
* Apply suggestion from @osmaczko
Co-authored-by: osmaczko <33099791+osmaczko@users.noreply.github.com>
* Apply suggestion from @osmaczko
Co-authored-by: osmaczko <33099791+osmaczko@users.noreply.github.com>
* Linter fixes
---------
Co-authored-by: osmaczko <33099791+osmaczko@users.noreply.github.com>
2026-02-11 14:10:21 -08:00
osmaczko
57fe656728
feat: update introduction bundle encoding ( #43 )
...
closes : #27
2026-02-11 19:51:22 +01:00
Patryk Osmaczko
cd737ea058
fix: make ci checks pass
2026-02-10 19:45:00 +01:00
Jazz Turner-Baggs
71f7b8a485
FFI Integration fixes ( #48 )
...
* Make conversation store easier to use
* fix: Bug in Inbox id’s
* Clean up warnings
* Add DH decryption for Inbox
2026-02-09 09:55:58 -08:00
Jazz Turner-Baggs
e3e3097947
Safer FFI Migration ( #47 )
...
* Use safer_ffi for all functions
* Clean up FFI docs and imports
* Update nim bindings
* Binding Memory Management
* Update tests
2026-02-09 06:37:47 -08:00
Jazz Turner-Baggs
135347cdd0
Update Conversation handles over FFI ( #46 )
...
* Remove convo handles
* Remove convo_handle from docs
2026-02-06 08:58:23 -08:00
Jazz Turner-Baggs
1ce196e5ec
Implement handle_payload ( #44 )
...
* Implement handle_payload
* Cleanup handler for easier understanding
* Fixups
2026-02-06 08:41:12 -08:00
Jazz Turner-Baggs
97a1cf150a
Update content to use byte slice ( #45 )
2026-02-06 08:08:06 -08:00
Jazz Turner-Baggs
2a74066cd4
Remove unneeded traits and warnings ( #42 )
2026-02-06 07:24:13 -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
Jazz Turner-Baggs
5a98258ff1
Implement Content::send_content ( #31 )
...
* Implement Content::send_content
* rename stamp fn
2026-01-29 08:36:18 -08:00
Jazz Turner-Baggs
1f0354f8e2
Add FFI functions for send_content and handle_payload ( #29 )
...
* Add api calls for handle_payload and send_content
* Add handle_payload and send_content to FFI
2026-01-28 10:50:41 -08: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
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
Jazz Turner-Baggs
4b1069a4a8
Use PayloadData for outbound datatype ( #23 )
...
* Add Introductions (#22 )
* Move to Payload data
* compute delivery_address
2026-01-27 16:17:04 -08:00
Jazz Turner-Baggs
d40e72be9b
Add Introductions ( #22 )
2026-01-26 08:53:44 -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
Jazz Turner-Baggs
04d6f8a84b
Add Project scaffolding ( #1 )
2025-12-22 09:40:46 -08:00