TypeScript Apache-2.0

powersync-js

PowerSync client SDKs for JavaScript clients

P

powersync-ja

Dernière activité 28 sept. 2026
powersync-ja/powersync-js

725

étoiles

92

forks

61

issues ouvertes

local-firstlocal-storageofflineoffline-firstpowersyncsqlsqlitestate-managementsync

Ce README est souvent en anglais.

PowerSync keeps a client-side SQLite database in sync with your backend database. Changes appear across users and devices in real-time, user interactions feel instant and your app continues to work even when offline. Supports Postgres, MongoDB, MySQL, and SQL Server. Client SDKs are available for a wide range of environments including web, mobile, desktop, headless and embedded.

PowerSync JavaScript SDKs

powersync-js is the monorepo for PowerSync JavaScript SDKs.

Monorepo Structure: Packages

Demo Apps / Example Projects

Demo applications are located in the demos/ directory. Also see our Demo Apps / Example Projects gallery which lists all projects by the backend and client-side framework they use.

React Native

Web

Electron

Capacitor

Node

Tools

  • tools/diagnostics-app: A standalone web app that presents stats about a user's local database (incl. tables and sync buckets).

Development

This monorepo uses pnpm.

Install workspace dependencies

pnpm install

Build packages

pnpm build:packages

Tests

Some packages use Playwright for testing. Install Playwright dependencies with:

pnpm exec playwright install-deps
pnpm exec playwright install

Versioning

Development Packages

Development packages can be published by manually triggering the release workflow. Development packages are versioned as 0.0.0-{tag}-DATETIMESTAMP.

For technical npm reasons, publishing dev and release packages needs to happen from within a single workflow. release.yml contains checks to only release dev packages when triggered by workflow_dispatch.

Production Packages

Pull requests should contain Changesets for changed packages.

Add changesets with

pnpm changeset add

Merging a PR with Changesets will automatically create a PR with version bumps. That PR will be merged when releasing.

React Native Quick SQLite Development

By default, the PowerSync React Native SDK uses a fork of react-native-quick-sqlite

Testing live development changes to @journeyapps/react-native-quick-sqlite will not work with standard yarn link commands. Metro does not work well with symlinks react/metro#286.

The process of releasing development packages for @journeyapps/react-native-quick-sqlite for each change can be tedious and slow. A faster (and hackier) method is to use mtsl which will watch and copy the package into this workspace's node_modules.

npm install -g mtsl
mtsl add -s "[source path to your react-native-quick-sqlite repo folder]" -d "[this workspaces root node_modules folder]"/@journeyapps/react-native-quick-sqlite
mtsl start "[the id returned from step above]"

Projets similaires

PowerSync client SDK for Flutter/Dart

Dartdartflutterlocal-first
Ppowersync-ja
253 étoiles41

⬡ JavaScript client library for integrating remoteStorage in apps

JavaScriptindexeddbjavascriptlocalstorage
Rremotestorage
2,4 k étoiles143

PowerSync Service is the server-side component of the PowerSync sync engine.

TypeScript
Ppowersync-ja
387 étoiles57