Ivan FB 0b8b037adf
fix: async Cleanup for recycle ABI + guard rmRegistry
sds_destroy is now non-blocking and recycles the context, delivering the
drain outcome via the callback. Cleanup blocks on that callback through
sdsCall, which also backpressures NewReliabilityManager against recycle so
the fixed context pool cannot be exhausted under create/destroy churn.

Guard rmRegistry with a RWMutex: it is written by register/unregister
(Create/Cleanup) and read by sdsGlobalEventCallback on the nim-ffi event
thread, which otherwise triggered a fatal "concurrent map read and map
write" once multiple managers ran concurrently.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 10:05:18 +02: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%