Applications
These are some of the native applications I've built.
| Project | Description |
|---|---|
| Franz | A desktop client for Apache Kafka. |
| neko.app | A tiny kitten follows your mouse cursor on macOS. |
| Podcatcher | A podcast player for iOS. |
| Remember | A keyboard-driven application for stashing away distractions for later. |
Websites and SaaS
These are some of the web applications I've built in my spare time.
| Project | Description |
|---|---|
| Racksnaps | Daily snapshots of the official Racket package catalog. |
| Task Queues | A list of message brokers and task queues across many programming languages and implementations. |
Libraries and Tools
This is the stuff I'm actively maintaining.
| Project | Description |
|---|---|
| actor | Kill-Safe actors for Racket. |
| avro | A Racket implementation of the Apache Avro serialization format. |
| binfmt | A binary format parser-generator. |
| chief | A Procfile runner for Racket. |
| component | Dependency injection for Racket. |
| crontab | Cron-like scheduling for Racket. |
| cursive_re | Readable regular expressions for Python 3. |
| dbg | A remote debugging/monitoring tool for Racket programs. |
| define-query | Turn .sql files into virtual-statements in Racket. |
| deta | A functional database mapper for Racket. |
| dramatiq | A distributed task processing library for Python 3. |
| dramatiq_dashboard | A monitoring UI for Dramatiq. |
| dramatiq_sqs | An Amazon SQS broker for Dramatiq. |
| forms | A web form validation library for Racket. |
| geoip | Geolocation for Racket based on MaxMind's GeoIP databases. |
| gui-easy | A declarative GUI library for Racket. |
| http-easy | A high-level HTTP client for Racket. |
| koyo | A web development toolkit for Racket. |
| lz4 | A pure-Racket decompressor for LZ4 data. |
| marionette | A Racket library that lets you control Firefox via the Marionette Protocol. |
| messagepack | An implementation of the MessagePack serialization format for Racket. |
| molten | A modern API framework for Python 3. |
| monocle | Lenses for Racket. |
| monotonic | Monotonic time for Racket. |
| nemea | A little Racket web application for tracking website analytics. |
| net-ip | Utilities for working with IP addresses and networks in Racket. |
| noise | A Swift Package for embedding Racket inside applications. |
| north | A database schema migration tool written in Racket. |
| place-tcp-listener | A TCP listener that dispatches new connections to places. |
| postmark | A Postmark client written in Racket. |
| py-test.el | A Python test runner for Emacs. |
| rackcheck | A property-based testing library for Racket with support for shrinking. |
| racket-kafka | A Racket client for Apache Kafka. |
| racket-lua | A Racket #lang implementation of Lua. |
| racket-protocol-buffers | A Protocol Buffers implementation for Racket. |
| racket-redis | Fast, idiomatic bindings to Redis for Racket. |
| resource-pool | A generic resource pool for Racket. |
| resource_pool | A generic resource pool for Python. |
| review | A linter for Racket. |
| sass | Bindings to libsass for Racket. |
| sentry | A Sentry SDK for Racket. |
| setup-racket | A GitHub Action for installing Racket. |
| smtp-server | An SMTP server implementation for Racket. |
| twilio | A Twilio client for Racket. |
| wasm | A WASM VM written in Racket. |
| watchdog_gevent | A gevent-based observer for watchdog. |
| web-app-from-scratch | Supporting material for my "Web App From Scratch" blog series. |
Archive
These are libraries and tools that I am no longer actively maintaining. Most of these are perfectly usable and don't require maintenance, but if you use them and run into problems I won't help much beyond maybe giving you some pointers.
| Project | Description |
|---|---|
| PyREPL | Run a Python interpreter inside Vim. |
| RbREPL | Run a Ruby interpreter inside Vim. |
| anom-go | An object mapper for the AppEngine Datastore in Go. |
| anom | An object mapper for Cloud Datastore for Python 3. |
| apistar_cors | CORS support for API Star apps. |
| apistar_dramatiq | Dramatiq support for API Star apps. |
| apistar_prometheus | Prometheus metrics for API Star apps. |
| apistar_request_id | Request id generation and propagation for API Star. |
| apistar_sentry | Sentry support for API Star apps. |
| apistar_settings | A settings component for API Star apps. |
| browser-connect | Live browser interaction for Vim. |
| cedar-mode | Emacs mode for cedar. |
| cedar | A web service definition format and code generator. |
| crontab | A crontab spec parser for Scala. |
| elm-ast | A parser for Elm in Elm. |
| elm-combine | Parser combinators for Elm. |
| elm-cookiecutter | A cookiecutter template for Elm apps. |
| elm-datepicker | A reusable datepicker for Elm. |
| elm-generate | Generators for Elm. |
| elm-mode | An Elm mode for EMACS. |
| elm-querystring | A library for working with querystrings in Elm. |
| elm-route | A type-safe routing library for Elm. |
| elm-time | A pure Elm date and time library. |
| falcon_sugar | A little sugar for Falcon applications. |
| fargate_scraper | A CLI tool that scrapes Fargate tasks to find Prometheus targets. |
| ff | A fuzzy-finder for the terminal. |
| firechannel | An almost-dropin replacement for the GAE channels API using Firebase. |
| h2p | A Python interface to libwkhtmltox. |
| heater | A Python heatmapping library. |
| hugs | A library that maps SQL expressions to Python fuctions. |
| ido-clever-match | An alternative matcher for Emacs ido-mode. |
| markii | A development-mode error handler for Python web apps. |
| modviz | A module dependency graph visualizer for Python. |
| mold | A fast templating engine for Python. |
| multiprom | A multiprocess-friendly Prometheus client for Python. |
| pico | A minimal lisp interpreter written in Python. |
| quicksilver | A fast file finder for VIM. |
| tcopy | A tail-call optimizing decorator for Python. |
| threadop | Adds a threading operator to Python. |
| trio-redis | A trio-based Redis client for Python. |
| yes.py | A fast implementation of yes in Python. |
| zed | A toy text editor. |