Stats

2
Projects
7
Devlogs
3
Votes
1
Ships

Coding Time

All Time: 259h 38m
Today: 2h 42m

Member Since

July 02, 2025

Badges

1
🚢
Maiden Voyage
you shipped your first project! the journey begins...

Projects

2
🚀
2 devlogs • 3 days ago
Guthrie: A high performance messaging protocol
5 devlogs • 2 months ago

Activity

Earned sticker

Wrote a benchmarking program for the traffic speeds in rust! Graph is attached bellow. TLDR of the graph is that with my method we're basically equivalent to the base case (zero filtering) and at some points beats it, which i'm really pleased about! So there's no almost no cost to sniffing packets with the program.

Update attachment
Earned sticker

This is sort of a hard project to explain, I am able to detect what browser someone is using before their request even hits the server. No JavaScript. No User-Agents. It's implemented at the Kernel so could theoretically process 26 million packets per second on consumer hardware. I'm doing this with XDP and BPF filters, which is sort of like Java except it has only 256 bytes of ram.

Update attachment
Fox
Fox created a project
3d ago

Fox TLS Fingerprinting Filtering

A BPF program for high speed filtering.

2 devlogs 0 followers
Anirudh
Anirudh Shipwright gave you feedback
15d ago
from Anirudh

Spent time porting everything into a web app! After shipwrecked I feel its good to try to put everything I possibly can into a web app just so I have an easy place to see my work. I know there's a ton of web dev's here so I'll explain my stack. I learned Ruby on Rails for this! I have a Rails server that's handling most of the actual DB management and that same DB is used for verification on the actual Guthrie server. Rails makes ratelimiting actually breeze so the account management system is getting it before the main TCP server does. If this actually gets integrated in someones stack they'd obviously replace the web interface with a proper one, but for demo this works great. Right now it just generates a random user id and user password, though normally though in proper usage those aren't exposed to the user. UI is bootstrap, because I didn't want to spend too much time tweaking CSS/Tailwind. Also ported uMessage (client to Guthrie) to wasm with emscripten, and I just link that in the Rails app. Still need to hook up guthrie-server to a TCP -> Websocket proxy so it actually works!

Update attachment

A lot of practical work was done this week! I know have SQLite caching on the client side because of the lack of persistence on the backend, this just hooks into the event loop I wrote earlier for the client library so it's really just been connecting the pipes now.

Update attachment

I wish I got some actual functionality done in this 10 hour span before SOM gets mad at me. Nope! Lots and lots of UI design. Clay is great for most things, except for making interactive components. So I spent a ton of this time working on a system for creating working textboxes with cursors and features people expect out of a text box. It's not quite Chrome/Firefox level but its usable, might spin this out into a separate component library since most of this code is reusable.

Update attachment

I finished writing the protocol, so messaging is working. Might want to have a a cache layer if a user is offline. That's my only major addition I want protocol wise rn. CLI client is done, it's of course just for testing but it just about has all the features of the protocol.
I started work on the actual GUI, its completly written in C and C++ with SDL as the actual rendering backend, with Clay for the layout engine. Sort of non-traditional for a interface, most people would tell me to just make a web app and call it a day. The reason I'm designing it this way is so it will comfortably run on a low end phone I have designed with a keypad keyboard. That's a whole separate mess that's hard to track for Hack Club, but I've been designing most of my personal projects to be able to theoretically run on this device. Device is using a 480x480 screen so thats the minimum resolution I've been testing in. There should be a web demo at the end of all of this with a port of the desktop app, but that will explain some of the more eclectic design decisions I have made.
Been prototyping layout and design, as well as making a button component for Clay that will hopefully be able to work with both the mouse and keys on the keypad. Images I've attached is my design goals and the current state of the design.

Update attachment

Guthrie is a high performance, secure, instant messaging protocol. I am building it as an infrastructural backend to replace a system like iMessage or RCS, though it could be used for any system for public facing authenticated messaging.

Whats actually been done so far.
I've written the authentication part with a Sqlite database, and drafted the protocol. I have packet checking in version check to make sure backwards compatibility is implemented from the very first version. I've previously ran into issues with supporting things like protocol extension with past protocols so I hope that I've made it easy enough! With a CLI client and accompanying client library I've been testing and debugging functionality. Eventually I hope to get a GUI made to!

Update attachment
Fox
Fox created a project
73d ago

Guthrie: A high performance messaging protocol

A iMessage like backend, for writing messaging apps, notifications, updates, and more!

Guthrie: A high performance messaging protocol
5 devlogs 1 follower Shipped
Fox
Fox joined Summer of Making
86d ago

This was widely regarded as a great move by everyone.