Projects I’ve Authored
Below are some small open source software projects I’ve authored or helped develop. Most of them are released under a BSD or MIT license. Enjoy!
- GoAWK is a POSIX-compatible AWK interpreter written in Go. Read my initial description, how I made it faster, or how I added CSV support.
- scandir is a better directory iterator and faster
os.walk()
that’s now included in the Python 3.5+ standard library. Read the full story. - cdnupload uploads a site’s static files to a CDN with a content-based hash in the filenames, giving great caching while avoiding versioning issues.
- dhash is a Python module that calculates a “dHash” perceptual hash value for an image, useful for detecting duplicate images.
- pybktree is a Python implementation of the BK-tree data structure to allow fast querying of “close” matches.
- graphyte is a small Python library to send data to a Graphite metrics server.
- inih is a tiny INI file parser written in C, good for embedded systems.
- Protothread.h is my C++ port of Adam Dunkels’ protothread library.
- My ActiveState Python recipes and GitHub Gists.
I’d love it if you sponsored me on GitHub – it will motivate me to work on my open source projects and write more good content. Thanks!
Geeky historical things
- zztgo is a Go port of Adrian Siekierka’s “reconstruction of ZZT” that uses a Pascal-to-Go transpiler I wrote for this purpose. Read the details.
- Symplate is a very simple and fast Python template language.
- fabricate is a simple build tool that automatically finds dependencies.
- MRO maps database rows to objects in web.py.
- nobraces lets you write C with Python-style indentation.
- And a False compiler and interpreter written in ANS Forth.
- Third is a tiny, self-hosting Forth compiler for 8086 DOS (that I wrote when I was a mere hatchling).
- BenOS, a tiny 32-bit Forth operating system I created around the same time.