Skip to content

Commit 778cf8e

Browse files
committed
docs: substantive CRG C annotation (EXPLAINME.adoc)
1 parent cc5ddd9 commit 778cf8e

1 file changed

Lines changed: 85 additions & 4 deletions

File tree

EXPLAINME.adoc

Lines changed: 85 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,103 @@
11
// SPDX-License-Identifier: PMPL-1.0-or-later
2-
= flatracoon — Show Me The Receipts
2+
// Copyright (c) 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
3+
= FlatRacoon — Show Me The Receipts
34
:toc:
45
:icons: font
6+
:author: Jonathan D.A. Jewell
57

6-
The README makes claims. This file backs them up.
8+
The README makes claims. This file backs them up, traces the critical paths,
9+
and tells a reviewer exactly where to look.
10+
11+
== Claim 1: Operating System and Networking Stack
712

813
[quote, README]
914
____
1015
Flatracoon operating system and networking stack.
1116
____
1217

18+
*How it works:*
19+
FlatRacoon is a workspace of independent subsystems, each a self-contained module
20+
under `netstack/modules/`. The networking half (`netstack/`) holds crates for
21+
DNS (Hesiod), BGP labs, IPFS overlay, ZeroTier Kubernetes bridging, and an IPv6
22+
site enforcer. The OS half (`os/`) holds the FlatRacoon OS core, also in its own
23+
module layout with `src/`, `ffi/`, and presentation layers following the
24+
Idris2-ABI/Zig-FFI architecture standard.
25+
26+
The entry point for DNS work is `netstack/modules/hesiod-dns-map/`, a Rust
27+
workspace that compiles to two binaries: `hesiod-lib` (the library) and
28+
`hesinfo` (the CLI query tool). `hesiod-lib/src/lib.rs` re-exports five
29+
sub-modules: `config`, `health`, `records`, `server`, and `zone` — providing
30+
HS-class TXT record management, a lightweight UDP DNS server, and HTTP
31+
health/metrics endpoints.
32+
33+
*Honest caveat:*
34+
Most `os/` sub-modules and several `netstack/modules/` entries (e.g., `bgp-backbone-lab`,
35+
`poly-k8s-mcp`) are at early/stub stage. The DNS modules are further along;
36+
the broader OS layer is aspirational.
37+
38+
== Claim 2: Hesiod DNS Naming System Support
39+
40+
[quote, README]
41+
____
42+
See link:TOPOLOGY.md[TOPOLOGY.md] for a visual architecture map and completion dashboard.
43+
____
44+
45+
*How it works:*
46+
`TOPOLOGY.md` at the repo root maps every module with a completion percentage.
47+
The Hesiod DNS module (`netstack/modules/hesiod-dns-map/`) implements RFC 1035
48+
HS-class (Hesiod class) TXT lookups. The library is `#![forbid(unsafe_code)]`
49+
and uses Tokio for async I/O. A `server.rs` provides a UDP listener; `zone.rs`
50+
manages zone file structures; `records.rs` holds the typed DNS record model;
51+
`health.rs` exposes an HTTP metrics endpoint used in FlatRacoon CI pipelines.
52+
53+
Build path: `cargo build --release` in `netstack/modules/hesiod-dns-map/` →
54+
produces `hesinfo` (CLI) and `libhesiod` (library linked into OS components).
55+
56+
*Honest caveat:*
57+
TSIG authentication and actual Hesiod NS delegation are documented in `PROOF-NEEDS.md`
58+
as not yet implemented. The server currently resolves statically configured zones
59+
only.
60+
61+
== Dogfooded Across The Account
62+
63+
[cols="2,3,1"]
64+
|===
65+
| Repo / System | How FlatRacoon is used | Status
66+
67+
| `zerotier-k8s-link` (module) | ZeroTier overlay networking sits inside netstack | In-module
68+
| `ipfs-overlay` (module) | IPFS gateway module within the netstack | In-module
69+
| `hesiod-dns-map` (module) | DNS/Hesiod subsystem consumed by OS bootstrapper | In-module
70+
| `flatracoon-os` (module) | Core OS module referencing netstack services | In-module
71+
| CI/CD pipelines | `health.rs` HTTP endpoint pinged by Hypatia scanner | Planned
72+
|===
73+
1374
== File Map
1475

15-
[cols="1,2"]
76+
[cols="1,3"]
1677
|===
1778
| Path | What's There
1879

19-
| `test(s)/` | Test suite
80+
| `netstack/` | Network stack top-level; Rust workspace root with `modules/`
81+
| `netstack/modules/hesiod-dns-map/` | Hesiod DNS library + `hesinfo` CLI (Rust workspace)
82+
| `netstack/modules/hesiod-dns-map/crates/hesiod-lib/src/lib.rs` | Library root; re-exports `config`, `health`, `records`, `server`, `zone`
83+
| `netstack/modules/hesiod-dns-map/crates/hesiod-lib/src/server.rs` | UDP DNS server implementation
84+
| `netstack/modules/hesiod-dns-map/crates/hesiod-lib/src/records.rs` | Typed DNS record model
85+
| `netstack/modules/hesiod-dns-map/crates/hesiod-lib/src/health.rs` | HTTP health/metrics endpoint
86+
| `netstack/modules/hesiod-dns-map/crates/hesiod-lib/src/zone.rs` | Zone file structure management
87+
| `netstack/modules/bgp-backbone-lab/` | BGP lab environment (early stage)
88+
| `netstack/modules/ipfs-overlay/` | IPFS overlay gateway module
89+
| `netstack/modules/zerotier-k8s-link/` | ZeroTier + Kubernetes bridging
90+
| `netstack/modules/ipv6-site-enforcer/` | IPv6 enforcement policy module
91+
| `netstack/modules/network-dashboard/` | Observability dashboard for the netstack
92+
| `os/` | FlatRacoon OS module; mirrored `src/`, `ffi/`, Idris2 ABI layout
93+
| `os/src/` | OS core source (Rust/Ada depending on subsystem)
94+
| `os/ffi/` | Zig FFI bridge (zero-logic pass-through)
95+
| `TOPOLOGY.md` | Architecture map and per-module completion percentages
96+
| `PROOF-NEEDS.md` | Formal verification backlog for this repo
97+
| `Justfile` | Build recipes: `just build`, `just test`, `just check`
98+
| `flake.nix` / `guix.scm` | Reproducible environment definitions
99+
| `contractiles/` | Contractile trust/dust/intend check files
100+
| `.machine_readable/` | A2ML state, meta, ecosystem, agentic manifests
20101
|===
21102

22103
== Questions?

0 commit comments

Comments
 (0)