Personal projects
Selected work.
Personal projects in Rust, networking, and software tools. Open a project for the implementation and source.
01PapdiChat
Peer-to-peer group messaging in Rust, bringing gossip transport together with local account and group state.
PapdiChat
The question
Explore how a command-line chat application coordinates peer connections, group membership, and local persistence.
Implementation
The application connects a blocking input thread to async messaging through a bounded Tokio channel. Typed messages carry introductions and chat text, while a receiver loop tracks peer names.
Built with
Rust · Iroh · Tokio · SeaORM · SQLite
Structure
Iroh provides the networking layer and iroh-gossip provides topic-based messaging. The application adds Base32 join tickets, local account and group records, database migrations, and a command-line flow around those primitives.
Scope & perspective
The prototype separates transport, message handling, and local state. Cross-device joining and empty-group handling still need validation; local registration does not establish a distributed identity system.
02Thamur
An asynchronous Rust crawler exploring task dispatch, shared URL state, request limiting, and structured storage.
Thamur
The question
Connect fetching, link extraction, URL tracking, and storage into a crawler with explicit coordination between components.
Implementation
A Flume-backed dispatcher hands work to Tokio tasks. A shared URL queue and visited set use Mutex and RwLock, while separate modules handle validation, robots.txt parsing, and a token-bucket limiter.
Built with
Rust · Tokio · Flume · Reqwest
Structure
Fetcher, parser, and storage modules sit behind the crawl entry point. Request metadata is written as structured records. The repository includes tests for shared state, validation, limiting, and mocked fetch behavior.
Scope & perspective
Dispatching a future and limiting active work are separate concerns. The current dispatcher spawns tasks, so its worker count does not bound active crawls. Shutdown coordination and atomic token acquisition remain areas to refine.
Let’s talk.
Systems, software, and interesting questions.
Find me on GitHub