The `rln` dependency exists only to force RLN symbols into the link, but
it had drifted two majors from the library it is meant to mirror: the
vendor pins `LIBRLN_VERSION := v2.0.2` and build.rs links that
`librln_v2.0.2.a`, while this crate still asked for 0.3.4.
That drift was invisible in isolation and fatal downstream. Every rln up
to 0.6.1 pins `serde = "=1.0.163"` exactly, so any consumer resolving
waku-bindings alongside a crate needing a newer serde -- openmls'
tls_codec wants ^1.0.184 -- fails to resolve at all, since cargo will not
duplicate serde 1.x. libchat cannot depend on this crate without it.
2.0.2 relaxes the pin to ^1.0.228 and matches what is linked. Verified by
building and linking libchat against it: no duplicate-symbol clash with
the vendor's archive.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ai43sF2rymPFMG9iki9fwL
waku-sys was a thin -sys crate that only re-exported the generated FFI
sources via #[path] and carried the build. It sat between waku-bindings
and the generated crate for no real benefit -- the generated crate is the
actual -sys equivalent, and its own build.rs cannot build logos-delivery
(bare `nim c`, one link directive). So the wrapper is folded in:
- The build (make liblogosdelivery + the 13 link directives, librln
discovery, cmd.c) moves into waku-bindings/build.rs.
- waku-bindings pulls the generated ffi/types/api modules directly by
#[path] into the vendor submodule, which moves from waku-sys/vendor to
the repo root (vendor/).
- ciborium/flume and the cc build-dep move over; the waku-sys path
dependency is dropped.
Consumers are unaffected -- they always depended only on waku-bindings.
This is one crate and one layer fewer.
build.rs now also removes a stale build/liblogosdelivery.dylib after the
static build: the generated ffi.rs declares `#[link(name =
"logosdelivery")]` with no kind, so a dylib left by a non-STATIC make
would be linked dynamically over the static archive.
Full suite passes (4 tests + doctest, 1 ignored) and all three examples
build.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* bump nwaku to the current master branch ( commit: 625c8ee5 )
* make the waku crate to behave tokio-asynchronously
* use of store
* use of lightpush and filter
* add waku-bindings/src/general/messagehash.rs
* add waku-bindings/src/general/time.rs
* add waku-bindings/src/general/waku_decode.rs
* add WakuEvent management (WakuMessage, ConnectionChange, TopicHealthChange.)
* add waku-bindings/src/macros.rs
* update nwaku vendor to v0.33.1
* build.rs: add negentropy dependency and cmdCount cmdLine dependencies
* fix: call waku_setup when instantiating waku_new
* Properly decode a Vec<Multiaddr>
* First commit tic-tac-toe
* adding some simple game logic to coordinate the turns a little
* some logic to panic if a proper event callback hasn't been set
* restoring back the type state pattern introduced by Richard
* new PubsubTopic type
* fix clippy issues
---------
Co-authored-by: Richard Ramos <info@richardramos.me>
- removes encoding functions from relay and lightpush
- adds `encode_symmetric` and `encode_asymmetric` to `WakuMessage`
- don't panic when unserializing json
* Update vendor
* Expose local archive query
Update to beta4
* Update bindings package to beta4
* Update bindings package to beta4
* Make store response fields public
* Added store configuration
* Use decode response function
* Fix for codecov branch names
* Codecov with all tests included
* Add tokio to node tests
* Run echo tests as seperate processes
* Add token to evade GH limiter
* Discv5 and default test for node