mirror of
https://github.com/logos-messaging/logos-messaging-go-bindings.git
synced 2026-06-13 20:29:46 +00:00
Add internal/ffi/liblogosdelivery, the cgo bridge over liblogosdelivery (Messaging API), mirroring the libwaku subpackage from #114: synchronous request/response plumbing, a shared async event callback, and a handle->handler registry, exposing Go-typed primitives (New/Start/Stop/Destroy, Subscribe/Unsubscribe/Send, SetEventHandler, Handle, RetOK, EventHandler). It self-links liblogosdelivery via a #cgo directive. For symmetry — and so the two bridges never need a shared global -l flag — add the same #cgo LDFLAGS: -lwaku to the libwaku subpackage. Each subpackage now links exactly its own library; no binary links both (until logos-delivery#3851). Extend the PR gate to build liblogosdelivery, set CGO_CFLAGS for both headers with no -l (each package self-links), run the messaging unit tests, and compile the kernel tests. Part of #106. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
logos-delivery Go Bindings
Go bindings for the Waku library.
Install
go get -u github.com/logos-messaging/logos-delivery-go-bindings
Building & Dependencies
libwaku (from logos-delivery) is required at compile-time.
Building with Makefile
If you have logos-delivery checked out, point the build to it:
# path to your existing logos-delivery clone
export LOGOS_DELIVERY_DIR=/absolute/path/to/logos-delivery
export CGO_CFLAGS="-I${LOGOS_DELIVERY_DIR}/library"
export CGO_LDFLAGS="-L${LOGOS_DELIVERY_DIR}/build -lwaku -Wl,-rpath,${LOGOS_DELIVERY_DIR}/build"
# compile all packages
make -C pkg/kernel build
# run all tests
make -C pkg/kernel test
# run a specific test
make -C pkg/kernel test TEST=TestConnectedPeersInfo
Development
When working on this repository itself, logos-delivery is included as a git submodule for convenience.
- Initialize and update the submodule, then build
libwakugit submodule update --init --recursive make -C pkg/kernel build-libwaku - Build the project. Submodule paths are used by default to find
libwaku.make -C pkg/kernel build
Description
Languages
Go
99%
Makefile
1%