5.4 KiB
title | hide_table_of_contents |
---|---|
JavaScript Waku SDK | true |
:::caution
Currently, the JavaScript Waku SDK (@waku/sdk
) is NOT compatible with React Native. We plan to add support for React Native in the future.
:::
The JavaScript Waku SDK (@waku/sdk
) provides a TypeScript implementation of the Waku protocol designed for web browser environments. Developers can seamlessly integrate Waku functionalities into web applications, enabling efficient communication and collaboration among users using the @waku/sdk
package.
Installation
Install the @waku/sdk
package using your preferred package manager:
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
npm install @waku/sdk
yarn add @waku/sdk
You can also use the @waku/sdk
package via a CDN without installing it on your system:
import * as waku from "https://unpkg.com/@waku/sdk@latest/bundle/index.js";
Message structure
We recommend creating a message structure for your application using Protocol Buffers for the following reasons:
- Consistency: Ensures uniform message format for easy parsing and processing.
- Interoperability: Facilitates effective communication between different parts of your application.
- Compatibility: Allows smooth communication between older and newer app versions.
- Payload Size: Minimizes payload overhead, especially for byte arrays, unlike JSON which adds significant overhead.
To get started, install the protobufjs
package using your preferred package manager:
npm install protobufjs
yarn add protobufjs
You can also use the protobufjs
package via a CDN without installing it on your system:
// Import the CDN
import "https://cdn.jsdelivr.net/npm/protobufjs@latest/dist/protobuf.min.js";
<!-- Or include the protobufjs script -->
<script src="https://cdn.jsdelivr.net/npm/protobufjs@latest/dist/protobuf.min.js"></script>
Getting started
Have a look at the quick start guide and comprehensive tutorials to learn how to build applications using @waku/sdk
:
Guide | Description |
---|---|
Send and Receive Messages Using Light Push and Filter | Learn how to send and receive messages on light nodes using the Light Push and Filter protocols |
Retrieve Messages Using Store Protocol | Learn how to retrieve and filter historical messages on light nodes using the Store protocol |
Encrypt, Decrypt, and Sign Your Messages | Learn how to use the @waku/message-encryption package to encrypt, decrypt, and sign your messages |
Build React DApps Using @waku/react | Learn how to use the @waku/react package seamlessly integrate @waku/sdk into a React application |
Scaffold DApps Using @waku/create-app | Learn how to use the @waku/create-app package to bootstrap your next @waku/sdk project from various example templates |
Bootstrap Nodes and Discover Peers | Learn how to bootstrap your node using Static Peers and discover peers using DNS Discovery |
Run @waku/sdk in a NodeJS Application | Learn our suggested approach for using the @waku/sdk package within a NodeJS application |
Debug Your Waku DApp and WebSocket | Learn how to troubleshoot your Waku DApp using debug logs and check WebSocket connections in nwaku |
Manage Your Filter Subscriptions | Learn how to manage filter subscriptions and handle node disconnections in your application |
:::tip Until node incentivisation is in place, you should operate extra nodes alongside the ones provided by the Waku Network. When running a node, we recommend using the DNS Discovery and Static Peers configuration to connect to both the Waku Network and your node. :::
Get help and report issues
To engage in general discussions, seek assistance, or stay updated with the latest news, visit the #support
and #js-waku-contribute
channels on the Waku Discord.
If you discover bugs or want to suggest new features, do not hesitate to open an issue in the js-waku repository. Your feedback and contributions are highly valued and will help improve the @waku/sdk
package.