Skip to main content

Versioned delta-state synchronization engine for real-time systems, IPC, and embedded applications

Project description

State Sync Diagram

sync-state-bridge

A deterministic, race‑safe state synchronisation bridge for real‑time applications, with built‑in QoS, backpressure handling, and network resilience.

  • Versioned, per‑type sync – each entity type has its own version history.
  • Segmented deltas – send only what changed, with a manifest first.
  • FSM lifecycle – correct handling of add→update→delete sequences.
  • Resilient reconnection – out‑of‑order drop, monotonicity guards, schema mismatch handling.
  • Quality of Service (QoS) – define drop policies (CRITICAL, CONFLATABLE, BEST_EFFORT) per entity type.
  • Backpressure‑aware transports – bounded queues, priority full‑snapshot injection, congestion metrics.
  • Reconnecting client – exponential backoff, version tracking, automatic recovery.
  • Pure Python + JS – no binary dependencies.

Quick Start

Install the server package:

pip install sync-state-bridge

For optional features (faster JSON, serial transport):

pip install sync-state-bridge[fast,serial]

Basic Usage

from sync_state import StateSync, Presets

sync = StateSync()

# Register a snapshot provider with a QoS profile
sync.register_snapshot_provider(
    "vehicles",
    get_vehicles,
    qos=Presets.low_bandwidth()   # optimised for slow links
)

# After changes:
sync.mark_dirty("vehicles")
await sync.commit()

# Stream deltas over HTTP (SSE)
from fastapi import FastAPI, StreamingResponse
app = FastAPI()

@app.get("/stream")
async def stream(versions: str = "{}"):
    return StreamingResponse(
        sync.stream_deltas(json.loads(versions)),
        media_type="text/event-stream"
    )

Socket Server (for low‑level IPC)

from sync_state.transports import StateSyncSocketServer

server = StateSyncSocketServer(sync)
await server.start_tcp(host="0.0.0.0", port=8765)

Reconnecting Client

from sync_state import StateSyncSocketClient

def handle_delta(delta):
    print(f"Update: {delta}")

client = StateSyncSocketClient(
    host="127.0.0.1",
    port=8765,
    on_delta_callback=handle_delta
)
await client.connect_and_listen()

Quality of Service (QoS)

Each entity type can have a QoS profile:

Policy Behaviour
CRITICAL Never dropped; queued until delivered.
CONFLATABLE Intermediate deltas dropped; only the latest is sent (ideal for high‑frequency telemetry).
BEST_EFFORT Discarded immediately under queue pressure.

Pre‑configured profiles (Presets.conservative(), Presets.low_bandwidth(), Presets.high_throughput()) are provided.

Testing

Run the unit tests:

pytest tests/

The test suite covers:

  • Deterministic hashing (canonical_hash)
  • Commit & delta generation
  • Version‑gap full‑snapshot recovery

Demos

  • Chat – real‑time message broadcast with shared history.
  • Game – "Find the Clusters" demonstrating turn‑based sync.

Run the demos:

cd examples/chat && python server.py
cd examples/game && python server.py

Protocol

See PROTOCOL.md for the full SSE‑based delta protocol.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sync_state_bridge-1.0.1.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sync_state_bridge-1.0.1-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file sync_state_bridge-1.0.1.tar.gz.

File metadata

  • Download URL: sync_state_bridge-1.0.1.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.13

File hashes

Hashes for sync_state_bridge-1.0.1.tar.gz
Algorithm Hash digest
SHA256 ceae2e7ffdef1e2167d86382e10cfcbdf9df3cbb9a12e7beab59de8674d499c0
MD5 33d01e1c5946af62d2abbe6b6f08a448
BLAKE2b-256 d4f4ab28251bc6724a76c8750e3d53c1bb9a24c2a25cd8db3799ada5771dbcda

See more details on using hashes here.

File details

Details for the file sync_state_bridge-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for sync_state_bridge-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b474f7611f27e3ee25a1f821c8c18bc192971a89edc2dfe1ee3152b46e663d00
MD5 b0e54c28599ebb0f7956e20d6a2184e6
BLAKE2b-256 c7f8ecdbaee8b1eb7b7884bb5a5e3144d3a2e9b8543f12d491d4d6077e276c6b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page