web3-waku
v1.0.0
Published
TypeScript implementation of the Waku v2 protocol
Downloads
2
Maintainers
Readme
js-waku
A JavaScript implementation of the Waku v2 protocol.
Documentation
Latest main
branch documentation can be found at https://status-im.github.io/js-waku/docs/.
Docs can also be generated locally using:
npm install
npm run doc
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/
To run a development version locally, do:
git clone https://github.com/status-im/js-waku/ ; cd js-waku
npm install # Install dependencies for js-waku
npm run build # Build js-waku
cd examples/web-chat
npm install # Install dependencies for the web app
npm run start # Start development server to serve the web app on http://localhost:3000/js-waku
Use /help
to see the available commands.
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 # Install dependencies for js-waku
npm run build # Build js-waku
cd examples/cli-chat
npm install # Install dependencies for the cli app
npm run start -- --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
- MIT license: LICENSE-MIT or http://opensource.org/licenses/MIT
or
- Apache License, Version 2.0, (LICENSE-APACHE-v2 or http://www.apache.org/licenses/LICENSE-2.0)
at your option. These files may not be copied, modified, or distributed except according to those terms.