Skip to main content

Module server

Module server 

Source
Expand description

Braid HTTP server implementation.

This module provides server-side support for the Braid protocol using Axum. It enables applications to:

  • Track resource versions as a directed acyclic graph (DAG)
  • Send updates as snapshots or patches
  • Stream subscription updates to clients (HTTP 209)
  • Handle version conflicts with merge strategies
  • Manage resource state with CRDT support

§Module Organization

server/
├── middleware        - BraidLayer and BraidState extractor
├── send_update       - SendUpdateExt trait for responses
├── parse_update      - ParseUpdateExt trait for requests
├── config            - ServerConfig options
├── resource_state    - ResourceStateManager for CRDT state
└── conflict_resolver - ConflictResolver for merging

Re-exports§

pub use conflict_resolver::ConflictResolver;
pub use resource_state::ResourceStateManager;

Modules§

conflict_resolver
Conflict resolution for Diamond-Types CRDT merges.
multiplex
Server-side Braid Multiplexing implementation.
resource_state
Per-resource state management with thread-safe CRDT synchronization.
subscription
Server-side subscription utilities for Braid protocol.
utils
Server utilities for Braid protocol.

Structs§

BraidLayer
Axum middleware layer for Braid protocol support.
BraidState
Braid protocol state extracted from HTTP request headers.
IsFirefox
Newtype wrapper indicating Firefox browser detection.
ServerConfig
Server configuration for Braid-HTTP support.
UpdateResponse

Traits§

ParseUpdateExt
Extension trait for Axum request to parse Braid updates.
SendUpdateExt
Extension trait for Axum responses to send Braid updates.

Type Aliases§

UpdateBroadcast
Broadcast channel for sending updates to multiple subscribers.