awesome-ruby

September 2, 2026 · View on GitHub

A curated list of awesome Ruby frameworks, libraries and software.

Learning and Reference

Tutorials and Books

Examples and Exercises

Awesome Lists and Collections

Language and Tooling

Compilers and Interpreters

  • ruby/ruby - The Ruby Programming Language
  • opal/opal - Ruby ♥︎ JavaScript
  • jruby/jruby - JRuby, an implementation of Ruby on the JVM
  • truffleruby/truffleruby - A high performance implementation of the Ruby programming language, built on GraalVM.
  • MacRuby/MacRuby - MacRuby is an implementation of Ruby 1.9 directly on top of Mac OS X core technologies such as the Objective-C runtime and garbage collector, the LLVM compiler infrastructure and the Foundation and ICU frameworks.
  • natalie-lang/natalie - a work-in-progress Ruby compiler, written in Ruby and C++
  • nathansobo/treetop - A Ruby-based parsing DSL based on parsing expression grammars.
  • ruby/ruby.wasm - ruby.wasm is a collection of WebAssembly ports of the CRuby.
  • tenderlove/asmrepl - A REPL for x86-64 assembly language
  • chrisseaton/rhizome - A JIT for Ruby, implemented in pure Ruby
  • ruby-next/ruby-next - Ruby Next makes modern Ruby code run in older versions and alternative implementations
  • wouterken/crystalruby - Embed Crystal code directly in Ruby
  • rails/execjs - Run JavaScript code from Ruby
  • DavidHuie/quartz - A gem for calling Go code from within your Ruby code
  • MagLev/maglev - GemStone Maglev Ruby Repository (archived)
  • opal/opal-rails - Bringing Ruby to Rails · Rails bindings for Opal
  • seattlerb/ruby_parser - ruby_parser is a ruby parser written in pure ruby. It outputs s-expressions which can be manipulated and converted back to ruby via the ruby2ruby gem.
  • jbarnette/johnson - Johnson wraps JavaScript in a loving Ruby embrace. (archived)
  • headius/rubyflux - A Ruby static compiler.
  • chriswailes/RLTK - The Ruby Language Toolkit
  • SciRuby/rubex - rubex - A Ruby-like language for writing Ruby C extensions.

Build Systems

  • ruby/rake - A make-like build utility for Ruby.
  • CocoaPods/Xcodeproj - Create and modify Xcode projects from Ruby.
  • ElMassimo/vite_ruby - ⚡️ Vite.js in Ruby, bringing joy to your JavaScript experience
  • jruby/warbler - Warbler chirpily constructs .war files of your Ruby applications.
  • larsch/ocra - One-Click Ruby Application Builder
  • browserify-rails/browserify-rails - Browserify + Rails = a great way to modularize your legacy JavaScript
  • rake-compiler/rake-compiler - Provide a standard and simplified way to build and package Ruby C and Java extensions using Rake as glue.
  • mipearson/webpack-rails - Integrate webpack with your Ruby on Rails application (archived)
  • hone/mruby-cli - mruby-cli is a platform to build native command line applications for Linux, Windows, and OS X. It provides the tools necessary for building a standalone binary of your application from any machine. Take advantage of the power of Ruby without the cross-platform dependency headaches that go with it.
  • rayh/xcoder - ruby wrapper for Xcode build tools to aid automating builds

Package Management

Linters and Formatters

Debugging and Profiling

Editor and IDE Support

Web

Web Frameworks

HTTP and Networking Clients

API and GraphQL

Frontend and UI Components

Web Servers and Proxies

  • puma/puma - A Ruby/Rack web server built for parallelism
  • rack/rack - A modular Ruby web server interface.
  • socketry/falcon - A high-performance web server for Ruby, supporting HTTP/1, HTTP/2 and TLS.
  • postrank-labs/goliath - Goliath is a non-blocking Ruby web server framework
  • macournoyer/thin - A very fast & simple Ruby web server (archived)
  • dryruby/rack-throttle - Rack middleware for rate-limiting incoming HTTP requests.
  • webmachine/webmachine-ruby - Webmachine, the HTTP toolkit (in Ruby)
  • jlong/serve - Serve is a small Rack-based web server and rapid prototyping framework for Web applications (specifically Rails apps). Serve is meant to be a lightweight version of the Views part of the Rails MVC. This makes Serve an ideal framework for prototyping Rails applications or creating simple websites. Serve has full support for Rails-style partials and layouts.
  • igrigorik/em-proxy - EventMachine Proxy DSL for writing high-performance transparent / intercepting proxies in Ruby
  • mojombo/proxymachine - A simple TCP routing proxy built on EventMachine that lets you configure the routing logic in Ruby.
  • torquebox/torquebox - TorqueBox Ruby Platform (archived)

Scraping and Crawling

  • sparklemotion/mechanize - Mechanize is a ruby library that makes automated web interaction easy.
  • rubycdp/ferrum - Headless Chrome Ruby API
  • watir/watir - Watir Powered By Selenium
  • felipecsl/wombat - Lightweight Ruby web crawler/scraper with an elegant DSL which extracts structured data from pages.
  • vifreefly/kimuraframework - Write web scrapers in Ruby using a clean, AI-assisted DSL. Kimurai uses AI to figure out where the data lives, then caches the selectors and scrapes with pure Ruby. Get the intelligence of an LLM without the per-request latency or token costs.
  • jaimeiniesta/metainspector - Ruby gem for web scraping purposes. It scrapes a given URL, and returns you its title, meta description, meta keywords, links, images...
  • leonid-shevtsov/headless - Create a virtual X screen from Ruby, record videos and take screenshots.
  • cantino/ruby-readability - Port of arc90's readability project to Ruby
  • postmodern/spidr - A versatile Ruby web spidering library that can spider a site, multiple domains, certain links or infinitely. Spidr is designed to be fast and easy to use.
  • rubycdp/vessel - Fast high-level web crawling Ruby framework
  • gottfrois/link_thumbnailer - Ruby gem that fetches images and metadata from a given URL. Much like popular social website with link preview.
  • mynyml/harmony - Javascript + DOM in your ruby, the simple way

Data and Storage

Database Clients and ORMs

Serialization and Formats

  • rails-api/active_model_serializers - ActiveModel::Serializer implementation and Rails hooks
  • Netflix/fast_jsonapi - No Longer Maintained - A lightning fast JSON:API serializer for Ruby Objects.
  • nesquena/rabl - General ruby templating with json, bson, xml, plist and msgpack support
  • voxpupuli/json-schema - Ruby JSON Schema Validator
  • tilo/smarter_csv - Fastest end-to-end CSV ingestion for Ruby (with C acceleration). SmarterCSV auto-detects formats, applies smart defaults, and returns Rails-ready hashes for seamless use with ActiveRecord, Sidekiq, parallel jobs, and S3 pipelines — even for messy user-uploaded real-world data.
  • jsonapi-serializer/jsonapi-serializer - A fast JSON:API serializer for Ruby (fork of Netflix/fast_jsonapi)
  • westonganger/spreadsheet_architect - Spreadsheet Architect is a library that allows you to create XLSX, ODS, or CSV spreadsheets super easily from ActiveRecord relations, plain Ruby objects, or tabular data.
  • amatsuda/jb - A simple and fast JSON API template engine for Ruby on Rails
  • procore-oss/blueprinter - Simple, Fast, and Declarative Serialization Library for Ruby
  • okuramasafumi/alba - Alba is a JSON serializer for Ruby, JRuby and TruffleRuby.
  • yorickpeterse/oga - Oga is an XML/HTML parser written in Ruby.
  • zdavatz/spreadsheet - The Ruby Spreadsheet by ywesee GmbH
  • msgpack/msgpack-ruby - MessagePack implementation for Ruby / msgpack.org[Ruby]
  • ruby/json - JSON implementation for Ruby
  • kgiszczak/shale - Shale is a Ruby object mapper and serializer for JSON, YAML, TOML, CSV and XML. It allows you to parse JSON, YAML, TOML, CSV and XML data and convert it into Ruby data structures, as well as serialize data structures into JSON, YAML, TOML, CSV or XML.
  • dmendel/bindata - BinData - Reading and Writing Binary Data in Ruby
  • caxlsx/caxlsx - xlsx generation with charts, images, automated column width, customizable styles and full schema validation. Axlsx excels at helping you generate beautiful Office Open XML Spreadsheet documents without having to understand the entire ECMA specification. Check out the README for some examples of how easy it is. Best of all, you can validate your xlsx file before serialization so you know for sure that anything generated is going to load on your client's machine.
  • yosiat/panko_serializer - High Performance JSON Serialization for ActiveRecord & Ruby Objects
  • pcreux/csv-importer - CSV Import for humans on Ruby / Ruby on Rails
  • ruby/psych - A libyaml wrapper for Ruby
  • comma-csv/comma - Comma is a small CSV (ie. comma separated values) generation extension for Ruby objects, that lets you seamlessly define a CSV output format via a small DSL
  • ruby-protobuf/protobuf - A pure ruby implementation of Google's Protocol Buffers
  • joshbuddy/jsonpath - Ruby implementation of http://goessner.net/articles/JsonPath/
  • fotinakis/jsonapi-serializers - Pure Ruby readonly serializers for the JSON:API spec.

Caching and Queues

Search and Indexing

Machine Learning and AI

LLM and Inference

  • crmne/ruby_llm - One delightful Ruby framework for every major AI provider. Build AI agents, chatbots, RAG apps, and multimodal workflows in beautiful, expressive code.
  • alexrudall/ruby-openai - OpenAI API + Ruby! 🤖❤️ GPT-5 & Realtime WebRTC compatible!
  • patterns-ai-core/langchainrb - Build LLM-powered applications in Ruby
  • yjacquin/fast-mcp - A Ruby Implementation of the Model Context Protocol
  • modelcontextprotocol/ruby-sdk - The official Ruby SDK for the Model Context Protocol servers and clients.
  • obie/claude-on-rails - A development framework for Ruby on Rails developers using Claude Code, inspired by SuperClaude
  • maquina-app/rails-mcp-server - A Ruby gem implementation of a Model Context Protocol (MCP) server for Rails projects. This server allows LLMs (Large Language Models) to interact with Rails projects through the Model Context Protocol.

Machine Learning Frameworks

Natural Language Processing

Data Science and Analytics

Networking and Distributed

Networking

  • mikel/mail - A Really Ruby Mail Library
  • anycable/anycable - Realtime server for reliable two-way communication to power-up any backend
  • websocket-rails/websocket-rails - Plug and play websocket support for ruby on rails.
  • truemail-rb/truemail - 🚀 Configurable framework agnostic plain Ruby 📨 email validator/verifier. Verify email via Regex, DNS, SMTP and even more. Be sure that email address valid and exists.
  • weppos/whois - An intelligent — pure Ruby — WHOIS client and parser.
  • faye/faye-websocket-ruby - Standards-compliant WebSocket client and server
  • net-ssh/net-ssh - Pure Ruby implementation of an SSH (protocol 2) client
  • mailman/mailman - An incoming mail processing microframework in Ruby (archived)
  • igrigorik/http-2 - Pure Ruby implementation of HTTP/2 protocol
  • dcparker/ruby-gmail - A Rubyesque interface to Gmail. Connect to Gmail via IMAP and manipulate emails and labels. Send email with your Gmail account via SMTP. Includes full support for parsing and generating MIME messages.
  • socketry/rubydns - A DSL for building fun, high-performance DNS servers.
  • cjheath/geoip - The Ruby gem for querying Maxmind.com's GeoIP database, which returns the geographic location of a server given its IP address
  • weppos/publicsuffix-ruby - Domain name parser for Ruby based on the Public Suffix List.
  • adhearsion/adhearsion - A Ruby framework for building telephony applications
  • adhearsion/blather - XMPP/Jabber Library and DSL for Ruby written on EventMachine and Nokogiri.
  • tent/tentd - Reference implementation of a Tent server in Ruby (archived)
  • negativecode/vines - An XMPP chat server for Ruby.
  • imanel/websocket-ruby - Universal Ruby library to handle WebSocket protocol
  • WinRb/WinRM - Ruby library for Windows Remote Management

RPC and Messaging

Distributed Systems

Cloud and Infrastructure

Monitoring and Observability

User Interface

Terminal and Console UI

Applications and End User Tools

Graphics and Media

Image and Video

Security

Cryptography

Security Tools

Authentication and Authorization

Concurrency and Performance

Concurrency and Parallelism

Performance and Optimization

Testing and Quality

Testing

Utilities

Command Line Tools

Logging and Configuration

Text Processing

  • realm/jazzy - Soulful docs for Swift & Objective-C
  • slim-template/slim - Slim is a template language whose goal is to reduce the syntax to the essential parts without becoming cryptic.
  • asciidoctor/asciidoctor - :gem: A fast, open source text processor and publishing toolchain, written in Ruby, for converting AsciiDoc content to HTML 5, DocBook 5, and other formats.
  • prawnpdf/prawn - Fast, Nimble PDF Writer for Ruby
  • github/gemoji - Emoji images and names.
  • svenfuchs/rails-i18n - Repository for collecting Locale data for Ruby on Rails I18n as well as other interesting, Rails related I18n stuff
  • mileszs/wicked_pdf - PDF generator (from HTML) plugin for Ruby on Rails
  • rouge-ruby/rouge - A pure Ruby code highlighter that is compatible with Pygments
  • mustache/mustache - Logic-less Ruby templates.
  • pdfkit/pdfkit - A Ruby gem to transform HTML + CSS into PDFs using the command-line utility wkhtmltopdf
  • premailer/premailer - Preflight for HTML email
  • rgrove/sanitize - Ruby HTML and CSS sanitizer.
  • lsegal/yard - YARD is a Ruby Documentation tool. The Y stands for "Yay!"
  • whomwah/rqrcode - A Ruby library that encodes QR Codes
  • rtomayko/tilt - Generic interface to multiple Ruby template engines
  • ruby/did_you_mean - The gem that has been saving people from typos since 2014
  • gettalong/kramdown - kramdown is a fast, pure Ruby Markdown superset converter, using a strict syntax definition and supporting several common extensions.
  • fphilipe/premailer-rails - CSS styled emails without the hassle.
  • sporkmonger/addressable - Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. It is flexible, offers heuristic parsing, and additionally provides extensive support for IRIs and URI templates.
  • benbalter/word-to-markdown - A ruby gem to liberate content from Microsoft Word documents
  • gettalong/hexapdf - Versatile PDF creation and manipulation for Ruby
  • samg/diffy - Easy Diffing in Ruby
  • asciidoctor/asciidoctor-pdf - :page_with_curl: Asciidoctor PDF: A native PDF converter for AsciiDoc based on Asciidoctor and Prawn, written entirely in Ruby.
  • daddyz/phonelib - Ruby gem for phone validation and formatting using google libphonenumber library data
  • shioyama/mobility - Pluggable Ruby translation framework
  • Studiosity/grover - A Ruby gem to transform HTML into PDFs, PNGs or JPEGs using Google Puppeteer/Chromium
  • ruby-i18n/i18n - Internationalization (i18n) library for Ruby
  • flavorjones/loofah - Ruby library for HTML/XML transformation and sanitization
  • rsl/stringex - Some [hopefully] useful extensions to Ruby’s String class. It is made up of three libraries: ActsAsUrl [permalink solution with better character translation], Unidecoder [Unicode to Ascii transliteration], and StringExtensions [miscellaneous helper methods for the String class].
  • peterhellberg/hashids.rb - A small Ruby gem to generate YouTube-like hashes from one or many numbers. Use hashids when you do not want to expose your database ids to the user.
  • k0kubun/hamlit - High Performance Haml Implementation
  • ruby/rdoc - RDoc produces HTML and online documentation for Ruby projects.
  • licensee/licensee - A Ruby Gem to detect under what license a project is distributed.
  • boazsegev/combine_pdf - A Pure ruby library to merge PDF files, number pages and maybe more...
  • podigee/device_detector - DeviceDetector is a precise and fast user agent parser and device detector written in Ruby
  • twitter/twitter-cldr-rb - Ruby implementation of the ICU (International Components for Unicode) that uses the Common Locale Data Repository to format dates, plurals, and more.
  • fnando/kitabu - A framework for creating e-books from Markdown using Ruby. Using the Prince PDF generator, you'll be able to get high quality PDFs. Also supports EPUB, Mobi, Text and HTML generation.
  • xijo/reverse_markdown - Ruby gem to convert html into markdown
  • zendesk/curly - The Curly template language allows separating your logic from the structure of your HTML templates. (archived)
  • pygments/pygments.rb - 💎 Ruby wrapper for Pygments syntax highlighter
  • ryan-endacott/verbal_expressions - Make difficult regular expressions easy! Ruby port of the awesome VerbalExpressions repo - https://github.com/jehna/VerbalExpressions
  • sstephenson/global_phone - Parse, validate, and format phone numbers in Ruby using Google's libphonenumber database (archived)
  • infinum/phrasing - Edit phrases inline for your Ruby on Rails applications! (archived)
  • janx/ruby-pinyin - 中文汉字转拼音, 支持中英文符号混合词语。Pinyin is a romanization system (phonemic notation) of Chinese characters, this gem helps you to convert Chinese characters into pinyin form.
  • tom-lord/regexp-examples - Generate strings that match a given regular expression
  • judofyr/temple - Template compilation framework in Ruby
  • r18n/r18n - I18n tool to translate your Ruby application.
  • usmanbashir/haikunator - Heroku-like random name generator.
  • bhollis/maruku - A pure-Ruby Markdown-superset interpreter (Official Repo). (archived)
  • yaroslav/russian - Russian language support for Ruby and Rails: localization, date and time handling, pluralization, and improved Russian language support in Rails. | Поддержка русского языка для Ruby и Rails: локализация, работа с датой и временем, плюрализация, локализация, улучшенная поддержка русского языка в Rails.
  • bmuller/gender_detector - Get gender from first name in Ruby.
  • rtomayko/rocco - Rocco is Docco in Ruby (archived)

Files and Operating System

Date and Time

Automation and Scripting

General Purpose Libraries

  • aasm/aasm - AASM - State machines for Ruby classes (plain Ruby, ActiveRecord, Mongoid, NoBrainer, Dynamoid)
  • solnic/virtus - [DISCONTINUED ] Attributes on Steroids for Plain Old Ruby Objects
  • pluginaweek/state_machine - Adds support for creating state machines for attributes on any Ruby class
  • hashie/hashie - Hashie is a collection of classes and mixins that make Ruby hashes more powerful.
  • RubyMoney/money - A Ruby Library for dealing with money and currency conversion.
  • kanwei/algorithms - Ruby algorithms and data structures. C extensions
  • fnando/browser - Do some browser detection with Ruby. Includes ActionController integration.
  • countries/countries - All sorts of useful information about every country packaged as convenient little country objects. It includes data from ISO 3166 (countries and states/subdivisions ), ISO 4217 (currency), and E.164 (phone numbers).
  • AaronLasseigne/active_interaction - :briefcase: Manage application specific business logic.
  • fxn/zeitwerk - Efficient and thread-safe code loader for Ruby
  • ffi/ffi - Ruby FFI
  • hamstergem/hamster - Efficient, Immutable, Thread-Safe Collection classes for Ruby
  • geekq/workflow - Ruby finite-state-machine-inspired API for modeling workflow
  • dry-rb/dry-validation - Validation library with type-safe schemas and rules
  • leereilly/swot - Archived — SWOT delighted millions of students with GitHub discounts and saved bazillions of review hours. Follow JetBrains/swot for future updates. (archived)
  • carmen-ruby/carmen - A repository of geographic regions for Ruby
  • avdi/naught - A toolkit for building Null Object classes in Ruby
  • dry-rb/dry-types - Flexible type system for Ruby with coercions and constraints
  • dry-rb/dry-monads - Useful, common monads in idiomatic Ruby
  • adomokos/light-service - Series of Actions with an emphasis on simplicity.
  • state-machines/state_machines - Adds support for creating state machines for attributes on any Ruby class
  • rubyworks/facets - Ruby Facets
  • sunny/actor - Composable Ruby service objects
  • nebulab/simple_command - A simple, standardized way to build and use Service Objects (aka Commands) in Ruby
  • liufengyun/hashdiff - Hashdiff is a ruby library to to compute the smallest difference between two hashes
  • apneadiving/waterfall - A slice of functional programming to chain ruby services and blocks, thus providing a new approach to flow control. Make them flow!
  • tomstuart/monads - Simple Ruby implementations of some common monads.
  • sferik/active_emoji - A collection of emoji aliases for core Ruby methods
  • barsoom/attr_extras - Takes some boilerplate out of Ruby with methods like attr_initialize.
  • u-gems/u-case - Represent use cases in a simple and powerful way while writing modular, expressive and sequentially logical code.
  • jdantonio/functional-ruby - A gem for adding functional programming tools to Ruby. Inspired by Erlang, Clojure, Haskell, and Functional Java. (archived)
  • tom-pang/Values - Simple immutable value objects for ruby (the readme is longer than the code)
  • soveran/micromachine - Minimal Finite State Machine
  • marcandre/backports - The latest features of Ruby backported to older versions.
  • jarmo/require_all - A wonderfully simple way to load Ruby code

Other