JavaScript implementation of Waku v2 https://js.waku.org
Go to file
bors[bot] 2c72c6d388
Merge #113
113: Use waku store to retrieve archived messages in browser app r=D4nte a=D4nte

Resolves #69 

Co-authored-by: Franck Royer <franck@status.im>
2021-05-03 04:11:23 +00:00
.github Test are too unstable to run on different environment 2021-04-29 16:40:54 +10:00
.vscode Initial commit 2021-03-05 09:34:01 +11:00
nim-waku@967db6d610 Enable pubsub topic filter in history queries 2021-04-29 16:52:55 +10:00
proto Enable pubsub topic filter in history queries 2021-04-29 16:52:55 +10:00
src Enable pubsub topic filter in history queries 2021-04-29 16:52:55 +10:00
web-chat Use store waku to get older messages 2021-05-03 14:06:51 +10:00
.cspell.json Add new word 2021-04-22 21:06:28 +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
CONTRIBUTING.md Clarify expectations around commit patches 2021-04-29 16:53:49 +10:00
LICENSE-APACHE-v2 Apply MIT or Apache V2.0 License 2021-04-28 21:27:26 +10:00
LICENSE-MIT Apply MIT or Apache V2.0 License 2021-04-28 21:27:26 +10:00
README.md Clarify expectations around commit patches 2021-04-29 16:53:49 +10:00
bors.toml Test are too unstable to run on different environment 2021-04-29 16:40:54 +10: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
package-lock.json Remove unused package 2021-04-29 21:24:43 +10:00
package.json Remove unused package 2021-04-29 21:24:43 +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

Web Chat App (ReactJS)

A ReactJS web app is provided as an a show case of the library used in the browser.

A deployed version is available at https://status-im.github.io/js-waku/ Do note that due to some technical restrictions, it does not currently work out-of-the-box. If you wish to try it out, follow the instructions on the Vac forum. It is currently unstable and likely to break.

To run a development version locally, do:

git clone https://github.com/status-im/js-waku/ ; cd js-waku
npm install
npm run build
cd web-chat
npm install
npm run start

Then, you can use /help to change your nick and connect to a server.

CLI Chat App (NodeJS)

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, first ensure you have Node.js v14 or above:

node --version

Then, install and run:

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/7777/ws). 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

See CONTRIBUTING.md.

License

Licensed and distributed under either of

or

at your option. These files may not be copied, modified, or distributed except according to those terms.