entidb_sync_server 2.0.0-alpha.3

Reference HTTP sync server for EntiDB
Documentation

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.