entidb_sync_server

Crates.ioentidb_sync_server
lib.rsentidb_sync_server
version2.0.0-alpha.3
created_at2025-12-25 14:53:05.254565+00
updated_at2026-01-03 03:38:54.138876+00
descriptionReference HTTP sync server for EntiDB
homepage
repositoryhttps://github.com/Tembocs/entidb
max_upload_size
id2004629
size67,017
Tembo (Tembocs)

documentation

README

entidb_sync_server

Reference HTTP sync server for EntiDB.

Overview

This crate provides a reference implementation of the EntiDB sync server. It uses EntiDB core for persistence (no external database) and implements the pull/push protocol over HTTP with CBOR encoding.

Features

  • EntiDB-backed: Uses the same EntiDB core as clients
  • HTTP endpoints: Pull and push operations via REST
  • Authentication: HMAC-based request signing
  • Conflict policy: Server-authoritative conflict resolution

Endpoints

  • POST /pull - Retrieve operations since client cursor
  • POST /push - Submit local operations for server processing

Server Authority

The sync server is authoritative for conflict resolution. When concurrent modifications are detected, the server's policy determines the winner.

Usage

use entidb_sync_server::SyncServer;

let server = SyncServer::new(database, config);
server.run("0.0.0.0:8080").await?;

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Commit count: 0

cargo fmt