projects

I mostly write toy projects to learn different things and because programming is fun.

security and cryptography
  • 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.

  • c25519

    Side-channel attack resistant Ed25519 implementation in C that also includes SHA-512. It focuses on practical performance while passing a broad set of test vectors.

  • psync

    Command-line sync tool for untrusted providers that encrypts files and hides metadata such as exact file count and file sizes. Uses ChaCha20-Poly1305 for encryption and Argon2id for key derivation.

  • secp256k1

    secp256k1 signing and verification implementation with Jacobian coordinates and Montgomery representation to reduce expensive operations. Includes deterministic RFC6979 nonces.

  • hkdf

    Self-contained header-only HKDF implementation in C with SHA-256 and HMAC primitives included.

  • pqxdh

    Implementation of Post-Quantum Extended Diffie-Hellman and XEdDSA. Extends X3DH with ML-KEM to provide stronger resistance against future quantum attacks.

  • merkle

    Merkle tree implementations in Go and C using SHA-256, including generation and verification of inclusion proofs.

  • gocry

    Proof-of-concept ransomware implementation for educational and security research purposes.

programming languages and parsing
  • kukka

    Small and fast parser combinator library in Rust that uses static dispatch to avoid trait-object overhead. Useful for building parsers for formats such as JSON and CSV.

  • ampl

    Concurrent programming language written in Zig that explores Erlang-inspired ideas with a less functional style.

  • mc

    C compiler written in Go with lexical analysis, parsing, IR generation, and x64 assembly output.

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.

  • levelsql

    Minimal SQL implementation that stores relational data as key-value pairs on LevelDB.

random / fun
  • dot

    A tiny easy-to-use dotfile manager built using in Go in a few hundred lines.

  • stupidhttp

    HTTP server built from scratch in Go without using net/http, implementing a subset of HTTP/1.1 with HTTPS support.

  • hashvis

    Utility that generates unique ASCII art visualizations from file contents.