JavaScript implementation of Waku v2 https://js.waku.org
Go to file
Franck Royer e534e0a4c8
Do not rely on nim-waku trace logs for test purposes
2021-04-13 09:51:41 +10:00
.github Build nim-waku if the binary cannot be executed 2021-03-26 14:35:18 +11:00
.vscode Initial commit 2021-03-05 09:34:01 +11:00
nim-waku@5747ff5be0 Do not rely on nim-waku trace logs for test purposes 2021-04-13 09:51:41 +10:00
proto Implement Waku store protocol 2021-04-09 16:54:30 +10:00
src Do not rely on nim-waku trace logs for test purposes 2021-04-13 09:51:41 +10:00
.cspell.json Implement Waku store protocol 2021-04-09 16:54:30 +10:00
.editorconfig Initial commit 2021-03-05 09:34:01 +11:00
.eslintrc.json Use ts-proto 2021-03-22 15:49:58 +11:00
.gitignore Use ts-proto 2021-03-22 15:49:58 +11: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 Provide status on waku protocol support 2021-04-09 16:04:29 +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 Implement Waku store protocol 2021-04-09 16:54:30 +10:00
package.json Implement Waku store protocol 2021-04-09 16:54:30 +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

  • ✔: 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 🚧
14/WAKU2-MESSAGE
15/WAKU2-BRIDGE
16/WAKU2-RPC
17/WAKU2-RLNRELAY
18/WAKU2-SWAP

This is a Work In Progress

You can track progress on the project board.

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:

npm install
npm run chat:app -- --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

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.