FrogNet Protocol Specification
Draft 0.9, revision 2026-08-31. Key words are as defined in §1.2 [RFC2119] [RFC8174].
Prerequisites
Technical prerequisites
This specification assumes the reader has an advanced working knowledge of the architecture and use of the following technologies:
FrogNet deliberately uses standard APIs, protocols, operating-system facilities, and tools wherever practical. As a result, its dependencies and relationships cross multiple engineering layers and are dispersed throughout the system.
Required
- Linux
- HTTPS proxies
- Distributed systems
- Shared memory
- Semantic compression
- Custom wire protocols
- Python
Recommended
- Conventional networking and routing
- TCP/IP
- DNS and DHCP
- WireGuard
- REST and HTTP
- Relational databases and SQL
- systemd
- Shell scripting
- Radio networking
- FFmpeg
- Real-time audio/video systems
It is strongly suggested that you load the FrogNet codebase into an AI capable of repository-wide analysis. This makes it considerably easier to trace those dependencies and relationships across the complete system.
FrogNet Specification — Draft 0.9, revision 2026-08-31. Cite a conformance claim against this revision, not against a section number alone.
Read in order or by section. Sections §4a and §11a are numbered on the half convention: they specify components that had no section of their own, and no existing section number changes because of them.
| Documents | 20 |
| Normative statements | 476 MUST, 208 MUST NOT |
| Provenance | Every requirement checked against the reference implementation; each constant cited with its source file |
| Unfinished | Four source-verification gaps remain, each marked PENDING SOURCE at the point it applies: discovery cadence and withdrawal in §6, the reassignment-callback registration API in §10, the template disuse interval in §11, and association retry policy in §13. None is filled with a plausible figure. Allocator exhaustion, previously listed here, is closed: the behaviour is stated in §17.4 from the broker source. |
| Status | Draft 0.9, revision 2026-08-31. Experimental; no registry assignment is claimed. |
| Licence | The implementation is open source under GPLv2. The specification is published so an implementation can be written against the contract rather than against the code. |
:9009 link with its first probe (§4.1b).
Clarifications
Nothing is copied. A connected pond holds one authoritative copy of each value at one place. There are no replicas, no deltas, no anti-entropy, and no merge procedure — on reunion after a partition nothing is merged and no value travels (§2, §6, §13).
Gossip carries topology, never memory. A change notification propagates between directly attached neighbours; a tuple value never does, because there is only one copy of it. (§4a, §11).
Companion material
Internals gives mechanism notes alongside the normative text. UnREST by example is worked code. The simulator and the demonstrations carry the evidence. Magnum Croakus is the build manual and the derivation for every section here.
This specification is normative. The reference implementation is one implementation expected to conform to it (§18.8). Where the two disagree, either this document has a defect — corrected by erratum and revision — or the implementation departs from what this document requires. Source is the arbiter of what the reference implementation does; it is not the arbiter of what a conforming implementation must do.