GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - orbitinghail/sqlsync: SQLSync is a collaborative offline-first wrapper around SQLite. It is designed to synchronize web application state between users, devices, and the edge.

BranchesTags
Open more actions menu

Latest commit

 

History

207 Commits
207 Commits

Folders and files

NameName
Last commit message
Last commit date
.cargo
.cargo
 
 
.github
.github
 
 
.vscode
.vscode
 
 
demo
demo
 
 
examples
examples
 
 
lib
lib
 
 
.editorconfig
.editorconfig
 
 
.gitignore
.gitignore
 
 
.prettierrc
.prettierrc
 
 
.rustfmt.toml
.rustfmt.toml
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
GUIDE.md
GUIDE.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
biome.json
biome.json
 
 
justfile
justfile
 
 
package.json
package.json
 
 
pnpm-lock.yaml
pnpm-lock.yaml
 
 
pnpm-workspace.yaml
pnpm-workspace.yaml
 
 

Repository files navigation

SQLSync

github actions Join the SQLSync Community

SQLSync is a collaborative offline-first wrapper around SQLite designed to synchronize web application state between users, devices, and the edge.

Example use cases

  • A web app with a structured file oriented data model like Figma. Each file could be a SQLSync database, enabling real-time local first collaboration and presence
  • Running SQLSync on the edge with high tolerance for unreliable network conditions
  • Enabling optimistic mutations on SQLite read replicas

SQLSync Demo

The best way to get a feel for how SQLSync behaves is to play with the Todo list demo. Clicking this link will create a unique to-do list and redirect you to its unique URL. You can then share that URL with friends or open it on multiple devices (or browsers) to see the power of offline-first collaborative SQLite.

You can also learn more about SQLSync and it's goals by watching Carl's WasmCon 2023 talk. The recording can be found here.

Features

  • Eventually consistent SQLite
  • Optimistic reads and writes
  • Reactive query subscriptions
  • Real-time collaboration
  • Offline-first
  • Cross-tab sync
  • React library

If you are interested in using or contributing to SQLSync, please join the Discord community and let us know what you want to build. We are excited to collaborate with you!

Installation & Getting started

Please refer to the guide to learn how to add SQLSync to your application.

Tips & Tricks

How to debug SQLSync in the browser

By default SQLSync runs in a shared web worker. This allows the database to automatically be shared between different tabs, however results in making SQLSync a bit harder to debug.

The easiest way is to use Google Chrome, and go to the special URL: chrome://inspect/#workers. On that page you'll find a list of all the running shared workers in other tabs. Assuming another tab is running SQLSync, you'll see the shared worker listed. Click inspect to open up dev-tools for the worker.

My table is missing, or multiple statements aren't executing

SQLSync uses rusqlite under the hood to run and query SQLite. Unfortunately, the execute method only supports single statements and silently ignores trailing statements. Thus, if you are using execute!(...) in your reducer, make sure that each call only runs a single SQL statement.

For example:

// DON'T DO THIS:
execute!("create table foo (id int); create table bar (id int);").await?;

// DO THIS:
execute!("create table foo (id int)").await?;
execute!("create table bar (id int)").await?;

Community & Contributing

If you are interested in contributing to SQLSync, please join the Discord community and let us know what you want to build. All contributions will be held to a high standard, and are more likely to be accepted if they are tied to an existing task and agreed upon specification.

Join the SQLSync Community

About

SQLSync is a collaborative offline-first wrapper around SQLite. It is designed to synchronize web application state between users, devices, and the edge.

sqlsync.dev

Topics

collaborativedatabaselocal-firstoffline-firstrelational-databasesqlsqlitesqlsync

Resources

Readme
Apache-2.0 license

Code of conduct

Code of conduct

Contributing

Contributing
Activity
Custom properties

Stars

2.9k stars

Watchers

31 watching

Forks

41 forks
Report repository

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.