projects
A collection of systems programming projects built for learning and experimentation.
- kukka: a small and fast parser combinators library written in Rust. The library works by using static dispatch to avoid the runtime overhead of trait objects. The downside being longer compilation times and more complex type signatures.
- haystack: a distributed file system inspired by Facebook's Haystack architecture. Features a Raft-based directory cluster for high availability, mapping files to logical volumes stored as large append-only files. The directory coordinates client read/write operations without directly handling file storage, while replication ensures data durability across multiple store servers.
- mc: a C compiler written in Go, featuring lexical analysis, parsing, intermediate representation generation, and x64 assembly code generation.
- mci: a proof-of-concept distributed CI/CD pipeline service with web interface. An orchestrator distributes work to agents that execute YAML-defined pipelines within Docker containers like Alpine Linux.
- serie: an embeddable time series database with a custom LSM tree optimized for time series queries. Uses delta-delta encoding for memory efficiency and includes HTTP API, consistent hashing for distribution, and a custom query language parser for data aggregation.
- dcache: a high-performance distributed in-memory cache built with Go. Uses gRPC for inter-node communication, Serf for cluster management, and Raft for distributed consensus.
- distsql: a distributed SQLite3 database with HTTP API and gRPC communication between nodes. Implements Raft consensus for data consistency across the cluster.
- rc: a Lisp compiler written in Rust that generates standalone ELF binaries. Parses S-expressions, generates intermediate representation with optimizations like constant folding, and compiles directly to x64 machine code. Without needing an assembler.
- levelsql: a minimal SQL implementation built on top of LevelDB. Encodes relational data structures as key-value pairs, demonstrating how SQL can be layered over NoSQL storage engines.
- gocry: a proof-of-concept ransomware implementation for educational and security research purposes.
- karu: a Bitcask-style key-value store for Linux written in C++. Built to explore large-scale C++ development patterns and persistent storage optimization.
- stupidhttp: a HTTP server built from scratch in Go without using net/http. Implements a subset of HTTP/1.1 with HTTPS support, demonstrating protocol implementation fundamentals.
- hashvis: a utility that generates unique ASCII art visualizations from file contents. Creates deterministic visual fingerprints by hashing file content to seed a random walk pattern on a grid, rendered as ASCII characters.
- simdcsv: a fast C++ CSV parser utilizing simd instructions to speed up indexing a CSV file.