mirror of
https://github.com/logos-messaging/logos-delivery-rust-bindings.git
synced 2026-02-28 06:03:34 +00:00
Revert "chore: align with logos-delivery"
This reverts commit eb46bddbc8e2e14e668b5a1c81b72141c58d804b.
This commit is contained in:
parent
eb46bddbc8
commit
b51e90ffbe
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -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
|
||||
|
||||
12
README.md
12
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
|
||||
|
||||
@ -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"]
|
||||
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
# Waku Rust bindings
|
||||
|
||||
[<img alt="github" src="https://img.shields.io/badge/github-Github-red?style=for-the-badge&labelColor=555555&logo=github" height="20">](https://github.com/logos-messaging/logos-delivery-rust-bindings)
|
||||
[<img alt="github" src="https://img.shields.io/badge/github-Github-red?style=for-the-badge&labelColor=555555&logo=github" height="20">](https://github.com/logos-messaging/logos-messaging-rust-bindings)
|
||||
[<img alt="crates.io" src="https://img.shields.io/crates/v/waku-bindings.svg?style=for-the-badge&color=fc8d62&logo=rust" height="20">](https://crates.io/crates/waku-bindings)
|
||||
[<img alt="docs.rs" src="https://img.shields.io/badge/doc/waku-bindings-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rs" height="20">](https://docs.rs/waku-bindings)
|
||||
[<img alt="build status" src="https://img.shields.io/github/actions/workflow/status/logos-messaging/logos-delivery-rust-bindings/main.yml?branch=master" height="20">](https://github.com/logos-messaging/logos-delivery-rust-bindings/actions/workflows/main.yml?query=branch%3Amaster)
|
||||
[<img alt="build status" src="https://img.shields.io/github/actions/workflow/status/logos-messaging/logos-messaging-rust-bindings/main.yml?branch=master" height="20">](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 <test_name>
|
||||
```
|
||||
|
||||
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/)
|
||||
|
||||
|
||||
Read the [Waku docs](https://docs.wakuconnect.dev/)
|
||||
@ -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"]
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
# Waku rust bindgen bindings
|
||||
|
||||
[<img alt="github" src="https://img.shields.io/badge/github-Github-red?style=for-the-badge&labelColor=555555&logo=github" height="20">](https://github.com/logos-messaging/logos-delivery-rust-bindings)
|
||||
[<img alt="github" src="https://img.shields.io/badge/github-Github-red?style=for-the-badge&labelColor=555555&logo=github" height="20">](https://github.com/logos-messaging/logos-messaging-rust-bindings)
|
||||
[<img alt="crates.io" src="https://img.shields.io/crates/v/waku-bindings.svg?style=for-the-badge&color=fc8d62&logo=rust" height="20">](https://crates.io/crates/waku-sys)
|
||||
[<img alt="docs.rs" src="https://img.shields.io/badge/doc/waku-bindings-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rs" height="20">](https://docs.rs/waku-sys)
|
||||
[<img alt="build status" src="https://img.shields.io/github/actions/workflow/status/logos-messaging/logos-delivery-rust-bindings/main.yml?branch=master" height="20">](https://github.com/logos-messaging/logos-delivery-rust-bindings/actions/workflows/main.yml?query=branch%3Amaster)
|
||||
[<img alt="build status" src="https://img.shields.io/github/actions/workflow/status/logos-messaging/logos-messaging-rust-bindings/main.yml?branch=master" height="20">](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).
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user