57 Commits

Author SHA1 Message Date
Ivan FB
98d005c9e1
feat: consume the vendor's generated FFI bindings in waku-sys
nim-ffi 0.2.0 generates the Rust bindings from the Nim source, so
bindgen over the hand-written headers is no longer the source of truth
-- and could not be, since those headers describe the pre-CBOR ABI.

The generated sources are referenced in place under vendor rather than
copied, so regenerating them in logos-delivery flows straight through
with nothing to keep in sync. They stay sibling modules because api.rs
resolves its neighbours through `super::`.

build.rs keeps driving the build: it runs the vendor's make target,
scans for the version-and-hash-named nimble package dirs and librln, and
emits the miniupnpc / natpmp / c++ link flags. The generated build.rs
does none of that (it runs a bare `nim c --mm:orc` against a path that
does not resolve here), so only the bindgen half is dropped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 00:56:16 +02:00
Ivan FB
96499cc735
feat: reliable channels bindings and vendor bump
Exposes the reliable-channel surface: channel_create / channel_send /
channel_close on WakuNodeHandle, backed by the logosdelivery_channel_*
FFI calls. Channel state is persisted, so re-creating a closed channel
resumes it rather than starting fresh, and send payloads travel
base64-encoded.

Adds the three channel lifecycle events (received / sent / error) to
WakuEvent, plus the messaging events (sent, error, propagated, received)
and connection status change, so callers can observe delivery rather
than only firing and hoping.

build.rs resolves the nimble package dirs and librln by scanning rather
than hardcoding, since their names carry versions and hashes that move
whenever nimble.lock does. It also checks make's exit status: a failed
build previously passed silently and the crate linked a stale library
from an earlier run.

Bumps the vendor submodule to master.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 00:44:30 +02:00
Darshan
a02e631d53
chore: align with recent rename (#124) 2025-12-16 01:40:40 +05:30
Ivan FB
9c9900897e
Adapt for nwaku v0.35 (#114)
* build.rs: initialize submodules the first time cargo build is invoked in waku-sys
* messagehash.rs only contains a String as the hex representation of msg hash
* events.rs adapt test to parse message event containing msg-hash in hex string format
* bump nwaku to v0.35.0
* waku-sys/build.rs use STATIC=1 instead of STATIC=true
2025-02-12 10:06:16 +01:00
Ivan FB
75b5c4c4f8
add Makefile and scripts allow build libwaku in cargo publish (#108) 2025-01-14 17:03:40 +01:00
Ivan FB
c2412134d3
upgrade major version to create 1.0.0 (#107) 2025-01-13 09:50:05 +01:00
Ivan FB
0c0b834aa0
Recover toy chat app powered by libwaku/nwaku (#105)
* 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
2025-01-10 15:19:31 +01:00
Ivan FB
fd7e73a7f0
Tic tac toe example (#104)
* 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>
2024-11-28 10:35:41 +01:00
richΛrd
7a2e4d1d01
feat: RLN Relay (#101) 2024-04-01 15:15:50 -04:00
richΛrd
201a38a64e
feat: example app (#99) 2024-03-11 12:00:30 -04:00
richΛrd
69a48725ca
refactor: node handle constructor and messageHash on publish (#98)
* refactor: node handle constructor and messageId on publish
* refactor: add back typestate
* chore: rename messageId to messageHash
2024-03-01 11:31:00 -04:00
richΛrd
646f6f0080
refactor: hide *mut c_void behind WakunodeContext (#96) 2024-02-26 11:13:30 -04:00
Richard Ramos
9d3b575037
chore: remove example (for now) 2024-02-21 15:54:55 -04:00
Richard Ramos
9c696e6097
feat: expose waku_version 2024-02-20 16:06:03 -04:00
Richard Ramos
685a6aef0a
fix: event handler 2024-02-16 10:45:20 -04:00
Richard Ramos
5687e2585c
chore: make sure waku_new, waku_start and waku_stop work 2024-02-13 16:18:16 -04:00
Richard Ramos
ca72e70bb6
chore: link required libraries and RLN 2024-02-13 14:50:00 -04:00
Richard Ramos
9750a329ab
feat: use nwaku instead of go-waku 2024-02-08 11:54:49 -04:00
richΛrd
5aaafc7c20
fix: content topic should accept strings (#84) 2023-12-08 17:30:30 -04:00
richΛrd
dc32f22f4a
feat: add filterv2 functions (#75) 2023-11-07 15:50:35 -04:00
richΛrd
dc641645b9
refactor: use callbacks to interact with go-waku bindings and remove JsonResponse (#74) 2023-11-02 13:59:41 -04:00
richΛrd
ba17a46978
fix: race condition in peer connector / manager interaction (#81)
See https://github.com/waku-org/go-waku/pull/837
2023-10-30 08:18:38 -04:00
Richard Ramos
e61732a8c7
feat: v0.3.1 2023-10-01 15:47:17 -04:00
richΛrd
32bd05c6fc
feat: update go-waku version (#70)
- removes encoding functions from relay and lightpush
- adds `encode_symmetric` and `encode_asymmetric` to `WakuMessage`
- don't panic when unserializing json
2023-09-27 19:19:59 -04:00
richΛrd
a487f79179
feat: websockets support (#63) 2023-07-13 18:33:24 -04:00
RichΛrd
a4bfddece7
feat: update discv5 bootnodes (#62) 2023-06-12 09:46:13 -04:00
You Guang (Alan Matthew)
8d825ad22e
Issue Suggestion - Exclude unnecessary files from the crate (#60) 2023-05-16 16:18:36 -04:00
Richard Ramos
6a2d449d7d
fix: changes required to publish latest version 2023-05-11 14:01:34 -04:00
RichΛrd
ce9f71a592
Add new changes from go-waku (#58)
* feat: add ephemeral and meta fields
* feat: seenTTL
* feat: expose list of topics
2023-05-10 10:13:50 -04:00
danielsanchezq
370d311b39 Rc3 2023-03-17 11:05:53 +01:00
gusto
54a80f83cc
Pass gossipsub params to go-waku node (#50)
* Pass gossipsub params to go-waku node

* Make gossipsub conf test run by default

* Use merge commit to master for go-waku

* Add tests for info logs
2023-03-13 10:51:15 +02:00
gusto
31255ac4c0
Update vendor with logLevel fix (#49) 2023-02-27 13:15:59 +02:00
Daniel Sanchez
b8d7bdc850
Rc 1 (#48)
* Update vendor with nil enr fix

* RC 1
2023-02-22 11:36:28 +01:00
Daniel Sanchez
c4ea87d7e5
Beta 5 (#47)
* Missing decode calls

* Dangling double free on waku default pubsub topic

* Dangling double free on waku create pubsub topic

* Update deps
Fix update changes
Upgrade beta version

* Add extra info to dns discovery results

* Update vendor
2023-02-20 12:44:55 +01:00
Daniel Sanchez Quiros
a8b9bf22f5 Prepare for beta4 2023-02-15 11:42:38 +01:00
Daniel Sanchez
3593ff18e6
Expose local archive query method (#44)
* 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
2023-02-15 10:57:39 +01:00
gusto
4c71e135ab
Run clippy --fix for updated lint requirements (#43) 2023-01-27 01:06:21 -08:00
Daniel Sanchez
67e5aef69a
Beta3 (#42)
* Update waku to the latest main

* Update beta version

* Update deps

* Add relay topics config entry

* Update test config
2023-01-26 12:58:45 +01:00
Daniel Sanchez
c745839d93
Get versions ready to publish 0.1.0-beta2 (#39) 2023-01-06 10:29:10 +01:00
al8n
f9b8c8eb43 remove discv5 apis 2023-01-05 22:53:30 +13:00
al8n
04cfe90d26 update submodule 2022-12-22 23:23:11 +13:00
al8n
b7e4de39ec update submodule 2022-12-22 00:11:54 +13:00
gusto
18436dfc21
Set GOCACHE variable to off for crates.io (#25)
* Set GOCACHE variable to off for crates.io

* Modify GOCACHE only for crates.io builds
2022-11-30 09:45:22 +01:00
Daniel Sanchez
533619670f
Publish build (#22)
* Fix build errors when publishing

* Set VAC licences

* Set beta version to bindings
2022-11-28 17:57:20 +01:00
Daniel Sanchez
b59bf33933
Information prior to publishing (#21) 2022-11-28 10:18:42 +01:00
Daniel Sanchez
d006ef4ecd
Crates publish setup (#17)
* Added config.toml to waku crate

* Update gitignore

* Update readme

* Remove private items docs

* Fix docs links

* Refactor waku to waku-bindings crate
Added badges

* Fix links

* Add usage
2022-11-02 08:21:15 -07:00
Daniel Sanchez
0333d3256c
Dns discovery (#15)
* Updated vendor source

* Added dns discovery method

* Use latest Go in check workflow

* Use host for nameserver

* Use reference instead of move Host
2022-10-25 11:25:23 +02:00
Daniel Sanchez
9993d2d991
Chat example (#11)
* Added main skeleton for toy-chat example

* Implement chat example main block

* Polish chat and add necessary fixes

* Added author info to crates
2022-10-19 15:58:09 +02:00
Daniel Sanchez
c82f4ebe4a
Main test and extended fixes (#10)
* Pipe protocol id

* Fix peer id connect

* Fix WakuPubSubTopic parsing

* Use optional timeout on publish messages

* More test cases

* Update vendor

* Use connect with peer_id

* Fix signal -> event -> message deserialization

* Actively wait for result to arrive the test node

* Clippy happy

* Clippy happy on tests

* Cleaning and adjusting types

* Updated vendor

* Fix keys dance

* Fix lightpush

* Add disconnect test

* Ignore node test for CI

* Add gcc on gh actions

* Reverse installing gcc

* Bring back gcc just for ubuntu and windows

* Removed rust-crypto unused dependency

* Clippy happy
2022-10-17 19:30:07 +02:00
Daniel Sanchez
d320e55701
Node management (#5)
* Add modules

* Implemented waku config struct

* Implemented waku management functions

* Use optional config in waku_new

* Added config docs

* Fix tests

* Dbg error on gh actions

* Added fail result to dbg

* Removed gh actions dbg

* NodeConfig -> WakuNodeConfig

* Removed duplicated test

* Implemented safety layer on top of node

* Add exclusive running test

* Use static instead of const for global flag

* Do not allow for double initialization

* Update submodule to latest master commit with responses fixes

* Merge tests
2022-10-03 15:21:19 +02:00