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.5, 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.
  • kestrel: Hybrid search engine in Rust combining BM25 keyword search and vector search with reciprocal rank fusion. Embeds document chunks locally and supports snapshots for saving and restoring collections.

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.
  • mike: Pure Go implementation of Module Isogeny Key-Exchange (MIKE), an elliptic-curve isogeny key-agreement scheme. Supports all six parameter sets without cgo, assembly, or external dependencies.
[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.