Commit Graph
68 Commits
Author SHA1 Message Date
Gabriel Cruz 7e3fd96e74 feat(codegen): C binding generator (-d:targetLang=c) (#102) 2026-07-01 12:00:47 -03:00
Gabriel Cruz f1cb110e52 fix: stale echo.hpp (#103) 2026-06-30 11:47:34 -03:00
Ivan FBandGabriel Cruz 5d49ee6b08 feat(ffi): sharded MPSC request ingress (alternative to lock-free #98) (#101)
Co-authored-by: Gabriel Cruz <8129788+gmelodie@users.noreply.github.com>
2026-06-27 19:08:10 +02:00
Gabriel Cruz 3d7b267ef0 chore: bump nim versions to 2.2.6 and stable (#100) 2026-06-26 10:54:21 -03:00
Gabriel Cruz 4bac7a7bc6 test(bench): submit-throughput scaling gate for sendRequestToFFIThread (issue #90) (#97) 2026-06-25 18:02:45 -03:00
Gabriel Cruz 64a332ca8b feat(ffi): scalar type mappings + seq[byte] byte-string codec (#99) 2026-06-25 17:16:21 -03:00
Gabriel Cruz 7362bfd212 test(bench): cbor vs c (cwire) codec microbenchmark (#86) v0.2.0-rc.1 2026-06-23 13:47:56 -03:00
Gabriel Cruz f6881274ca feat(ffi): cwire codec composite fields (#88) 2026-06-23 12:55:07 -03:00
Gabriel Cruz 6c4657ad7e feat(ffi): cwire codec core (flat scalars + strings) (#87) 2026-06-23 11:49:19 -03:00
Gabriel Cruz a5ccadd62d feat(ffi): per-interaction ABI-format annotations + c codec (ffiRaw) (#85) 2026-06-23 11:18:03 -03:00
Gabriel Cruz 021f469041 feat: {.ffiHandle.} — export complex live objects as opaque handles (#81) v0.2.0-rc.0 2026-06-16 14:11:31 -03:00
Gabriel Cruz 16dc1b3573 chore(ci): add nph linting (#77) 2026-06-10 16:30:30 -03:00
Gabriel Cruz 9b3cde7674 feat: move user event code to a dedicated event thread (#69) 2026-06-09 11:35:04 -03:00
Gabriel Cruz 54c41a3e62 refactor(ffi): event thread scaffolding + FFIContext lifecycle split (#71) 2026-06-08 11:46:16 -03:00
Ivan FBandClaude Opus 4.8 721f244312 docs: finalize 0.2.0 changelog and correct 0.1.4 date
CBOR is the headline 0.2.0 feature, not 0.1.4: at v0.1.4 serial.nim was
still JSON/string-based, so the prior CBOR attribution was wrong. Also
complete the 0.2.0 scope (events, registry, codegen) ahead of tagging.

Date 0.1.4 by its last functional change (#14, 2026-05-13) rather than
the later changelog/version-bump commits, so the version reflects when
its code actually settled.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 09:17:56 +02:00
Ivan FB 11aae0c7b8 add changelog for 0.1.4 (#73) 2026-06-03 23:43:52 +02:00
Ivan FB f96a5b158a Remove wildcard event listener; keep per-event dispatch (#70) 2026-06-02 22:22:35 +02:00
Ivan FBandClaude Opus 4.7 e0bd74232b Rust event examples (#53)
* rust examples: sync main.rs + tokio main.rs demoing the listener API

Adds two bundled examples to the generated Rust crate:

- examples/main.rs: sync flow using std::sync::mpsc to bridge a typed
  on_echo_fired listener into main + a wildcard add_event_listener
  that uses decode_event_payload::<EchoEvent>(envelope) for the
  matching event id.
- examples/tokio_main.rs: same shape via #[tokio::main] +
  tokio::sync::mpsc.

Bumps generateCargoToml to ship `[dev-dependencies]` with tokio's
`rt-multi-thread` + `macros` features so the bundled examples can use
#[tokio::main] without polluting the library's runtime profile.

Run with `cargo run --example main` (set DYLD_LIBRARY_PATH=<repo> on
macOS until build.rs emits an rpath).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* simplify examples

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 13:34:56 -03:00
Ivan FB c43563f82f rust codegen: per-event typed add_on_<x>_listener + wildcard add_event_listener (#52) 2026-05-29 20:40:28 +02:00
Gabriel Cruz 7ccf34591d chore: avoid throwing exceptions in C++ bindings (#46) 2026-05-29 12:35:49 -03:00
Ivan FB e394166c46 Cpp typed event listeners (#51) 2026-05-28 22:40:33 +02:00
Ivan FB 3f19411684 Event listener abi (#50) 2026-05-28 16:00:28 +02:00
Ivan FB 496a341466 Event registry wiring (#49) 2026-05-27 22:26:39 +02:00
Ivan FB 94ee6603ff add auto-assign pr author (#54) 2026-05-27 14:35:11 -03:00
Ivan FBandGabriel Cruz e99220a3e4 fix use-after-free concern (#47)
Co-authored-by: Gabriel Cruz <8129788+gmelodie@users.noreply.github.com>
2026-05-26 23:46:27 +02:00
Gabriel Cruz e43c1e03e8 tests: cover gaps in CBOR type coverage (#41) 2026-05-26 17:10:42 -03:00
Ivan FB 216316826c add FFIEventRegistry: multi-listener data structure for FFI events (#45) 2026-05-26 21:42:01 +02:00
Gabriel Cruz 436c0d760b test(cpp-e2e): add multi-context, cross-library, pipeline, stress tests (#30) (#42) 2026-05-26 09:18:12 -03:00
Ivan FB 6a7e4616fd Adjust events to cbor (#39) 2026-05-25 15:51:56 +02:00
Gabriel Cruz 31d0ebfa51 chore(ci): extend cpp-e2e to OS matrix (#38) 2026-05-22 11:43:37 -03:00
Ivan FB c7cf46bdea avoid move ctor and assing operator in cpp generated code (#36) 2026-05-21 16:38:13 +02:00
Ivan FB 5e6e58e7d1 Increase version to v0.2.0 (#37) 2026-05-21 16:33:38 +02:00
Gabriel Cruz ee472f05ad chore(ci): fsanitize tests (#34) 2026-05-20 14:14:42 -03:00
Ivan FB 584e818ac9 Add basic cpp e2e tests (#27) 2026-05-19 12:43:34 +02:00
Ivan FB e12745e85c Add cddl generator (#24) 2026-05-18 20:00:57 +02:00
ac303a707e Start using CBOR (#23)
Co-authored-by: NagyZoltanPeter <113987313+NagyZoltanPeter@users.noreply.github.com>
Co-authored-by: Gabriel Cruz <8129788+gmelodie@users.noreply.github.com>
2026-05-16 01:08:42 +02:00
Gabriel Cruz 159c9287d8 chore(ci): run tests in parallel (#26) 2026-05-15 00:11:09 +02:00
Ivan FB e48c9f9edf remove ffiType macro because it is duplicated by ffi macro (#22) 2026-05-13 14:48:54 +02:00
Ivan FB 6d31fa30bd use fixed array of ctx to avoid consuming all fds (#14) 2026-05-13 00:02:23 +02:00
Gabriel Cruz 81c62c263e fix: context buffer overflow (#21) 2026-05-11 19:21:40 -03:00
Ivan FB a52c4facd9 Simplified FFI authoring with auto-generated C++ and Rust bindings (#15) 2026-05-11 23:28:17 +02:00
Gabriel Cruz e99eb60fd1 chore: run tests with refc (#20)
* chore: run tests with refc

* chore: split ci jobs

* chore: fix tests
2026-05-09 10:47:37 -03:00
Gabriel Cruz 37d19c0687 chore: remove CatchableError (#19) 2026-05-08 14:14:16 -03:00
Ivan FB e3eca63236 first ci version (#12) 2026-04-29 23:48:36 +02:00
Ivan FB df2277e726 Fix memleaks (#11)
* protect against mem leak in case of failures sending requests to ffi thread
* better cleanup if failures in createFFIContext
* avoid dangling cstring in handleRes under ARC/ORC
* better resource cleanup in destroyFFIContext
* invoke onNotResponding if failure in destroyFFIContext
* correct seq copy in alloc
* make sure the lock is init before cleanUpResources
* better possible exception handling in processReq
* guard allocSharedSeq if given seq is empty
* enhance error handling in ffi_context
* add new tests and some corrections
2026-04-27 21:22:45 +02:00
Pablo Lopez bb8a3e7e22 fix: add install_name for mac (#8)
not to hardcode the paths
2026-02-20 17:37:13 +02:00
Igor Sirotin c2c03f1f0f chore: update license files to comply with Logos licensing requirements 2026-02-05 15:12:18 +00:00
Ivan Folgueira Bande 06111de155 properly importing and exporting chronicles v0.1.3 2026-01-23 17:55:43 +01:00
Ivan Folgueira Bande d3fe7b4389 properly exposing chronicles and tables when importing ffi v0.1.2 2026-01-23 17:34:01 +01:00
Ivan Folgueira Bande bb8ed28ab0 add require chronicles taskpools and import std tables v0.1.1 2026-01-23 15:01:08 +01:00