Non-Code Projects
Increasing Rust Reach: I was a 2018 mentor of two amazing mentees. To describe Rust Reach; from the homepage, "This program matches Rust team members from all parts of the project with individuals who are underrepresented in Rust's community and the tech industry for a partnership of three (3) months, from mid-May to mid-August. Each partnership agrees to a commitment of 3–5 hours per week working on a Rust Project."
Introduction to Linux Course: I teach a three (3) to five (5) day workshop on introduction to Linux. The class varies by client, but can span from introduction and basics, to advanced techniques and scripting. This course has been run for classes ranging from three (3) to twelve (12) individuals.
Introduction to Python Course: I teach a three (3) to five (5) day workshop on introduction to Python. This course is complementary to the Introduction to Linux and likewise ranges from new to programming, to only new to Python but skilled at programming. This class has been conducted with sizes ranging from five (5) to fifteen (15) individuals.
Open Source
clap
: A command line parsing framework
for the Rust language. It's meant to bring command line
applications into the modern age without sacrificing performance or ergonomics.
clap
supports things like automatic help generation, automatic shell
completion scripts, YAML defined CLIs, suggestions on typos, argument
relationships, any many more features. More info can be found by visiting the
project page, the Github repository
(clap-rs/clap), documentation
(https://docs.rs/clap) or the crates.io page
(crates/clap).
violin
:
An implementation of the Vivaldi Network Coordinates
algorithm (PDF)
for mapping network nodes with euclidean coordinates in order to accurately and
efficiently estimate network latencies. This implementation focuses on
performance while still allowing no_std
and no alloc
environments. Written
in Rust (1k sloc).
clog
: A tool for generating
Markdown changelog's based on one's git
history. This tool follows the
conventional
format, but is also fully configurable and customizable. This project is divided
into a CLI front-end and a library
backend ().
usbwatch
A daemon that asynchronously monitors for USB connect/disconnect UDEV events and
runs actions based on matching rules. Actions can be matched on device, port, etc.
Rules are written in YAML and allow advanced concepts like excludes, groups, etc.
iptables_exporter
An asynchronous Prometheus metrics exporter for iptables
which allows exposing
total byte and packet counts by chain/rule/policy, etc.
wireguard_exporter
An asynchronous Prometheus metrics exporter for WireGuard which allows exposing
metrics such as total byte transfers, handshakes, etc. by interface/peer.
typed-oid
:
A typed Object ID library for Rust. An Object ID (OID) is a
RFC4648 base32 (no padding) extended
hex-encoded UUID with a prefix separated by a -
. This allows human or machine
categorizing (and sorting with UUIDv7) of UUIDs. Written in Rust (~600 sloc)
clap_generate
:
A crate that enables automatic generation of shell completion scripts and
manpages.
clap_derive
: A
crate that enables Rust's custom-derive macro functionality with clap
.
term_size-rs
: A crate for
determining the terminal width in order to determine correctly formatted output.
cargo-outdated
: A
cargo
plugin which checks
for out of date dependencies.
cargo-msrv-table
: A
cargo
plugin which
attempts to compile a particular crate against all Rust versions to determine
the Minimum Supported Rust Version (MSRV) by crate MAJOR.MINOR
version.
Closed Source
ruido
: ("noise" in Spanish) A Rust implementation of the Noise Protocol
Framework with a focus on compile time
configuration, security, and performance. Written in Rust (~8k sloc).
Wayfinder: A Container Networking Interface (CNI) plugin and daemon that connected containers to a Kuma control plane via a global Open Virtual Network (OVN). Written in Rust.
RouteRunner: A daemon that sat on hosts listening to AnyCast advertisements and added routes to the kernel routing table. Written in Rust.
pfGUI: A cross-platform GUI application for securely creating encrypted archives of large files and directories. Written Rust using the Iced GUI framework. (~10,000 sloc)
Phoenix: Multi-cloud mesh VPN used for custom traffic routing. "Written" in Ansible (~4k sloc).
Phoenix Infra: Builds infrastructure between multiple cloud VPS providers, as well as locally via LXD. Written in Python (~10k sloc).
Phoenix Harden: Hardens a VPS server instance against a large number of network attacks and applies many server security practices. Written in Bash (~2k sloc).
Phoenix Assert: A double verification distributed intrusion dection system. Written in Bash (~3k sloc).
Phoenix Mon: A low remote footprint, multi-VPS monitoring solution to monitor the Phoenix mesh network. Written in Bash (~5k sloc).
satctl
: Both a Terminal User Interface (TUI) and CLI for installing and
administering Red Hat Satellite. Written in Rust. ~10k
sloc
satctl-ansible
: A set of Ansible playbooks and
roles for installing and configuring Red Hat Satellite. Written in Shell Script,
Python, and YAML. ~2k sloc
Inactive Projects
seaplane-cli
and seaplane-sdk-rs
: A
CLI
and
SDK
for Seaplane's global control plane, key value store, and restrictions/locks.
Written in Rust (~15,000 sloc)
cargo-graph
: A cargo
plugin
for generating GraphiViz dependency graphs.
doapi-rs : DigitalOcean API bindings for Rust
docli-rs : A DigitalOcean CLI written in Rust.
cargo-count
: A cargo
plugin
for counting lines of code fast.
cargo-extras
: A meta cargo
plugin which installs many common cargo
plugins.
cli2048
: The popular 2048 game in
the terminal. Written in Go (~600 sloc).