From c546f0e113a106439ebeecaafabc029339097767 Mon Sep 17 00:00:00 2001 From: "fryorcraken.eth" Date: Fri, 28 Oct 2022 14:17:15 +1100 Subject: [PATCH] doc: update readme --- README.md | 97 +++++++++++++++++++++++++++++++++++++++++------- rln-js/README.md | 13 ++++++- 2 files changed, 95 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index abe2487..6f74326 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,93 @@ +# Js-Waku Examples + ## Examples Here is the list of the examples using [`js-waku`](https://www.npmjs.com/package/js-waku) and the features they demonstrate: -- [Web Chat App](web-chat): Group chat, React/TypeScript, Relay, Store. -- [Ethereum Private Message Web App](eth-pm): Private Messaging, React/TypeScript, Light Push, Signature with Web3, Asymmetric Encryption. -- [Minimal ReactJS Waku Relay App](relay-reactjs-chat): - Group chat, - React/JavaScript, - `create-react-app`/`react-scripts` 5.0.0, - Waku Relay - Protobuf using `protons`, - No async/await syntax. -- [Minimal ReactJS Waku Store App](store-reactjs-chat): Waku Store, React/JavaScript, Protobuf using `protons`. -- [Using Waku Store in JavaScript](store-js): Stop retrieving results from Waku Store on condition, Use minified bundle from Unpkg.com, JavaScript. -- [Using Waku Relay in JavaScript](relay-js): Receive and send text messages with Waku Relay, Use minified bundle from Unpkg.com, JavaScript. - See https://docs.wakuconnect.dev/docs/examples/ for more examples. +### Web Chat App + +- [code](web-chat) +- [website](https://examples.waku.org/web-chat) +- Demonstrates: Group chat, React/TypeScript, Relay, Store. + +### Ethereum Private Messaging + +End-to-end encrypted communication between two Ethereum addresses. + +- [code](eth-pm) +- [website](https://examples.waku.org/eth-pm) +- Demonstrates: Private Messaging, React/TypeScript, Light Client, Signature with Web3, Asymmetric Encryption. + +### Waku Light Client in JavaScript + +Send messages between several users (or just one) using light client targetted protocols. + +- [code](light-js) +- [website](https://examples.waku.org/light-js) +- Demonstrates: Waku Light node: Filter + Light Push, Pure Javascript/HTML using ESM/unpkg bundle. + +### Minimal Angular (v13) Waku Relay + +A barebone messaging app to illustrate the [Angular Relay guide](https://docs.wakuconnect.dev/docs/guides/10_angular_relay/). + +- [code](relay-angular-chat) +- [website](https://examples.waku.org/relay-angular-chat) +- Demonstrates: Group messaging, Angular, Waku Relay, Protobuf using `protobufjs`, No async/await syntax. + +### Waku Relay in JavaScript + +This example uses Waku Relay to send and receive simple text messages. + +- [code](relay-js) +- [website](https://examples.waku.org/relay-js) +- Demonstrates: Waku Relay, Pure Javascript/HTML using ESM/unpkg bundle. + +### Waku Relay in ReactJS + +A barebone chat app to illustrate the [ReactJS Relay guide](https://docs.wakuconnect.dev/docs/guides/07_reactjs_relay/). + +- [code](relay-reactjs-chat) +- [website](https://examples.waku.org/relay-reactjs-chat) +- Demonstrates: Group chat, React/JavaScript, Waku Relay, Protobuf using `protobufjs`. + +### Using [RLN](https://rfc.vac.dev/spec/32/) in JavaScript + +> Rate limiting nullifier (RLN) is a construct based on zero-knowledge proofs +> that provides an anonymous rate-limited signaling/messaging framework +> suitable for decentralized (and centralized) environments + +Use RLN in the browser, compatible with nwaku chat2 and go-waku chat2 RLN implementations. + +- [code](rln-js) +- [website](https://examples.waku.org/rln-js) +- Demonstrates: + - RLN: + - Generate credentials + - Insert membership to smart contract (Goerli testnet) + - Retrieve smart contract state + - Generate and send proofs + - Verify incoming proofs +- Pure Javascript/HTML using ESM/unpkg bundle. + +### Using Waku Store in JavaScript + +This example uses Waku Store to retrieve the latest ping relay message (used for keep alive purposes) and displays its timestamp. + +- [code](store-js) +- [website](https://examples.waku.org/store-js) +- Demonstrates: Waku Store: Using a condition to stop retrieving results from Waku Store, Pure Javascript/HTML using ESM/unpkg bundle. + +### Minimal ReactJS Waku Store App + +A simple app that retrieves chat messages using [Waku Store](https://rfc.vac.dev/spec/13/) +to illustrate the [Retrieve Messages Using Waku Store With ReactJS guide](https://docs.wakuconnect.dev/docs/guides/08_reactjs_store/). + +- [code](store-reactjs-chat) +- [website](https://examples.waku.org/store-reactjs-chat) +- Demonstrates: React/JavaScript, Waku Store, Protobuf using `protobufjs`, no async/await syntax. + # Continuous Integration The `master` branch is being built by Jenkins CI: diff --git a/rln-js/README.md b/rln-js/README.md index 4053d34..d8107a2 100644 --- a/rln-js/README.md +++ b/rln-js/README.md @@ -1,8 +1,17 @@ -# Using RLN in JavaScript +# Using [RLN](https://rfc.vac.dev/spec/32/) in JavaScript + +> Rate limiting nullifier (RLN) is a construct based on zero-knowledge proofs +> that provides an anonymous rate-limited signaling/messaging framework +> suitable for decentralized (and centralized) environments **Demonstrates**: -- RLN: Generate proof +- RLN: + - Generate credentials + - Insert membership to smart contract (Goerli testnet) + - Retrieve smart contract state + - Generate and send proofs + - Verify incoming proofs - Pure Javascript/HTML. - Use minified bundle of js from unpkg.com, no import, no package manager.