Expand description
§panproto-xrpc
XRPC client for panproto node VCS operations.
Implements the dev.panproto.node.* XRPC endpoints for push/pull/clone
of panproto-vcs objects between local stores and remote nodes.
§Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | getObject | Fetch content-addressed object (msgpack) |
| POST | putObject | Store object (auth required) |
| GET | getRef | Resolve ref to object ID |
| POST | setRef | Update ref (auth required) |
| GET | listRefs | List all refs |
| GET | getHead | Get HEAD state |
| POST | negotiate | Have/want negotiation for efficient transfer |
| GET | getRepoInfo | Repository metadata |
| GET | listCommits | Walk commit history from a ref |
| GET | diffCommits | Schema diff between two commits |
§Push flow
- List local refs
- Negotiate (send local object IDs, get needed IDs)
putObjectfor each needed objectsetReffor each ref
§Pull flow
listRefson remote- Negotiate (send local object IDs, want remote refs)
getObjectfor each needed object, store locally- Update local refs
Re-exports§
pub use client::CommitEntry;pub use client::CommitIdentity;pub use client::DiffCommitsResult;pub use client::FileDiff;pub use client::ListCommitsResult;pub use client::NegotiateResult;pub use client::NodeClient;pub use client::PullResult;pub use client::PushResult;pub use client::RepoInfo;pub use error::XrpcError;