Proof of concept mechanical port of ircnet/ircd to Rust as part of a bit about C being insecure for network services
0

Configure Feed

Select the types of activity you want to include in your feed.

ircd.rs / docs / claude-memory / leveva-pivot-p9-retired.md
3.4 kB

name: leveva-pivot-p9-retired description: "ROADMAP PIVOT 2026-06-08: P9 (in-place std cleanup of the mechanical port) RETIRED; idiomatic end-state is the greenfield leveva crate; ircd-common demoted to oracle, deleted at parity" metadata: node_type: memory type: project originSessionId: 206cf11e-8d64-44c3-a422-5aee457385e2#

Roadmap pivot, decided 2026-06-08. The original P9–P12 transformed the mechanical port (ircd-common) into idiomatic Rust in place (P9 = std-lib cleanup: MyMallocBox, dbuf freelist→owned, raw libcstd/nix, [c_char;N][u8;N]). That is now superseded by a greenfield strategy and P9 is RETIRED (never implemented, by decision).

The strangler pattern repeats one level up: just as the C tree was the oracle for the mechanical port, ircd-common (the verified-faithful 100%-Rust port) is now the behavioral oracle for a from-scratch idiomatic daemon, [[project-name-leveva-p10]] (leveva crate). leveva-integration holds the cross-crate differential tests pinning each leveva reimplementation against ircd-common within their shared domain (documented divergences asserted explicitly).

Why P9 is throwaway: an oracle only needs to keep building + passing its tests — it does NOT need to be idiomatic. Polishing ircd-common's allocators/buffers/ syscalls earns nothing because that whole crate is deleted once leveva reaches parity. Spend tokens growing leveva, not un-C-ifying code destined for deletion.

Reframed phases (in PLAN.md):

  • P9 ❌ RETIRED — kept in the table for provenance only.
  • P10 🔶 IN PROGRESS — leveva greenfield foundations (already ~6.3k LOC): casemap, typed string/ident newtypes, Message, Numeric enum (184 codes), safe generic patricia, matching, mode, KDL config, rustls/tokio tls with hot reload. main.rs binds listeners + watches certs but drops accepted connections — no protocol layer yet.
  • P11leveva protocol layer → feature parity: connection+registration state machine (NICK/USER001004/375376), command handlers, channels, S2S (UID-based UNICK/NJOIN/SAVE/EOB), spawn iauth-rs over a socketpair — each slice differentially pinned vs ircd-common via the boot-level golden harness ([[boot-golden-harness]]). This is the bulk of remaining work.
  • P12 ✅ DONE (2026-06-13) — retired the mechanical port: ran the final cargo test -p leveva-integration differential green against the oracle, then deleted ircd-common/ircd-rs + iauth-rs + leveva-integration + the mechanical port's deployment rigging (docker/Dockerfile.ircd, the ircd bake target, docs/k8s/). Workspace is now leveva + leveva-iauth. The strangler is complete (same lifecycle the C tree had at P8 — [[p8-started]]). See [[p12-complete]].

Next concrete step: P11/P12 are done — the migration is finished. Any further work on leveva is feature work on the standalone product (e.g. more IRCv3 caps like SASL), not migration. The deleted crates/oracles/C tree are all recoverable from git.

Caveat acknowledged: this bets on leveva not stalling — if it did, ircd-common is the shipping product and you'd wish P9 had been done. User is committed to leveva, so that risk is accepted.