PowerSync is a Postgres-SQLite sync layer, which helps developers to create local-first real-time reactive apps that work seamlessly both online and offline.
This package (packages/web
) is the PowerSync SDK for JavaScript Web clients. It is an extension of packages/common
.
See a summary of features here.
npm install @powersync/web
This SDK currently requires @journeyapps/wa-sqlite
as a peer dependency.
Install it in your app with:
npm install @journeyapps/wa-sqlite
Note: Beta Release - WebSockets are currently in a beta release. It should be safe to use in production if sufficient testing is done on the client side.
This SDK connects to a PowerSync instance via HTTP streams (enabled by default) or WebSockets. The WebSocket connection method requires Buffer
to be available in the global scope. When multiple tabs are used the shared web worker will apply a polyfill in its own scope, but the Buffer
class should be polyfills in the application for cases where multiple tabs are not supported.
Install a suitable Buffer implementation
npm install buffer
Apply it in your application if not yet provided
import { Buffer } from 'buffer';
if (typeof self.Buffer == 'undefined') {
self.Buffer = Buffer;
}
See the example Webpack config for details on polyfills and requirements.
See the example Vite config for details on polyfills and requirements.
Our full SDK reference contains everything you need to know to get started implementing PowerSync in your project.
A changelog for this SDK is available here.
The full API reference for this SDK can be found here.
For example projects built with PowerSync on Web, see our Demo Apps / Example Projects gallery. Most of these projects can also be found in the demos/
directory.
- Join our Discord server where you can browse topics from our community, ask questions, share feedback, or just say hello :)
- Please open a GitHub issue when you come across a bug.
- Have feedback or an idea? Submit an idea via our public roadmap or schedule a chat with someone from our product team.