6 Commits

Author SHA1 Message Date
Ivan FB
05595e2d92
feat(ffi): target nim-ffi master (v0.2.0) — CBOR + event registry
Port the {.ffi.} wrapper to nim-ffi 0.2.0 (master). 0.2.0 is a breaking
redesign over 0.1.4: events move to a per-context multi-listener registry
(sds_add_event_listener / sds_remove_event_listener) fired via {.ffiEvent.}
emitters, and request/response/event marshalling switches from JSON to CBOR.

- libsds.nim: typed {.ffiEvent.} payloads replace the JSON event modules;
  CBOR handles nesting, so unwrap returns a typed response again. The
  retrieval-hint provider (a C function pointer, not CBOR-encodable) passes
  its address as a uint64 via a {.ffi.} method that stores it in a
  worker-thread threadvar.
- pin nim-ffi to master HEAD by commit. The lock version is kept a clean
  semver ("0.2.0") on purpose: nimble's `#`-prefixed special version in the
  lock breaks `nimble setup -l` (an unquoted `#` truncates the git path),
  so only vcsRevision carries the commit.
- add the new transitive dep cbor_serialization to the lock and nix/deps.nix.
- regenerate libsds.h for the CBOR/registry ABI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 13:22:11 +02:00
Ivan FB
252a0d54cd
refactor(ffi): use nim-ffi {.ffi.} macros for libsds
Switch the C wrapper from the lower-level registerReqFFI + hand-written
exports to nim-ffi's declareLibrary/{.ffiCtor.}/{.ffi.}/{.ffiDtor.}
macros. This removes the per-op boilerplate (request structs, shared-mem
copy helpers, dispatch template) in favour of the framework's JSON
marshalling, and lets participantId be threaded in via config.

Consequences (intentional): C exports are now snake_case and parameters
travel as JSON, so the ABI changes and sds-go-bindings must be updated to
match. Two cases can't ride the JSON path: the retrieval-hint provider is
a C function pointer (kept hand-written, dispatched to set a worker-thread
threadvar) and the unwrap response has nested objects the framework's
serializer can't emit (returned as a hand-built JSON string).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 12:19:10 +02:00
shash256
9f7ae0c7df
feat: support retrieval hints for efficient message retrieval from store nodes (#18)
* feat: updates for retrieval hint

* use HistoryEntry for deps

* chore: rearrange helper funcs

* chore: address review comments

* fix: simplify with mapIt
2026-01-29 09:52:40 +00:00
Akhil
4e10d77218
feat: libsds - support for multiple channels per RM (#15) 2025-07-17 14:13:21 +05:30
gabrielmer
61f7b6b8d5
fix: status-go compatibility issues (#9) 2025-06-17 09:59:46 +02:00
Akhil
074eafe895
feat: extensive set of initial features. 2025-05-29 12:18:53 +01:00