HPPR Specs
Tags: overview
HPPR is Hyper Plex Packet Repository.
Purpose
HPPR specifies a layered protocol for storing, signing, addressing, exchanging, and routing content-addressed packets.
The specs are written for implementers of packet libraries, repository daemons, clients, transports, and route-aware applications.
Architecture at a Glance
- Encoding and crypto: B64A and HSB3.
- Stored packet format: Blob, Plex, and Seal packets.
- Addressing: hash addresses and coordinates.
- Command messages and flows: session and message command execution.
- Transports: TCP/WebSocket/QUIB session flow; HTTP/UDP message flow.
- Repository service: commands, envelopes, ACL, Ring1/Ring2 auth, storage.
- Higher-level conventions: links, chunks, replication, admin workflows, routes, names, and attestations.
Reader Paths
| Reader | Start with | Then read |
|---|---|---|
| Packet-library implementer | 006, 009, 010 | 011, 012, 070 |
| Client implementer | 020, 030, 031, 032 | 033-036, 041-045 |
| Repository implementer | 040-045 | 050-060, 080-090 |
| Route/application implementer | 100 | 110 |
Conformance Profiles
MUST and SHOULD requirements apply to implementations claiming the relevant profile.
| Profile | Required specs |
|---|---|
| Packet profile | 006, 009, 010 |
| Repository client profile | 020, 030-035, 041-045 |
| Repository service profile | 040-045, 050-060, 080-090 |
| QUIB profile | 036 plus repository session-flow specs when used with hpprd |
| Route resolver profile | 100, 110 plus repository client profile |
Reading Order
The specs are numbered in recommended reading order. Tags describe each spec’s primary layer or role.
| No. | Spec | Tags |
|---|---|---|
| 006 | Base64-Ascend | packet, encoding |
| 009 | HSB3 Signatures | packet, crypto |
| 010 | Packets | packet, stored-format |
| 011 | Basic Packet Examples | packet, example |
| 012 | Create Examples | packet, example |
| 020 | Unified Resource Coordinate | packet, addressing |
| 030 | Command Messages | wire, command |
| 031 | Command Flows | wire, command-flow |
| 032 | HELLO and Endpoint Metadata | wire, command-flow, metadata |
| 033 | Via Syntax | wire, transport |
| 034 | HTTP Transport | wire, transport, message-flow |
| 035 | UDP Datagram Transport | wire, transport, message-flow |
| 036 | QUIB | wire, transport, session-flow |
| 040 | Repository Service | repo, overview |
| 041 | Repository Commands | repo, command |
| 042 | Repository Request Envelopes | repo, command-flow, auth |
| 043 | Repository Session Flow | repo, command-flow, session |
| 044 | Repository Message Flow | repo, command-flow, message |
| 045 | Repository Identity Text | repo, auth, client |
| 050 | Repository Access Control | repo, auth, policy |
| 051 | Ring1 Repository Authentication | repo, auth |
| 052 | Ring2 Group Authentication | repo, auth |
| 060 | Filesystem Repository | repo, storage |
| 070 | Packet Links and Chunks | packet, content-convention |
| 080 | Replication and Streams | repo, command, streaming |
| 090 | Admin and Join Conventions | repo, workflow |
| 100 | Content Routes | scheme, route |
| 110 | Routes, Names, and Attestation | scheme, route, name, attest |
Reference Implementation
hpprd is the reference daemon implementation. It
implements the repository service specs tagged
repo.