Projects

I like doing recreational programming and just working on random things that interest me. Try recreational programming!

ML/AI

  • chibillm: Zero dependency C++ LLM inference engine with custom Metal kernels. Currently it's able to run Qwen3-0.6B, but I'm attempting to get Qwen3.8-27b running at least somewhat efficiently. The engine itself has zero dependencies but the HTTP library for serving the completion endpoint and JSON parsing have dependencies.

Security and cryptography

  • c25519: Side-channel-attack-resistant Ed25519 implementation in C that also includes SHA-512. It focuses on practical performance with generally good results while passing a broad set of test vectors.
  • newspeak: End-to-end encrypted chat in Rust implementing Signal's Post-Quantum Extended Diffie-Hellman and Double Ratchet. Built with tonic for gRPC, SQLite for storage, dalek primitives, and a ratatui terminal UI.
[more]
  • pqxdh: Go library for Post-Quantum Extended Diffie-Hellman and XEdDSA. Extends X3DH with ML-KEM to provide stronger resistance against future quantum adversaries. It relies on a hybrid approach as ML-KEM is relatively recent and shouldn't be blindly trusted.
  • secp256k1: secp256k1 signing and verification implementation with Jacobian coordinates and Montgomery representation to reduce expensive operations. Includes deterministic RFC6979 nonces. Implemented in Rust.
  • merkle: Merkle tree implementations in Go and C using SHA-256, including generation and verification of inclusion proofs.
  • schnorr: Schnorr signatures implemented over secp256k1 curve in 100 lines of Python. Serves as an educational implementation without dependencies (related to math).

Programming languages and parsing

  • kukka: Small and fast parser combinator library in Rust that uses static dispatch to avoid trait-object overhead. It's mature enough to write performant parsers for JSON and CSV in a few lines.
  • ff: A single-file C compiler that is able to compile itself into ARM64.
  • mc: A simplistic C compiler written in Go with lexical analysis, parsing, IR generation, and x64 assembly output. Stopped working on this after getting a MacBook.

Distributed systems and databases

  • haystack: Distributed file system inspired by Facebook's Haystack architecture. Uses a Raft-based directory cluster to map files to append-only volumes and coordinates replication across store servers.
  • distsql: Distributed consensus layer built on top of SQLite for coordinating state across nodes.
[more]
  • levelsql: Minimal SQL implementation that stores relational data as key-value pairs on LevelDB.

Random / fun / tools

  • dot: A tiny easy-to-use dotfile manager built with Ruby in a few hundred lines.
  • hashvis: Small command line utility that generates unique ASCII art based on file contents written in C.