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 0c64a41..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,12 +9,12 @@ [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 layer on top of [`logos-delivery`](https://github.com/logos-messaging/logos-delivery) [C FFI bindings](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). ## About Waku 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 242959d..742f4f2 100644 --- a/waku-bindings/README.md +++ b/waku-bindings/README.md @@ -1,11 +1,11 @@ # Waku Rust bindings -[github](https://github.com/logos-messaging/logos-delivery-rust-bindings) +[github](https://github.com/logos-messaging/logos-messaging-rust-bindings) [crates.io](https://crates.io/crates/waku-bindings) [docs.rs](https://docs.rs/waku-bindings) -[build status](https://github.com/logos-messaging/logos-delivery-rust-bindings/actions/workflows/main.yml?query=branch%3Amaster) +[build status](https://github.com/logos-messaging/logos-messaging-rust-bindings/actions/workflows/main.yml?query=branch%3Amaster) -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/liblogosdelivery.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 @@ -18,74 +18,6 @@ waku-bindings = "0.1.0" ``` -## Testing - -### Prerequisites - -Before running tests you need the following tools installed: - -- **Rust toolchain** (stable) — install via [rustup](https://rustup.rs/) -- **Nim 2.x** — required to compile the underlying `logos-delivery` library -- **Make** — used by the build script to compile the native library -- **GCC or Clang** — C compiler required by the build - -### Setup - -Clone the repository with submodules: - -```bash -git clone --recurse-submodules https://github.com/logos-messaging/logos-delivery-rust-bindings.git -cd logos-delivery-rust-bindings -``` - -If you already cloned without submodules: - -```bash -git submodule update --init --recursive -``` - -The `cargo build` step (including test builds) will automatically: -1. Initialize and update git submodules -2. Build the native `libwaku` static library via `make libwaku STATIC=1` -3. Generate 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, but if you run tests manually ensure only one test process is active at a time. - -To run a specific test: - -```bash -cargo test -``` - -For example: - -```bash -cargo test default_echo -cargo test node_restart -``` - -To see log output while testing: - -```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. @@ -98,11 +30,12 @@ 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: @@ -112,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/) \ No newline at end of file + + +Read the [Waku docs](https://docs.wakuconnect.dev/) \ No newline at end of file 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 17eba1f..59580fe 100644 --- a/waku-sys/README.md +++ b/waku-sys/README.md @@ -1,9 +1,9 @@ # Waku rust bindgen bindings -[github](https://github.com/logos-messaging/logos-delivery-rust-bindings) +[github](https://github.com/logos-messaging/logos-messaging-rust-bindings) [crates.io](https://crates.io/crates/waku-sys) [docs.rs](https://docs.rs/waku-sys) -[build status](https://github.com/logos-messaging/logos-delivery-rust-bindings/actions/workflows/main.yml?query=branch%3Amaster) +[build status](https://github.com/logos-messaging/logos-messaging-rust-bindings/actions/workflows/main.yml?query=branch%3Amaster) 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).