Waku Go Bindings
Go bindings for the Waku library.
Install
go get -u github.com/logos-messaging/logos-messaging-go-bindings
Building & Dependencies
libwaku (from logos-messaging-nim) is required at compile-time. The Makefile gives you two ways to satisfy this:
-
Reuse an existing clone – if you already have
logos-messaging-nimchecked out, point the build to it:Manual build without Makefile
If you want to invoke
go buildorgo testdirectly, export the same variables the Makefile sets:# path to your existing logos-messaging-nim clone export LMN_DIR=/absolute/path/to/logos-messaging-nim export CGO_CFLAGS="-I${LMN_DIR}/library" export CGO_LDFLAGS="-L${LMN_DIR}/build -lwaku -Wl,-rpath,${LMN_DIR}/build" # compile all packages go build ./waku # run all tests go test ./waku # run a specific test go test ./waku -count=1 -run TestConnectedPeersInfo -v -
Automatic clone (default) – if
LMN_DIRis unset, runningmake -C waku buildwill clone a shallow copy of
logos-messaging-nimintothird_party/nwaku, buildlibwaku, and compile the Go bindings. This is what CI uses.
Downstream projects: When importing
logos-messaging-go-bindingsin another Go module you must ensureLMN_DIRis exported (or vendorlibwaku) before runninggo build. Otherwise the CGO step will fail.
Development
When working on this repository itself, logos-messaging-nim is included as a git submodule for convenience.
- Initialize and update the submodule, then build
libwakugit submodule update --init --recursive make -C waku build-libwaku - Build the project. Submodule paths are used by default to find
libwaku.make -C waku build