Expand description
Heroforge repository synchronization.
This module implements the Heroforge sync protocol for pushing and pulling artifacts between repositories over QUIC.
§Protocol Overview
Heroforge sync uses a simple line-oriented protocol:
- Client sends login credentials and push/pull cards
- Client sends igot cards for artifacts it has
- Client sends gimme cards for artifacts it wants
- Server responds with file cards containing requested artifacts
- Server sends igot cards for artifacts client doesn’t have
§Example (Builder API)
use heroforge_core::Repository;
let repo = Repository::open("local.forge")?;
// Sync over QUIC
repo.sync()
.to("quic://example.com:4443/repo")
.push()?;Structs§
- Message
- A sync protocol message (request or response).
- Sync
Builder - Builder for sync operations.
- Sync
Client - A sync client for communicating with a Heroforge server.
- Sync
Result - Result of a sync operation.
Enums§
- Card
- A card in the Heroforge sync protocol.
- Sync
Protocol - Protocol to use for sync.