Skip to content

Latest commit

 

History

History
91 lines (62 loc) · 3.99 KB

File metadata and controls

91 lines (62 loc) · 3.99 KB

PowerSync SDK for Web

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.

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.

Installation

Install Package

npm install @powersync/web

Encryption with Multiple Ciphers

To enable encryption you need to specify an encryption key when instantiating the PowerSync database.

The PowerSync Web SDK uses the ChaCha20 cipher algorithm by default.

export const db = new PowerSyncDatabase({
  // The schema you defined
  schema: AppSchema,
  database: {
    // Filename for the SQLite database — it's important to only instantiate one instance per file.
    dbFilename: 'example.db'
    // Optional. Directory where the database file is located.'
    // dbLocation: 'path/to/directory'
  },
  // Encryption key for the database.
  encryptionKey: 'your-encryption-key'
});

// If you are using a custom WASQLiteOpenFactory or WASQLiteDBAdapter, you need specify the encryption key inside the construtor
export const db = new PowerSyncDatabase({
  schema: AppSchema,
  database: new WASQLiteOpenFactory({
    //new WASQLiteDBAdapter
    dbFilename: 'example.db',
    vfs: WASQLiteVFS.OPFSCoopSyncVFS,
    // Encryption key for the database.
    encryptionKey: 'your-encryption-key'
  })
});

Webpack

See the example Webpack config for details on polyfills and requirements.

Vite

See the example Vite config for details on polyfills and requirements.

Getting Started

Our full SDK reference contains everything you need to know to get started implementing PowerSync in your project.

Public Workers

For some frameworks, it may be required to configure the web workers (see the docs). The @powersync/web package includes a CLI utility which can copy the required assets to the public directory (configurable with the --output option).

pnpm powersync-web copy-assets

Changelog

A changelog for this SDK is available here.

API Reference

The full API reference for this SDK can be found here.

Examples

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.

Found a bug or need help?

  • 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.