The first commit to Prns was b0e1b2d, on May 26, 2026
Today is August 11th, 2026
There are 2,234 commits, representing 204 commits a week. 30 commits a day. That is almost the total number of commits to the entire Python reference implementation which's first commit was on 9a9630c on May 29th, 2016.
There are TWO THOUSAND FIVE HUNDRED AND TWENTY SEVEN files tracked in the master branch
There are 1500 files with the .rs extension non-withstanding things like dependencies or submodules. Running
`git ls-files | grep -E '.(rs)$' gives you https://pastebin.com/FKaHkWrJ
git ls-files -z '*.rs' | grep -zZv -e '^vendor/' -e '/vendor/' | xargs -0 cat | wc -m
Just looking at the character counts alone of all files with the .rs extension there are 12,642,864 characters. If you typed at 100 words per minute, for every day straight that would take 20 days.
For files tagged with .md, there are 926,249 characters total.
Character count's aren't an estimate of much, but for not even two months, do you realize how insane this is?
Do you even have any background in Rust development? There are probably entire segments of this repo you haven't even looked at. It's not humanly possible.
You could fit the entirety of the KJV Bible from Project Gutenberg with 3,566,480 characters including spaces 3.9x in just the total character count of whats tracked with .rs extensions excluding anything in a vendor/ folder. You could fit War and Peace in 4.1 times
The initial README is also just strange, full of some of the most bizarre suggestions which probably hints at what your typical Claude conversation looked like when prooooompting Claude.
This line stood out to me the most though https://github.com/KenAKAFrosty/Prns/blob/b0e1b2d73eb2cc9b4eb547eb9a6030d43ae81cdd/docs/build-ethos.md
That distinction draws our scope line. Link, Resource, Channel, Buffer are application-facing surfaces — an app opens a link and sends a resource; the daemon only transports the packets. So a piece of library surface earns its place in the codebase only if:
daemon behavior needs it, or
a named SDK consumer ships it.
If neither is true, it is reference material, not code we carry. When in doubt, name the consumer out loud. If you can't, you have your answer.
Between those two boundaries, the model is yours. Clean, typed, idiomatic Rust. It owes the reference nothing — not its names, not its function breakdown, not its types.
Yeah, just ignore all that. Why not? It's the build ethos ecosystem harness or whatever, my eyes can only glaze over this shit so much.
Followed by what I can't even decipher:
The shape: a game engine
The core is a pure tick:
tick(&mut State, Input, dt) -> Effects
No I/O, no clock reading, no syscalls inside the core. Time is an argument. Inbound is data. Outbound is data — typed Effects that the surrounding loop interprets, not calls the core makes itself.
This is not exotic. It is the same attractor that Elm/Redux, deterministic lockstep netcode, ECS game loops, and embedded superloops all evolve toward independently. A pure function of (state, input, time) is the most testable and most portable object there is. Arriving at this shape is a sign the decomposition is natural, not forced.
This is some type of eldritch abomination.