Skip to content
trainstarPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Synchro

Synchro

Release CI

Synchro synchronizes PostgreSQL data with local SQLite databases in native applications. Applications can read and write local data offline, then synchronize through an authenticated HTTP adapter.

PostgreSQL owns server synchronization through the Synchro extension. Swift and Kotlin own local storage, change capture, durable queues, and synchronization. React Native wraps those native clients. The Go adapter handles HTTP and authentication without a separate synchronization service.

Get started

Follow the first-sync tutorial. It connects a client, changes a note offline, and verifies the change on the server and another client.

These guides describe the Synchro 0.4.0-rc.4 source and package interfaces. Before that version is published, use the documented local-consumer installation. Do not substitute an older published package into the current tutorial.

Supported environments

Component Supported environment
PostgreSQL extension and Go tools PostgreSQL 18, Ubuntu 24.04, Linux x64
Swift client iOS 17 and current stable iOS, Swift 6 toolchain
Kotlin client Android API 24 and current stable Android
React Native bridge React Native 0.82.1 and 0.88.x, current stable iOS and Android

macOS hosts Apple development and validation. It is not a supported PostgreSQL deployment target. See the support policy for dependency constraints and support boundaries.

Documentation

Goal Guide
Understand component responsibilities Architecture
Assign private and shared data Scope modeling
Bundle an initial SQLite database Portable seeds
Use the client SQL APIs Application SQL limits
Apply a group of writes all together or not at all Atomic write transactions
Assign scopes from application data Assignment function
Configure and operate the server Configuration
Implement or inspect protocol behavior Wire protocol and client contract
Understand validation evidence Testing evidence
Review the changes in each release CHANGELOG.md
Prepare or recover a release RELEASE.md

Scopes are server-defined. Clients cannot supply arbitrary replication predicates. The server assigns scopes to each user from the default user scope, shared scopes, explicit grants, and an optional assignment function that reads application data. An atomic write transaction makes the server apply all of its synced mutations or none of them. Synchro does not provide a browser synchronization client or support server databases other than PostgreSQL.

Development and contributions

The Makefile is the supported build, lint, and test entry point. Use the local validation instructions before running integration tests. Tests require disposable fixtures, not an application database. The client overview identifies the native and bridge packages.

Report reproducible problems through GitHub Issues. Include the version, platform, reproduction steps, and expected result. Do not include credentials or private application data. Keep pull requests focused and run the applicable Make checks. Add a CHANGELOG.md entry under Unreleased for each change that applications or operators can observe. Target ordinary development pull requests at dev. master is the stable default branch and accepts checked release promotions and stable hotfixes. Return stable hotfixes to dev so subsequent releases retain their corrections.

License

Synchro uses the MIT License.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages