Projects

Click tags to filter projects. Multiple tags narrow the list (projects must have all selected tags). Click a selected tag again to remove it.

A type-level web framework for Rust where your entire API is described as a type. Servers, clients, and OpenAPI schemas all derive from that single type definition. Built on Tokio, Tower, and Hyper, fully compatible with the Axum ecosystem.

A ground-up PostgreSQL client stack for Rust. Compile-time checked queries, binary wire protocol, async connection pool. No dependencies on tokio-postgres, sqlx, deadpool, bb8, or any other existing PostgreSQL or connection pool library.

Lockstep-style stateful property testing for Rust, with 236 machine-checked metatheory theorems in Lean 4. A reimagining of Haskell's quickcheck-lockstep using Rust's type system, built on GATs, type equality witnesses, and composable trait algebras.

A unified ecosystem of small Rust crates for moving values back and forth between the type level and the value level, safely and ergonomically. Reflection (type to value) and reification (value to type), all in 100% safe Rust.

Inspired by syn, elm-ast is a Rust library for parsing and constructing Elm 0.19.1 ASTs. Tested against 291 real-world Elm files from 50 packages with 100% parse, round-trip, and printer idempotency rates.

Fast Elm tooling without the Node.js and Elm runtime overhead. Includes a linter covering the popular elm-review rule packages, dead code detection, dependency graph analysis, automated refactoring, semantic code search, an interactive TUI dashboard, and an LSP server for any editor. Everything ships as standalone native Rust binaries.

Generate Elm types, decoders, encoders, and typed Http request functions from your Rust types and Axum handlers. Built on elm-ast for AST construction and layout-aware pretty-printing.

A fast, batteries-included static site generator written in Rust. Parallel markdown rendering, incremental rebuilds, multi-engine templates (Tera, Handlebars, MiniJinja), asset pipeline, taxonomy system, and live reload dev server. Faster than Hugo on cold builds, 23x faster on incremental rebuilds.

A terminal user interface for Hoogle, Haskell's type-aware search engine. Browse Haskell APIs, read Haddock documentation, and view source code, all from your terminal.

A strongly opinionated toolkit for managing Haskell .cabal files. Provides an interactive TUI, a scriptable CLI, and an LSP server for editor integration, all backed by a parser with byte-identical round-trip fidelity.

An experimental nightly Rust library for outcome types that work with the ? operator beyond Result and Option. Includes Cancel for cancellation-aware control flow, Checked for checked floating-point operations, Parsing for parser-style outcomes with diagnostics, and Stage for staged computations that retain partial state.

A testing library for Rust that treats ? as the control-flow operator of tests. Composable matchers and rich failure output. No .unwrap().

A composable, type-safe web framework for Haskell. Your API is a type, your middleware is tracked at compile time, and your backend is pluggable. A reimagining of the ideas pioneered by Haskell's servant and Rust's typeway, axum, tower, and tonic.

A ground-up PostgreSQL client stack for Haskell. Compile-time checked SQL with raw .sql files validated against a live Postgres database at prepare time. No Template Haskell, no libpq, no C dependencies. 5x faster than hasql on multi-row reads, 10x faster on pipelined batch writes.

Lockstep-style stateful property testing for Hedgehog. Ports the ideas from quickcheck-lockstep onto Hedgehog's Command-based state machine framework with integrated shrinking, parallel testing, and GVar projections.

Distributed tracing as a scoped effect for Haskell, built natively on effectful. A span is a scoped, higher-order effect, so the current span is lexical rather than thread-local, which removes a class of context-loss bugs. Compiles down to hs-opentelemetry for OpenTelemetry export, and ships no-op, in-memory, and pretty-print interpreters for testing and development.

A high performance, denotationally designed reactive programming library for TypeScript. Two core abstractions with precise mathematical semantics. Event is a discrete stream with typed errors; Behavior is a continuous function from time to value, sampled lazily.

Functional, compositional animation for TypeScript. An animation is a pure function from progress to value. You compose animations with ordinary combinators, then hand the result to a renderer.

An extremely high performance React-like virtual DOM library optimized for V8. React-like hooks API and concurrent rendering. Reconciliation uses the same LIS keyed-diff algorithm as Inferno, with additional V8-focused tuning.

A TypeScript UI library that eliminates virtual DOM diffing by fixing DOM structure at mount time. Only leaf values (text content, attributes) update in place. No intermediate representation, no reconciliation.

Cycle.js architecture rebuilt on Effect. Your app is a pure function from sources (inputs) to sinks (outputs). All side effects live in drivers at the edges. Effect provides DI, lifecycle management, typed errors, and concurrency.

Type-safe tagged unions with generated constructors, guards, and pattern matching for TypeScript.

A ZIO / Effect style effect type for PureScript. Typed environment, typed errors, resource safety, layers, and structured concurrency. Ships two runtimes (rio-fiber and rio-aff) sharing vocabulary, layer algebra, and combinator names.

Composable, bidirectional SPA routing for Elm 0.19.1. Define your routes once as a typed codec pipeline and get both URL parsing and URL building from the same definition. No code generation, no CLI, no magic.

Zig libraries for building VST3 audio plugins. zig-vst3 provides raw Zig bindings and helper objects for the VST3 COM API; zig-vst3-plugin is a higher-level framework for writing plugins with reflected parameters, state, automation, events, and reusable VST3 shells.