Ivan FB 9ce92dedb2
feat: adapt bindings to nim-sds v0.4 JSON sds_* ABI
nim-sds release/v0.4 moved to nim-ffi v0.1.5 and now exposes a
JSON + snake_case `sds_*` C ABI (sds_create, sds_wrap_outgoing_message,
sds_unwrap_received_message, ...). Rewrite the cgo layer to match:
requests/responses are marshalled as JSON, with seq[byte] carried as a
JSON number array (jsonByteArray) and retrievalHint as base64.

Also add repair_ready event support (OnRepairReady) and guard the
manager registry with rmRegistryMu: libsds fires the global callbacks on
its own worker threads, which raced the register/unregister writes done
on the manager-owning goroutines.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 09:54:36 +02:00
2025-12-22 16:45:14 +00:00
2025-12-22 16:45:14 +00:00
2025-12-22 16:45:14 +00:00
2025-04-16 18:38:09 +03:00

SDS Go Bindings

This repository provides Go bindings for the SDS library, enabling seamless integration with Go projects.

Installation

To build the required dependencies for this module, the make command needs to be executed. If you are integrating this module into another project via go get, ensure that you navigate to the sds-go-bindings/sds directory and run make.

Steps to Install

Follow these steps to install and set up the module:

  1. Retrieve the module using go get:
    go get -u github.com/waku-org/sds-go-bindings
    
  2. Navigate to the module's directory:
    cd $(go list -m -f '{{.Dir}}' github.com/waku-org/sds-go-bindings)
    
  3. Prepare third_party directory which will clone nim-sds
    sudo mkdir third_party
    sudo chown $USER third_party
    
  4. Build the dependencies:
    make -C sds
    

Now the module is ready for use in your project.

Note

In order to easily build the libsds library on demand, it is recommended to add the following target in your project's Makefile:

LIBSDS_DEP_PATH=$(shell go list -m -f '{{.Dir}}' github.com/waku-org/sds-go-bindings)

buildlib:
   cd $(LIBSDS_DEP_PATH) &&\
   sudo mkdir -p third_party &&\
   sudo chown $(USER) third_party &&\
   make -C sds
Description
No description provided
Readme
Languages
Go 96.1%
Makefile 3.9%