Rust implementation of Waku v2 (f.k.a. Whisper)

Overview

waku-rs

Waku is a p2p messaging protocol tailored for the web3, with origins in Ethereum's Whisper.

This Rust implementation is taking reference from the official specifications of Waku v2, as well as the Nim, JavaScript and Go implementations.

Check docs for more informataion.

⚠️ warning ⚠️

This is a very early experimental project, don't create any expectations based on it. It has no official affiliation with VAC nor Status.

requirements

In order to compile waku-rs, you need protoc on your path. On Ubuntu:

$ sudo apt install -y protobuf-compiler
You might also like...
Rust-only ext4 implementation without unsafe code.

Rust-Ext4 Rust-only ext4 implementation without unsafe code. Supporting features no_std Direct/Indirect Block Addressing (RO) Extent Tree Addressing (

Rust implementation of DVB-GSE

dvb-gse dvg-se is a Rust implementation of the DVB GSE (Generic Stream Encapsulation) protocol and related protocols. It is mainly intended to be used

Rust implementation of Surging Object DiGraph (SODG)

This Rust library implements a Surging Object DiGraph (SODG) for reo virtual machine for EO programs. Here is how you can create a di-graph: use sodg:

Tvix - A Rust implementation of Nix

Tvix Tvix is a new implementation of the Nix language and package manager. See the announcement post for information about the background of this proj

Rust library provides a standalone implementation of the ROS (Robot Operating System) core

ROS-core implementation in Rust This Rust library provides a standalone implementation of the ROS (Robot Operating System) core. It allows you to run

A Rust implementation of HyperLogLog trying to be parsimonious with memory.

🧮 HyperLogLog-rs This is a Rust library that provides an implementation of the HyperLogLog (HLL) algorithm, trying to be parsimonious with memory. Wh

A Rust implementation of V8's ValueSerializer and ValueDeserializer

v8_valueserializer This module implements the V8 ValueSerializer and ValueDeserializer API in Rust. It can serialize and deserialize any value that ca

Experimental Quantum Computer Simulator + Quantum Chess Implementation
Experimental Quantum Computer Simulator + Quantum Chess Implementation

Quantum Chess A somewhat hacky implementation of this paper (made in a week over a holiday). It's not heavily tested and probably has some bugs still

ESP32 implementation of RustZX Spectrum emulator for ESP32-USB-OTG

RustZX for ESP32 - experimental version Goal of the project: Run ZX Spectrum on ESP32 HW: ESP32 OTG USB with ST7789 display References Rust code for E

Comments
  • advertise client-id using the userAgent field from libp2p

    advertise client-id using the userAgent field from libp2p

    In order to be able to estimate the diversity of Waku clients, it's suggested that each implementation advertises its client-id using the userAgent field from libp2p (i.e. withAgentVersion(agentString) for nim-libp2p), where in our case client-id is waku-rs.

    requirements:

    • we want to be privacy-preserving and we don't want this information to be used against the node, just the client type is advertised, without its release, version, OS or any other sensitive information.
    • user of waku must be free to update this string easily if they doesn't want to display this information.
    • userAgent can be configured with a cli flag, in case someone doesn't want to reveal it.

    ref: https://github.com/waku-org/pm/issues/3

    opened by bernardoaraujor 0
  • Cannot run LightPush and Store at the same time

    Cannot run LightPush and Store at the same time

    It is currently impossible to run LightPush and Store at the same time.

    That is because rust-libp2p doesn't allow for two identical NetworkBehaviour to be operating on the same Swarm.

    Perhaps it is still possible to work around that, however the solution is likely non-trivial and not obvious right now.

    opened by bernardoaraujor 0
Owner
bernardo
ledger plumber 🪠
bernardo
Ray Tracing: The Next Week implementation in Rust

rttnw Ray Tracing: The Next Week implementation in Rust How to run Install Rust: Link here. Run project git clone https://github.com/luliic2/rttnw cd

null 20 Apr 26, 2022
Rust implementation of µKanren, a featherweight relational programming language.

µKanren-rs This is a Rust implementation of µKanren, a featherweight relational programming language. See the original Scheme implementation here for

Eric Zhang 99 Dec 8, 2022
An implementation of Olm and Megolm in pure Rust.

A Rust implementation of Olm and Megolm vodozemac is a Rust implementation of libolm, a cryptographic library used for end-to-end encryption in Matrix

matrix.org 66 Dec 26, 2022
Pure Rust Implementation of secp256k1.

SECP256K1 implementation in pure Rust Cargo Documentation SECP256K1 implementation with no_std support. Currently we have implementation for: Convert

Parity Technologies 141 Dec 21, 2022
A Rust implementation of generic prefix tree (trie) map with wildcard capture support

prefix_tree_map A Rust implementation of generic prefix tree (trie) map with wildcard capture support. Design Trie is a good data structure for storin

EAimTY 3 Dec 6, 2022
fast rust implementation of online nonnegative matrix factorization as laid out in the paper "detect and track latent factors with online nonnegative matrix factorization"

ONMF status: early work in progress. still figuring this out. code still somewhat messy. api still in flux. fast rust implementation of online nonnega

null 2 Apr 10, 2020
A modular implementation of timely dataflow in Rust

Timely Dataflow Timely dataflow is a low-latency cyclic dataflow computational model, introduced in the paper Naiad: a timely dataflow system. This pr

Timely Dataflow 2.7k Dec 30, 2022
An alternative broken buggy Nix implementation in Rust + Java (for evaluation)

An alternative broken buggy Nix implementation in Rust + Java (for evaluation)

Moritz Hedtke 1 Feb 12, 2022
A fast lean and clean modern constraint programming solver implementation (in rust)

MaxiCP-rs This project aims at implementing a fast, and clean constraint programming solver with a focus on correctness, simplicity, maintainability a

Xavier Gillard 5 Dec 10, 2022
The second Rust implementation on GitHub of third-party REST API client for Bilibili.

Bilibili REST API The second Rust implementation on GitHub of third-party REST API client for Bilibili. Designed to be lightweight and efficient. It's

null 4 Aug 25, 2022