JavaScript implementation of Waku v2 https://js.waku.org
Go to file
Franck Royer 1e1ad0332c
Messages do not replace each other
2021-04-22 10:58:56 +10:00
.github Setup CI for web-chat 2021-04-21 14:32:52 +10:00
.vscode Initial commit 2021-03-05 09:34:01 +11:00
nim-waku@fb2ea06a4f Update waku store as per the latest spec 2021-04-20 15:38:40 +10:00
proto Update waku store as per the latest spec 2021-04-20 15:38:40 +10:00
src Must pass filter.all to connect to ip4 ws peer 2021-04-22 10:39:05 +10:00
web-chat Messages do not replace each other 2021-04-22 10:58:56 +10:00
.cspell.json Allow passing transports, enable websocket transport 2021-04-15 13:56:07 +10:00
.editorconfig Initial commit 2021-03-05 09:34:01 +11:00
.eslintrc.json Allow constant condition for loops 2021-04-13 15:03:14 +10:00
.gitignore Check in protobuf generated files 2021-04-20 15:32:10 +10:00
.gitmodules Re-add nim-waku submodule 2021-03-19 11:23:34 +11:00
.mocharc.json Partial conversion to ts-node/mocha 2021-03-22 15:05:03 +11:00
.prettierignore Use waku messages over waku relay 2021-03-10 16:22:49 +11:00
README.md Update waku store as per the latest spec 2021-04-20 15:38:40 +10:00
bors.toml Setup bors 2021-03-24 15:59:27 +11:00
buf.gen.yaml Implement chat message protobuf to support nick and time handles 2021-04-01 11:01:15 +11:00
buf.yaml Use waku messages over waku relay 2021-03-10 16:22:49 +11:00
jest.config.js Migrate to jest for better debugging experience 2021-03-17 15:34:58 +11:00
package-lock.json Upgrade libp2p to 0.31.0-rc.3 2021-04-21 16:17:32 +10:00
package.json Upgrade libp2p to 0.31.0-rc.3 2021-04-21 16:17:32 +10:00
tsconfig.json Revert unnecessary ts config changes 2021-03-22 22:06:10 +11:00
tsconfig.module.json Initial commit 2021-03-05 09:34:01 +11:00

README.md

js-waku

A JavaScript implementation of the Waku v2 protocol.

Waku Protocol Support

You can track progress on the project board.

  • ✔: Supported
  • 🚧: Implementation in progress
  • : Support is not planned
Spec Implementation Status
6/WAKU1
7/WAKU-DATA
8/WAKU-MAIL
9/WAKU-RPC
10/WAKU2 🚧
11/WAKU2-RELAY
12/WAKU2-FILTER
13/WAKU2-STORE ✔ (querying node only)
14/WAKU2-MESSAGE
15/WAKU2-BRIDGE
16/WAKU2-RPC
17/WAKU2-RLNRELAY
18/WAKU2-SWAP

Bugs, Questions & Features

If you encounter any bug or would like to propose new features, feel free to open an issue.

For support, questions & more general topics, please join the discussion on the Vac forum (use #js-waku tag).

Examples

Chat app

A node chat app is provided as a working example of the library. It is interoperable with the nim-waku chat app example. To run the chat app:

git clone https://github.com/status-im/js-waku/ ; cd js-waku
npm install
npm run chat -- --staticNode /ip4/134.209.139.210/tcp/30303/p2p/16Uiu2HAmPLe7Mzm8TsYUubgCAW1aJoeFScxrLj8ppHFivPo97bUZ

You can also specify an optional listenAddr parameter (.e.g --listenAddr /ip4/0.0.0.0/tcp/55123). This is only useful if you want a remote node to dial to your chat app, it is not necessary in normal usage when you just connect to the fleet.

Contributing

Build & Test

To build and test this repository, you need:

To ensure interoperability with nim-waku, some tests are run against a nim-waku node. This is why nim-waku is present as a git submodule, which itself contain several submodules. At this stage, it is not possible to exclude nim-waku tests, hence git submodule update --init --recursive is run before testing (see pretest script).

To build nim-waku, you also need Rust.

Guidelines