mirror of
https://github.com/logos-messaging/sds-go-bindings.git
synced 2026-07-23 16:33:16 +00:00
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>
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:
- Retrieve the module using
go get:go get -u github.com/waku-org/sds-go-bindings - Navigate to the module's directory:
cd $(go list -m -f '{{.Dir}}' github.com/waku-org/sds-go-bindings) - Prepare third_party directory which will clone
nim-sdssudo mkdir third_party sudo chown $USER third_party - 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
Languages
Go
96.1%
Makefile
3.9%