Personal projects

Selected work.

Personal projects in Rust, networking, and software tools. Open a project for the implementation and source.

3 studies · Open to explore
01

PapdiChat

Peer-to-peer group messaging in Rust, bringing gossip transport together with local account and group state.

SystemsPublic prototype

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.

Explore the source
02

Thamur

An asynchronous Rust crawler exploring task dispatch, shared URL state, request limiting, and structured storage.

SystemsPublic experiment

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.

Explore the source
03

ShareKaro

A Rust desktop experiment coordinating browser tabs and session state through Chrome DevTools Protocol and WebSockets.

ToolsPublic prototype

The question

Explore how a native desktop interface can coordinate browser operations and state changes between connected instances.

Implementation

The egui interface and Tokio runtime coordinate broadcast events, remote-to-local tab mappings, and browser operations. Blocking browser calls are moved onto blocking tasks.

Built with

Rust · egui · Tokio · WebSockets · CDP

Structure

A desktop UI issues grant and revoke events. A WebSocket layer distributes those events, and a Chrome DevTools Protocol adapter applies browser changes while maintaining tab mappings.

Scope & perspective

This is a browser-automation prototype. The current session-transfer path needs authentication, encrypted transport, and a clearer trust model before use with real accounts.

Explore the source

Let’s talk.

Systems, software, and interesting questions.

Find me on GitHub