Open Source Projects
Maintainer of nokogiri
Nokogiri is currently the most popular XML/HTML parsing library for Ruby developers. It supports CSS and XPath querying, has push and pull SAX parsers, validates schemas, performs XSLT transformations, and has a very simple and usable API. It's implemented in Ruby with native extensions in C and Java.
Maintainer of loofah, loofah-activerecord, and rails-html-sanitizer
Loofah underlies the default HTML sanitizer in Rails, which can be used to prevent cross-site scripting (XSS) attacks. It provides a variety of methods to clean or remove unsafe HTML, and delivers ActiveRecord plugins for Rails applications.
Rails HTML Sanitizer is the default library for sanitizing HTML fragments in Rails applications.
Maintainer of sqlite3 Ruby gem
The sqlite3 ruby gem is the original and most widely-used Ruby database adapter for SQLite.
I also maintain the the sqlean Ruby gem which wraps the sqlean sqlite extensions with Ruby accessors.
Maintainer of mechanize and http-cookie
Mechanize is a Ruby library used for automating website interaction and screen-scraping. It fully supports browser history and cookies, and allows easy authentication and form submission. The http-cookie project delivers standards-compliant cookie handling.
Maintainer of rake-compiler-dock, mini_portile, and ruby-c-extensions-explained
The rake-compiler-dock project delivers OCI images to help maintainers build precompiled native
gems. It's the Ruby analog for Python's pypa/manylinux
project for building Wheels.
The mini_portile project helps gem maintainers integrate native extensions with autoconf projects.
Finally, the Ruby C Extensions Explained is a project that demonstrates and documents a variety of ways to package and precompile native C code in a Ruby gem, complete with CI pipelines and two conference talks explaining the approaches.
Maintainer of tailwindcss-rails and tailwindcss-ruby
tailwindcss-ruby
packages tailwindcss, and tailwindcss-rails
provides tight integration with Rails.
Selected Smaller Projects and Contributions
I've made contributions to many other Ruby-related projects, including Rails, the Ruby language and its Prism parser, rdoc, the Truffleruby interpreter, Mastodon, Active Hash, racc, rexical, chromedriver-helper rake-compiler, sanitize, crass, grpc, ruby-magic, ruby-ffi, hoe-debugging, hoe-gemspec, hoe-bundler, and concurrent-ruby.
Outside of Ruby, I've made contributions to libxml2, git, valgrind, DOMPurify, and rofi.