Opensource Projects I’ve worked on/am working on
Nix-Btm
btm
but for nix processes. A simple tui I wrote to play around with the ratatui and sysinfo crates.
Espresso Systems
At Espresso Systems, we’ve open sourced a bunch of the repositories I’ve contributed to, including:
- HotShot, a consensus and DA solution for our decentralized sequencer. My contributions include:
- A Libp2p networking backend
- A testing harness for consensus including some pretty nifty procedural macros and type-foo
- Consensus implementations including pipelined HotStuff
- Nix infra for HotShot
- An asyncronous task abstraction/harness for controlling and communication between tasks. This includes some pretty slick
Future
andStream
implementations.pin_project
and I are now very good friends : D
- A Netlink fork that exposes infra for adding custom qdiscs. I used this to mess with the network on an AWS cluster and locally on my 5950x desktop in a automated way. I would enter a separate network namespace, link it to the main network namespace, then add a heap of qdiscs to limit memory bandwidth, add in articial latency, drop packets, etc. This was all done directly with syscalls wrapepd by Rust code instead of using
ip link
andns
. - This and this crate
NDA: Nix DAP implementation
WIP implementation of the debug adapter protocol for Nix.
RISCV Asm Lsp
A (very WIP) language server for RISC-V assembly. Uses a TreeSitter parser and built with tower-lsp.
NixPkgs
I maintain a couple of Rust packages.
VimConfig
My personal vim config, assembled with Nix and nix2vim. Comes with all the bells and whistles common in most IDEs. I gave a talk at vimconf about it.
Flake Generator
A cli using skim + rnix to parse nix flakes into an AST and then modify that AST. Good for generating nix best practice boilerplate code.
Advent of Code
I try to run through these every year as an excuse to learn a new language. I’ve done most of 2020, some of 2019 and 2018. This year (2022) will probably be in Idris.
This blog
A semi-autogenerated blog using nix + hakyll.
Kernel Tutorial
Tied to blog post, explains how to use nix to do kernel dev in Rust.
Flakes
An exercise in code obfuscation. My system configs for my various computers running NixOS.
Alienware
SysV-style daemon and corresponding user-facing library for controlling the lights on the Alienware 15 R3 laptop.
Deepfrier
Python script for deepfry-ing screenshots
MIT Master’s thesis
Discusses security on a tagged architectures.
BeaverDocs
School project where I worked in group to create proof of concept peer to peer collaborative text editor. My contributions were to the RGATreeSplit CRDT implementation used internally to represent text operations.
DuckeeGO
School project where I worked in group to create proof of concept concolic execution engine for golang. My contributions were on augmentations to the golang AST.