My name is Dan; this is a selection of some of my projects.
Generate gradient-colored fractal images.
Technologies: Rust, wasm, Javascript, FLTK
Try it out:
GitHub repos:
The desktop version features an FLTK GUI, parallelized number-crunching, and the ability to save image-generation parameters in an image's metadata so it can be loaded later.
The Camelot Academy Math Pace Service.
Technologies: Rust (axum/hyper/tower/tokio), Javascript, PostgreSQL, Google Cloud Platform, Docker, APIs, JSON, SendGrid, HTML, CSS
docker-compose
CAMP is a web service for teachers, students, and parents to track individual student progress and grades. Camelot Academy has a highly-individualized Mathematics program wherein each student essentially has their own course of study. This system simplifies bookkeeping and report generation for teachers and allows administrators, students, and parents to monitor student progress.
Turn your images into text like it's 1986.
Technologies: Rust (Javascript for the DEMO), image analysis, Fontconfig
The CLI version gathers font information from your platform's Fontconfig installation.
A single-threaded, asynchronous, general-purpose web server meant to be easier to configure than something like Hiawatha.
Technologies: Rust (hyper/tower/tokio), TLS, HTTP, HTTPS
Technologies: Rust, Lua, Python, Common Lisp, C, Unicode encoding/decoding/wrangling
A Unicode-aware rot13 implementation in several languages.
Works not only on ASCII text, but also other sets of the Latin alphabet (at least the parts used in English), like the CJK fullwidth forms, enclosed alphanumerics, and even the diacritic-laden characters from the Latin Extended blocks (through the use of combining diacritics).
An IRC-like chat server and client with a simple protocol.
Technologies: Rust, TCP, reactive TUI
Try it out: Download the
and run it thus:
grel -a d2718.net:51516
To quit, hit Esc
until the Ipt
in the
lower-left-hand corner becomes a Com
, and then type
q
.
Many more details about commands, operation, and running your own server are available on the GitHub repo.
The client uses a reactive terminal interface that involves rewrappable formatted text. I also wrote this before async Rust was well-developed, so it features a sort of homespun nonblocking, async, buffered socket implementation.
Software libraries or other projects without an obvious demonstration.
An dependency-free CGI library in Rust.
This is used in the back end of the
ascii_art
demonstration web
service (mentioned above).
dumb_cgi
came about because most Rust crates that deal
with it have huge dependency graphs (they'll depend, for example, on
hyper
,
which itself depends on
tokio
!),
and I just wanted something simple to parse
multipart/formdata
.
A lightweight, non-critical authentication library that stores data in .csv files.
For when you need authentication, but don't have the user load to justify a real user database. The Rust version uses BLAKE3; the Go version uses bcrypt.
A library for using
dmenu
as an option picker.
dmenu
is an awesome tool for keyboard-driven interfaces,
and this library simplifies its integration with Rust (and also Go).