diff --git a/.gitmodules b/.gitmodules
index d5f2df2..aa143c0 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,3 @@
[submodule "waku-sys/vendor"]
path = waku-sys/vendor
- url = https://github.com/logos-messaging/logos-delivery
+ url = https://github.com/logos-messaging/logos-messaging-nim
diff --git a/README.md b/README.md
index bae5a79..ba8c5c0 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# logos-delivery Rust Bindings
+# Waku Rust bindings
[![Crates.io][crates-badge]][crates-url]
[![Documentation][docs-badge]][docs-url]
@@ -9,98 +9,18 @@
[crates-url]: https://crates.io/crates/waku-bindings
[docs-badge]: https://docs.rs/waku-bindings/badge.svg
[docs-url]: https://docs.rs/waku-bindings
-[actions-badge]: https://github.com/logos-messaging/logos-delivery-rust-bindings/workflows/CI/badge.svg
-[actions-url]: https://github.com/logos-messaging/logos-delivery-rust-bindings/actions/workflows/main.yml?query=workflow%3ACI+branch%3Amaster
-[codecov-badge]: https://codecov.io/github/logos-messaging/logos-delivery-rust-bindings/branch/main/graph/badge.svg?token=H4CQWRUCUS
-[codecov-url]: https://codecov.io/github/logos-messaging/logos-delivery-rust-bindings
+[actions-badge]: https://github.com/logos-messaging/logos-messaging-rust-bindings/workflows/CI/badge.svg
+[actions-url]: https://github.com/logos-messaging/logos-messaging-rust-bindings/actions/workflows/main.yml?query=workflow%3ACI+branch%3Amaster
+[codecov-badge]: https://codecov.io/github/logos-messaging/logos-messaging-rust-bindings/branch/main/graph/badge.svg?token=H4CQWRUCUS
+[codecov-url]: https://codecov.io/github/logos-messaging/logos-messaging-rust-bindings
-Rust bindings for [logos-delivery](https://github.com/logos-messaging/logos-delivery) (Waku) v0.38.0-beta,
-built on top of the [C FFI](https://github.com/logos-messaging/logos-delivery/blob/master/library/libwaku.h).
+Rust layer on top of [`logos-messaging-nim`](https://github.com/logos-messaging/logos-messaging-nim) [C FFI bindings](https://github.com/logos-messaging/logos-messaging-nim/blob/master/library/libwaku.h).
-## Prerequisites
-
-- **Rust** (stable) — [rustup.rs](https://rustup.rs)
-- **Nim 2.x** — required to compile the native `libwaku` library
-- **Make**
-- **GCC or Clang**
-
-## Setup
-
-Clone the repository:
-
-```bash
-git clone https://github.com/logos-messaging/logos-delivery-rust-bindings.git
-cd logos-delivery-rust-bindings
-```
-
-The first `cargo build` / `cargo run` automatically:
-1. Initializes and updates git submodules
-2. Compiles the native `libwaku` static library via `make libwaku STATIC=1`
-3. Generates Rust FFI bindings via `bindgen`
-
-## Running the Examples
-
-### basic
-
-Two Waku nodes in the same process. Node 1 publishes a message; node 2 receives it via relay subscription.
-
-```bash
-cd examples/basic
-cargo run
-```
-
-### toy-chat
-
-Multi-participant chat room over Waku relay. Pass your nickname as argument.
-
-```bash
-cd examples/toy-chat
-cargo run "Alice"
-```
-
-Start another instance in a separate terminal (or on another machine) to chat:
-
-```bash
-cargo run "Bob"
-```
-
-### tic-tac-toe-gui
-
-Multiplayer tic-tac-toe with a native GUI (eframe). Start two instances — locally or on separate machines.
-
-```bash
-cd examples/tic-tac-toe-gui
-cargo run
-```
-
-## Running the Tests
-
-Tests start real Waku nodes and bind to local TCP ports, so they **must run serially**:
-
-```bash
-# from repo root
-cargo test -p waku-bindings -- --test-threads=1
-
-# or from waku-bindings/
-cd waku-bindings
-cargo test
-```
-
-To see log output:
-
-```bash
-cargo test -- --nocapture
-```
-
-## Crates
-
-| Crate | Description |
-|-------|-------------|
-| [`waku-bindings`](waku-bindings/) | High-level Rust API |
-| [`waku-sys`](waku-sys/) | Low-level bindgen FFI bindings |
## About Waku
-[Waku](https://waku.org/) is a family of robust, censorship-resistant communication protocols for Web3. Private. Secure. Runs anywhere.
+[Waku](https://waku.org/) is a family of robust and censorship-resistant communication protocols enabling privacy-focused messaging for Web3 applications.
+
+Private. Secure. Runs anywhere.
Read the [Waku docs](https://docs.waku.org/)
diff --git a/waku-bindings/Cargo.toml b/waku-bindings/Cargo.toml
index 581dba3..8e11726 100644
--- a/waku-bindings/Cargo.toml
+++ b/waku-bindings/Cargo.toml
@@ -9,7 +9,7 @@ authors = [
]
description = "Waku networking library"
license = "MIT OR Apache-2.0"
-repository = "https://github.com/logos-messaging/logos-delivery-rust-bindings"
+repository = "https://github.com/logos-messaging/logos-messaging-rust-bindings"
keywords = ["waku", "peer-to-peer", "libp2p", "networking"]
categories = ["network-programming"]
diff --git a/waku-bindings/README.md b/waku-bindings/README.md
index 0ce42a9..742f4f2 100644
--- a/waku-bindings/README.md
+++ b/waku-bindings/README.md
@@ -1,12 +1,11 @@
# Waku Rust bindings
-[
](https://github.com/logos-messaging/logos-delivery-rust-bindings)
+[
](https://github.com/logos-messaging/logos-messaging-rust-bindings)
[
](https://crates.io/crates/waku-bindings)
[
](https://docs.rs/waku-bindings)
-[
](https://github.com/logos-messaging/logos-delivery-rust-bindings/actions/workflows/main.yml?query=branch%3Amaster)
+[
](https://github.com/logos-messaging/logos-messaging-rust-bindings/actions/workflows/main.yml?query=branch%3Amaster)
-High-level Rust API on top of [`waku-sys`](https://crates.io/crates/waku-sys) bindgen bindings to the
-[logos-delivery C FFI](https://github.com/logos-messaging/logos-delivery/blob/master/library/libwaku.h).
+Rust api on top of [`waku-sys`](https://crates.io/crates/waku-sys) bindgen bindings to [c ffi bindings](https://github.com/status-im/go-waku/blob/v0.2.2/library/README.md).
## Usage
@@ -15,86 +14,28 @@ Add this to your `Cargo.toml`:
```toml
[dependencies]
-waku-bindings = "1.0.0"
+waku-bindings = "0.1.0"
```
-## Testing
-
-### Prerequisites
-
-- **Rust** (stable) — [rustup.rs](https://rustup.rs)
-- **Nim 2.x** — required to compile the native `libwaku` library
-- **Make**
-- **GCC or Clang**
-
-### Setup
-
-Clone the repository:
-
-```bash
-git clone https://github.com/logos-messaging/logos-delivery-rust-bindings.git
-cd logos-delivery-rust-bindings
-```
-
-The first `cargo build` / `cargo test` automatically:
-1. Initializes and updates git submodules
-2. Builds the native `libwaku` static library via `make libwaku STATIC=1`
-3. Generates Rust FFI bindings via `bindgen`
-
-### Running the tests
-
-From the repo root or the `waku-bindings/` directory:
-
-```bash
-cargo test
-```
-
-> Tests must run **serially** — they spin up real Waku nodes that bind to local TCP ports. Running them in
-> parallel causes port conflicts. The `serial_test` crate enforces this automatically.
-
-To run a specific test:
-
-```bash
-cargo test
-```
-
-For example:
-
-```bash
-cargo test default_echo
-cargo test node_restart
-```
-
-To see log output:
-
-```bash
-cargo test -- --nocapture
-```
-
-### What the tests cover
-
-| Test | Description |
-|------|-------------|
-| `default_echo` | Creates two nodes, subscribes both to a relay topic, publishes a message from node 1, and verifies node 2 receives it |
-| `node_restart` | Creates a node, starts and stops it three times in a row to verify lifecycle correctness |
-
-
## About [Waku](https://waku.org/)
Waku is the communication layer for Web3. Decentralized communication that scales.
Private. Secure. Runs anywhere.
+### What is Waku?
+
Waku is a suite of privacy-preserving, peer-to-peer messaging protocols.
Waku removes centralized third parties from messaging, enabling private, secure, censorship-free communication with no single point of failure.
-Waku provides privacy-preserving capabilities, such as sender anonymity, metadata protection and unlinkability to personally identifiable information.
+Waku provides privacy-preserving capabilities, such as sender anonymity,metadata protection and unlinkability to personally identifiable information.
Waku is designed for generalized messaging, enabling human-to-human, machine-to-machine or hybrid communication.
Waku runs everywhere: desktop, server, including resource-restricted devices, such as mobile devices and browsers.
+How does it work?
The first version of Waku had its origins in the Whisper protocol, with optimizations for scalability and usability. Waku v2 is a complete rewrite. Its relay protocol implements pub/sub over libp2p, and also introduces additional capabilities:
@@ -104,4 +45,6 @@ The first version of Waku had its origins in the Whisper protocol, with optimiza
This makes it ideal for running a p2p protocol on mobile, or in other similarly resource-restricted environments.
-Read the [Waku docs](https://docs.waku.org/)
+
+
+Read the [Waku docs](https://docs.wakuconnect.dev/)
\ No newline at end of file
diff --git a/waku-bindings/src/macros.rs b/waku-bindings/src/macros.rs
index 7594e9f..4ad9608 100644
--- a/waku-bindings/src/macros.rs
+++ b/waku-bindings/src/macros.rs
@@ -1,7 +1,7 @@
use crate::general::libwaku_response::LibwakuResponse;
use std::{slice, str};
-use waku_sys::FFICallBack;
+use waku_sys::WakuCallBack;
unsafe extern "C" fn trampoline(
ret_code: ::std::os::raw::c_int,
@@ -26,7 +26,7 @@ unsafe extern "C" fn trampoline(
closure(result);
}
-pub fn get_trampoline(_closure: &F) -> FFICallBack
+pub fn get_trampoline(_closure: &F) -> WakuCallBack
where
F: FnMut(LibwakuResponse),
{
@@ -57,10 +57,10 @@ macro_rules! handle_ffi_call {
let code = unsafe {
let cb = get_trampoline(&closure);
$waku_fn(
- $ctx, // Pass the context
- cb, // Pass the callback trampoline
- &mut closure as *mut _ as *mut c_void // Pass the user data
- $(, $($arg),*)? // Expand the variadic arguments if provided
+ $ctx, // Pass the context
+ $($($arg),*,)? // Expand the variadic arguments if provided
+ cb, // Pass the callback trampoline
+ &mut closure as *mut _ as *mut c_void
)
};
diff --git a/waku-bindings/src/node/context.rs b/waku-bindings/src/node/context.rs
index 9395e5e..87afae5 100644
--- a/waku-bindings/src/node/context.rs
+++ b/waku-bindings/src/node/context.rs
@@ -49,7 +49,7 @@ impl WakuNodeContext {
*boxed_closure = Box::new(closure);
unsafe {
let cb = get_trampoline(&(*boxed_closure));
- waku_sys::set_event_callback(
+ waku_sys::waku_set_event_callback(
self.obj_ptr,
cb,
&mut (*boxed_closure) as *mut _ as *mut c_void,
diff --git a/waku-sys/Cargo.toml b/waku-sys/Cargo.toml
index b4673ba..6bac827 100644
--- a/waku-sys/Cargo.toml
+++ b/waku-sys/Cargo.toml
@@ -9,7 +9,7 @@ authors = [
]
description = "Waku networking library generated bindings"
license = "MIT OR Apache-2.0"
-repository = "https://github.com/logos-messaging/logos-delivery-rust-bindings"
+repository = "https://github.com/logos-messaging/logos-messaging-rust-bindings"
keywords = ["waku", "peer-to-peer", "libp2p", "networking"]
categories = ["network-programming"]
diff --git a/waku-sys/README.md b/waku-sys/README.md
index 224b163..59580fe 100644
--- a/waku-sys/README.md
+++ b/waku-sys/README.md
@@ -1,22 +1,21 @@
# Waku rust bindgen bindings
-[
](https://github.com/logos-messaging/logos-delivery-rust-bindings)
+[
](https://github.com/logos-messaging/logos-messaging-rust-bindings)
[
](https://crates.io/crates/waku-sys)
[
](https://docs.rs/waku-sys)
-[
](https://github.com/logos-messaging/logos-delivery-rust-bindings/actions/workflows/main.yml?query=branch%3Amaster)
+[
](https://github.com/logos-messaging/logos-messaging-rust-bindings/actions/workflows/main.yml?query=branch%3Amaster)
-Auto-generated Rust FFI bindings (via `bindgen`) on top of the
-[logos-delivery C FFI](https://github.com/logos-messaging/logos-delivery/blob/master/library/libwaku.h).
+Rust layer on top of [`go-waku`](https://github.com/status-im/go-waku) [c ffi bindings](https://github.com/status-im/go-waku/blob/v0.2.2/library/README.md).
## Usage
-These are low-level auto-generated bindings. For a proper Rust API check [`waku-bindings`](https://crates.io/crates/waku-bindings).
+These are autogenerated, if you are looking for a proper Rust API version check on [`waku-bindings`](https://crates.io/crates/waku-bindings)
Add this to your `Cargo.toml`:
```toml
[dependencies]
-waku-sys = "1.0.0"
+waku-sys = "0.1.0"
```
@@ -26,4 +25,27 @@ Waku is the communication layer for Web3. Decentralized communication that scale
Private. Secure. Runs anywhere.
-Read the [Waku docs](https://docs.waku.org/)
+### What is Waku?
+
+Waku is a suite of privacy-preserving, peer-to-peer messaging protocols.
+
+Waku removes centralized third parties from messaging, enabling private, secure, censorship-free communication with no single point of failure.
+
+Waku provides privacy-preserving capabilities, such as sender anonymity,metadata protection and unlinkability to personally identifiable information.
+
+Waku is designed for generalized messaging, enabling human-to-human, machine-to-machine or hybrid communication.
+
+Waku runs everywhere: desktop, server, including resource-restricted devices, such as mobile devices and browsers.
+How does it work?
+
+The first version of Waku had its origins in the Whisper protocol, with optimizations for scalability and usability. Waku v2 is a complete rewrite. Its relay protocol implements pub/sub over libp2p, and also introduces additional capabilities:
+
+1. Retrieving historical messages for mostly-offline devices.
+2. Adaptive nodes, allowing for heterogeneous nodes to contribute.
+3. Bandwidth preservation for light nodes.
+
+This makes it ideal for running a p2p protocol on mobile, or in other similarly resource-restricted environments.
+
+
+
+Read the [Waku docs](https://docs.wakuconnect.dev/)
\ No newline at end of file
diff --git a/waku-sys/vendor b/waku-sys/vendor
index 104ce6e..4117449 160000
--- a/waku-sys/vendor
+++ b/waku-sys/vendor
@@ -1 +1 @@
-Subproject commit 104ce6e5ac16b9c5e818788e2fb2858c36f36bbf
+Subproject commit 4117449b9af6c0304a6115dd4bc0d1d745159685