A categorized community-driven collection of awesome Ruby libraries, tools, frameworks and software. The essential Ruby to build modern Apps and Web Apps.
ActiveAdmin - A Ruby on Rails framework for creating elegant backends for website administration.
ActiveScaffold - ActiveScaffold provides quick and powerful user interfaces for CRUD (create, read, update, delete) operations for Rails applications. It’s excellent for generating admin interfaces, managing Data-Heavy Applications, creating Widgets or for quick prototyping. ActiveScaffold is completly customizable and offers a bunch of additional features including searching, pagination, layout control and overrides of fields, forms and templates.
Administrate - A Rails engine that helps you put together a super-flexible admin dashboard, by Thoughtbot.
Avo Admin for Rails - Avo is the modern approach to building an advanced admin panel that can be used by the entire organization. It has all the tools an admin panel needs and more. We have carefully made sure that you have all the escape hatches you need to ensure you can build your next admin panel for Ruby on Rails incredibly fast and easily.
bhf - A simple to use Rails-Engine-Gem that offers an admin interface for trusted user.
Hot Glue - Hot Glue takes a different approach to building both admin and user dashboards. It is a code generation tool like the Rails scaffold generator but with significantly more features. Instead of providing a lot of configuration options, Hot Glue can generate your code. Good for lists & CRUD views for both admin and user-facing dashboards.
MotorAdmin - A low-code Admin panel and Business Intelligence Rails engine. No DSL - configurable from the UI.
RailsAdmin - A Rails engine that provides an easy-to-use interface for managing your data.
Trestle - A modern, responsive admin framework for Rails. Build a back-end in minutes that will grow with the needs of your application.
Analytics
Ahoy - A solid foundation to track visits and events in Ruby, JavaScript, and native apps.
Impressionist - Rails Plugin that tracks impressions and page views.
Legato - Model analytics reports and queries against the official Google Analytics Reporting API.
Rack::Tracker - Rack middleware that can be hooked up to multiple services and exposing them in a unified fashion.
Staccato - Track analytics into the official Google Analytics Collection API.
JSONAPI::Resources - JSONAPI::Resources, or “JR”, provides a framework for developing a server that complies with the JSON API specification.
JSONAPI::Utils - JSONAPI::Utils is built on top of JSONAPI::Resources taking advantage of its resource-driven style and bringing an easy way to build modern JSON APIs with no or less learning curve.
Jsonite - A tiny, HAL-compliant JSON presenter for your APIs.
Pliny - Opinionated template Sinatra app for writing excellent APIs in Ruby.
rabl - General ruby templating with json, bson, xml, plist and msgpack support.
OAuth2 - A Ruby wrapper for the OAuth 2.0 protocol.
Rodauth-Oauth - A rodauth OAuth and OpenID provider plugin.
Authorization
acl9 - Acl9 is a role-based authorization system that provides a concise DSL for securing your Rails application.
AccessGranted - Multi-role and whitelist based authorization gem for Rails.
ActionPolicy - Authorization framework for Ruby and Rails applications. Composable, extensible and performant.
CanCanCan - Continuation of CanCan, an authorization Gem for Ruby on Rails.
Consul - A scope-based authorization solution for Ruby on Rails.
Petergate - Easy to use and read action and content based authorizations.
Pundit - Minimal authorization through OO design and pure Ruby classes.
Automation
ActiveWorkflow - An intelligent process and workflow automation platform based on software agents.
Danger - Automate your team’s conventions surrounding code review.
Huginn - Huginn is a system for building agents that perform automated tasks for you online.
Neovim - Ruby bindings for Neovim to make your own neovim editor plugins in Ruby.
Runbook - A framework and Ruby DSL for progressive system automation.
Breadcrumbs
Breadcrumbs on Rails - A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project.
Gretel - A Ruby on Rails plugin that makes it easy yet flexible to create breadcrumbs.
loaf - Manages and displays breadcrumb trails in Rails app - lean & mean.
Simple Navigation - A ruby gem for creating navigation (html list, link list or breadcrumbs with multiple levels) for your Rails 2, 3 & 4, Sinatra or Padrino.
Dalli - A high performance pure Ruby client for accessing memcached servers.
Garner - A set of Rack middleware and cache helpers that implement various caching strategies.
IdentityCache - A blob level caching solution to plug into ActiveRecord.
Kashmir - Kashmir is a Ruby DSL that makes serializing and caching objects a snap.
Readthis - High performance, pooled, ActiveSupport compliant caching with Redis.
Record Cache - Cache Active Model Records in Rails 3.
redis-store - Redis Store provides a full set of stores (Cache, I18n, Session, HTTP Cache) for modern Ruby frameworks like: Ruby on Rails, Sinatra, Rack, Rack::Cache and I18n. It supports object marshalling, timeouts, single or multiple nodes, and namespaces.
Second Level Cache - Write-Through and Read-Through caching library for ActiveRecord 4.
Captchas and anti-spam
ActsAsTextcaptcha - Protection for Rails models with text-based logic question captchas (from Rob Tuley’s textcaptcha.com)
Invisible Captcha - Unobtrusive and flexible spam protection based on the honeypot strategy. It also provides a time-sensitive form submission.
Rakismet - Easy Akismet and TypePad AntiSpam integration for Rails.
humidifier - Programmatically generate and manage AWS CloudFormation templates, stacks, and change sets.
CMS
Alchemy CMS - A powerful, userfriendly and flexible Open Source Rails CMS.
Avo CMS for Rails - Avo is a very custom Content Management System for Ruby on Rails that saves engineers and teams months of development time. It’s designed to use your app’s database structure, uses configuration instead of traditional methods, and when configuration isn’t enough, it falls back to writing regular Rails code that you’re used to.
Camaleon CMS - A dynamic and advanced content management system based on Ruby on Rails 4.
Storytime - Rails 4+ CMS and blogging engine, with a core focus on content.
Code Analysis and Metrics
Brakeman - A static analysis security vulnerability scanner for Ruby on Rails applications.
Coverband - Rack middleware to help measure production code coverage.
Fasterer - Make your Rubies go faster with this command line tool highly inspired by fast-ruby and Sferik’s talk at Baruco Conf.
Flay - Flay analyzes code for structural similarities. Differences in literal values, variable, class, method names, whitespace, programming style, braces vs do/end, etc are all ignored. Making this totally rad.
Flog - Flog reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in.
fukuzatsu - Complexity analysis tool with a rich web front-end.
Concurrent Ruby - Modern concurrency tools including agents, futures, promises, thread pools, supervisors, and more. Inspired by Erlang, Clojure, Scala, Go, Java, JavaScript, and classic concurrency patterns.
EventMachine - An event-driven I/O and lightweight concurrency library for Ruby.
forkoff - brain-dead simple parallel processing for ruby.
Parallel - Run any code in parallel Processes (> use all CPUs) or Threads (> speedup blocking operations). Best suited for map-reduce or e.g. parallel downloads/uploads.
Econfig - Flexible configuration for Rails applications.
ENVied - ensure presence and type of your app’s ENV-variables
Envyable - The simplest YAML to ENV config loader.
Figaro - Simple, Heroku-friendly Rails app configuration using ENV and a single YAML file.
Global - Provides accessor methods for your configuration data.
RailsConfig - Multi-environment yaml settings for Rails3.
Sail - A lightweight Rails engine that brings an admin panel for managing configuration settings on a live Rails app.
Core Extensions
ActiveSupport - A collection of utility classes and standard library extensions.
Addressable - Addressable is a replacement for the URI implementation that is part of Ruby’s standard library. It more closely conforms to RFC 3986, RFC 3987, and RFC 6570 (level 4), providing support for IRIs and URI templates.
Bitwise - Fast, memory efficient bitwise operations on large binary strings
Finishing Moves - Small, focused, incredibly useful methods added to core Ruby classes. Includes the endlessly useful nil_chain.
Docile - A tiny library that lets you map a DSL (domain specific language) to your Ruby objects in a snap.
dry-rb - dry-rb is a collection of next-generation Ruby libraries, each intended to encapsulate a common task.
Hamster - Efficient, immutable, and thread-safe collection classes for Ruby.
Hanami::Utils - Lightweight, non-monkey-patch class utilities for Hanami and Ruby app.
MemoWise - Memoize any instance/class/module method, including support for frozen objects - rigorously tested and benchmarked on all Rubies - fast performance of memoized reads.
Ruby Facets - The premiere collection of general purpose method extensions and standard additions for Ruby.
Trick Bag - Assorted Ruby classes and methods to simplify and enhance your code.
Countries - All sorts of useful information about every country packaged as pretty little country objects.
i18n_data - country/language names and 2-letter-code pairs, in 85 languages, for country/language i18n.
normalize_country - Convert country names and codes to a standard, includes a conversion program for XMLs, CSVs and DBs.
Phonelib - Ruby gem for phone validation and formatting using Google libphonenumber library data.
Phony - Fast international phone number (E164 standard) normalizing, splitting and formatting.
validates_zipcode - Postal code / zipcode validation for Rails, supporting 233 country codes.
CRM
Fat Free CRM - An open source Ruby on Rails based customer relationship management platform.
Hitobito - An open source Ruby on Rails based community management solution.
Cryptocurrencies and Blockchains
Blockchain Lite - Build your own blockchains with crypto hashes; revolutionize the world with blockchains, blockchains, blockchains one block at a time.
MoneyTree - A Ruby implementation of Bitcoin HD Wallets (Hierarchical Deterministic) BIP32.
Peatio - Most Advanced Cryptocurrency open-source assets exchange.
Dashboards
Blazer - Simple data viewer using only SQL. Output to table, chart, and maps.
Smashing - Smashing is a Sinatra based framework that lets you build beautiful dashboards. This project is the maintained spiritual successor to the Dashing framework.
Dashing-Rails - The exceptionally handsome dashboard framework for Rails.
Data Processing and ETL
attr-gather - A gem for creating workflows that “enhance” entities with extra attributes. At a high level, attr-gather provides a process to fetch information from many data sources (such as third party APIs, legacy databases, etc.) in a fully parallelized fashion.
CSV Reader - A modern tabular data (line-by-line records) reader supports “classic” CSV but also CSV Numerics, CSV <3 JSON, CSV <3 YAML, tab, space or fixed width fields (FWF) and many more flavors and dialects.
Kiba - A lightweight data processing / ETL framework for Ruby.
ruby-stemmer - It Provides Snowball algorithm for stemming purposes.
Data Visualization
Chartkick - Create beautiful Javascript charts with one line of Ruby.
GeoPattern - Create beautiful generative geometric background images from a string.
LazyHighCharts - A simple and extremely flexible way to use HighCharts from ruby code. Tested on Ruby on Rails, Sinatra and Nanoc, but it should work with others too.
ApexCharts.rb - Awesome charts for your ruby app. Works on any ruby app, including Rails app. It even works on plain HTML+ERB files.
RailRoady - Ruby on Rails 3/4 model and controller UML class diagram generator.
Rails Erd - Generate Entity-Relationship Diagrams for Rails applications.
Ruby/GraphViz - Ruby interface to the GraphViz graphing tool.
Database Drivers
Cassandra Driver - A pure ruby driver for Apache Cassandra with asynchronous io and configurable load balancing, reconnection and retry policies.
SchemaPlus - SchemaPlus provides a collection of enhancements and extensions to ActiveRecord
SecondBase - Seamless second database integration for Rails. SecondBase provides support for Rails to manage dual databases by extending ActiveRecord tasks that create, migrate, and test your application.
Seedbank - Seedbank allows you to structure your Rails seed data instead of having it all dumped into one large file.
Seed dump - Rails 4 task to dump (parts) of your database to db/seeds.rb.
pry-rails - Avoid repeating yourself, use pry-rails instead of copying the initializer to every rails project. This is a small gem which causes rails console to open pry. It therefore depends on pry.
Seeing Is Believing - Displays the results of every line of code in your file.
tapping_device - A tool that allows you to inspect your program from an Object’s perspective.
Xray - A development tool that reveals your UI’s bones.
Decorators
Draper - Draper adds an object-oriented layer of presentation logic to your Rails application.
Decent Exposure - A helper for creating declarative interfaces in controllers.
Responders - A set of Rails responders to dry up your application.
ShowFor - Quickly show a model information with I18n features. Like form_for for displaying model data.
DevOps Tools
Backup - Provides an elegant DSL in Ruby for performing backups on UNIX-like systems.
BOSH - Cloud Foundry BOSH is an open source tool chain for release engineering, deployment and lifecycle management of large scale distributed services.
Capistrano - A remote server automation and deployment tool written in Ruby.
Centurion - A mass deployment tool for Docker fleets.
Chef - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
Einhorn - Einhorn will open one or more shared sockets and run multiple copies of your process. You can seamlessly reload your code, dynamically reconfigure Einhorn, and more.
Itamae - Simple and lightweight configuration management tool inspired by Chef.
Kamal - Kamal offers zero-downtime deploys, rolling restarts, asset bridging, remote builds, accessory service management, and everything else you need to deploy and manage your web app in production with Docker.
Mina - Really fast deployer and server automation tool.
Puppet - An automated administrative engine for your Linux, Unix, and Windows systems, performs administrative tasks (such as adding users, installing packages, and updating server configurations) based on a centralized specification.
Rubber - The rubber plugin enables relatively complex multi-instance deployments of RubyOnRails applications to Amazon’s Elastic Compute Cloud (EC2).
SSHKey - SSH private and public key generator in pure Ruby (RSA & DSA).
Sunzi - Server provisioning utility for minimalists
Ruby-LXC - Native ruby binding for Linux containers.
Vagrant - Create and configure lightweight, reproducible, and portable development environments.
The Ruby Toolbox - A comprehensive catalog of Ruby and Rails plug-ins, gems, tools and resources for Ruby developers with popularity ratings based on GitHub watchers and Gem downloads.
Documentation
Annotate - Add a comment documenting the current schema to the top or bottom of each of your ActiveRecord models.
Apipie - Rails API documentation and display tool using Ruby syntax.
Asciidoctor - A fast, Ruby-based text processor & publishing toolchain for converting AsciiDoc to HTML5, DocBook, EPUB3, PDF & more.
Documentation - A Rails engine to provide the ability to add documentation to a Rails application.
GitHub Changelog Generator - Automatically generate change log from your tags, issues, labels and pull requests on GitHub.
Gollum - A simple, Git-powered wiki with a sweet API and local frontend.
grape-swagger - Add swagger compliant documentation to your Grape API.
Hanna - An RDoc formatter built with simplicity, beauty and ease of browsing in mind.
Hologram - A markdown based documentation system for style guides. It parses comments in your CSS and helps you turn them into a beautiful style guide.
Inch - Inch is a documentation measurement and evalutation tool for Ruby code, based on YARD.
RDoc - RDoc produces HTML and command-line documentation for Ruby projects.
MailCatcher - Catches mail and serves it through a dream.
MailForm - Send e-mail straight from forms in Rails with I18n, validations, attachments and request information.
Maily - A Rails Engine to manage, test and navigate through all your email templates of your app, being able to preview them directly in your browser.
MidiSmtpServer - The highly customizable ruby SMTP-Service library with builtin support for AUTH and SSL/STARTTLS, 8BITMIME and SMTPUTF8, IPv4 and IPv6 and more.
Roadie - Roadie tries to make sending HTML emails a little less painful by inlining stylesheets and rewriting relative URLs for you inside your emails.
Sup - A curses threads-with-tags style email client.
Truemail - Configurable framework agnostic plain Ruby email validator/verifier. Verify email via Regex, DNS and SMTP. Be sure that email address valid and exists.
Encryption
bcrypt-ruby - bcrypt-ruby is a Ruby binding for the OpenBSD bcrypt() password hashing algorithm.
RbNaCl - Ruby binding to the Networking and Cryptography (NaCl) library.
Sym - A time-saving symmetric encryption gem based on OpenSSL that uses 256bit (password-encrypted) keys. Read the key from STDIN, a file, ENV or, on a Mac: OS-X Keychain.
Symmetric Encryption - Transparently encrypt ActiveRecord, Mongoid, and MongoMapper attributes. Encrypt passwords in configuration files. Encrypt entire files at rest.
Themis - crypto library for painless data security, providing symmetric and asymmetric encryption, secure sockets with forward secrecy, for mobile and server platforms.
Environment Management
chruby - Change your current Ruby. No shims, no crazy options or features, ~90 LOC.
ruby-install - Installs Ruby, JRuby, Rubinius, MagLev or MRuby.
RVM - RVM is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems.
Tokaido - Ruby, Rails, SQLite and Redis encapsulated in a single drag-and-drop OS X app, designed to make installing a working RoR environment easy for beginners.
Uru - Uru is a lightweight, multi-platform command line tool that helps you use the multiple rubies on your 32/64-bit Linux, OS X, or Windows systems.
Error Handling
Airbrake - The official Airbrake library for Ruby on Rails (and other Rack based frameworks).
Rollbar - Easy and powerful exception and error tracking for your applications.
Event Sourcing
Eventide Project - Pub/sub, event sourcing, and evented autonomous services backed by the Message DB message store.
Rails Event Store (RES) - A library for publishing, consuming, storing and retrieving events. It’s your best companion for going with an event-driven architecture for your Rails application.
Feature Flippers and A/B Testing
Motorhead - A Rails Engine framework that helps safe and rapid feature prototyping.
flipper - Feature flipping for ANYTHING. Make turning features on/off so easy that everyone does it. Whatever your data store, throughput, or experience.
Unleash - Ruby client for Unleash, a powerful feature toggle system that gives you a great overview over all feature toggles across all your applications and services.
Vanity - an A/B testing framework for Rails that is datastore agnostic.
File Upload
attache - Standalone image and file server to decouple your app from file management concerns.
CarrierWave - Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks.
DragonFly - A Ruby gem for on-the-fly processing - suitable for image uploading in Rails, Sinatra and much more!.
PaperClip - Easy file attachment management for ActiveRecord. Deprecated as of May 14, 2018.
Refile - A modern file upload library for Ruby applications, Refile is an attempt by CarrierWave’s original author to fix the design mistakes and overengineering in CarrierWave.
Shrine - Toolkit for handling file uploads in Ruby.
File System Listener
Guard - A command line tool to easily handle events on file system modifications.
Guard::LiveReload - Automatically reload your browser when ‘view’ files are modified.
Listen - The Listen gem listens to file modifications and notifies you about the changes.
Rerun - Restarts an app when the filesystem changes. Uses growl and FSEventStream if on OS X.
Form Builder
Cocoon - Dynamic nested forms using jQuery made easy; works with formtastic, simple_form or default forms.
ComfyBootstrapForm - Rails form builder that makes it easy to create forms with Bootstrap 4 markup
Formtastic - A Rails form builder plugin with semantically rich and accessible markup.
Rails Bootstrap Forms - Rails form builder that makes it super easy to create beautiful-looking forms with Twitter Bootstrap 3+.
Rapidfire - Making dynamic surveys should be easy!
Reform - Gives you a form object with validations and nested setup of models. It is completely framework-agnostic and doesn’t care about your database.
Dragon Ruby - DragonRuby is a zero dependency, cross platform, Ruby runtime built on top of mRuby, libSDL, and LLVM. Write Ruby on any OS and deploy to PC, Mac, Linux, iOS, Android, Raspberry Pi, WASM, Nintendo Switch, Sony Playstation, and Microsoft Xbox.
Gosu - A 2D game development library for the Ruby and C++ programming languages.
Mittsu - Mittsu makes 3D graphics easier by providing an abstraction over OpenGL, and is based heavily off of THREE.js.
Ruby 2D - Create cross-platform 2D applications, games, and visualizations with ease.
Taylor - Taylor is a game engine built using mruby and raylib.
Gem Generators
Gemsmith - A command line interface for smithing new Ruby gems.
Hoe - Hoe is a Rake/RubyGems helper for project Rakefiles.
Geolocation
Geocoder - A complete geocoding solution for Ruby. With Rails it adds geocoding (by street or IP address), reverse geocoding (find street address based on given coordinates), and distance queries.
geoip - Searches a GeoIP database for a given host or IP address, and returns information about the country where the IP address is allocated, and the city, ISP and other information.
Geokit - Geokit gem provides geocoding and distance/heading calculations.
Nokogiri - An HTML, XML, SAX, and Reader parser with XPath and CSS selector support.
Nokolexbor - High-performance HTML5 parser based on Lexbor, with support for both CSS selectors and XPath.
Oga - An XML/HTML parser written in Ruby. Oga does not require system libraries such as libxml, making it easier and faster to install on various platforms.
ROXML - Custom mapping and bidirectional marshalling between Ruby and XML using annotation-style class methods, via Nokogiri or LibXML.
HTTP Clients and tools
Accept Language - A tiny library for parsing the Accept-Language header from browsers (as defined in RFC 2616).
excon - Usable, fast, simple Ruby HTTP 1.1. It works great as a general HTTP(s) client and is particularly well suited to usage in API clients.
Faraday - an HTTP client lib that provides a common interface over many adapters (such as Net::HTTP) and embraces the concept of Rack middleware when processing the request/response cycle.
Device Detector - A precise and fast user agent parser and device detector, backed by the largest and most up-to-date user agent database.
Http Client - Gives something like the functionality of libwww-perl (LWP) in Ruby.
HTTP - The HTTP Gem: a simple Ruby DSL for making HTTP requests.
HTTPX - Pure ruby HTTP client, supports HTTP/2 and HTTP/1, concurrent requests, plugin system for extended features (cookies, retries, following redirects, proxy, streaming…).
Rubinius - An implementation of the Ruby programming language. Rubinius includes a bytecode virtual machine, Ruby syntax parser, bytecode compiler, generational garbage collector, just-in-time (JIT) native machine code compiler, and Ruby Core and Standard libraries.
TruffleRuby - A high performance implementation of the Ruby programming language. Built on the GraalVM by Oracle Labs.
Internationalization
FastGettext - Ruby internationalization tool with less memory, simple, clean namespace and threadsafe.
Globalize - Globalize builds on the I18n API in Ruby on Rails to add model translations to ActiveRecord models.
i18n-tasks - Manage missing and unused translations with the awesome power of static analysis.
i18n - Ruby Internationalization and localization solution.
mini_i18n - Minimalistic, flexible and fast Internationalization library. It supports localization, interpolations, pluralization, fallbacks, nested keys and more.
rails-i18n - Repository for collecting Locale data for Rails I18n as well as other interesting, Rails related I18n stuff.
r18n - Advanced i18n library for Rails, Sinatra, desktop apps, models, works well with complex languages like Russian.
Termit - Translations with speech synthesis in your terminal.
Tolk - A web interface for doing i18n translations packaged as a Rails engine.
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.
IRB
Clipboard - Access to the system clipboard on Linux, MacOS and Windows.
Log4r - Log4r is a comprehensive and flexible logging library for use in Ruby programs.
Logging - A flexible logging library for use in Ruby programs based on the design of Java’s log4j library.
Lograge - An attempt to tame Rails’ default policy to log everything.
Ougai - A structured logging system that is capable of handling a message, structured data, or an exception easily. It has JSON and human-readable formatters.
m2cgen - A CLI tool to transpile trained classic ML models into a native Ruby code with zero dependencies.
PredictionIO Ruby SDK - The PredictionIO Ruby SDK provides a convenient API to quickly record your users’ behavior and retrieve personalized predictions for them.
rb-libsvm - Ruby language bindings for LIBSVM. SVM is a machine learning and classification algorithm.
ruby-fann - Ruby library for interfacing with FANN (Fast Artificial Neural Network).
Ruboto - A platform for developing full stand-alone apps for Android using the Ruby language and libraries.
RubyMotion - A revolutionary toolchain that lets you quickly develop and test full-fledged native iOS and OS X applications for iPhone, iPad, Mac and Android.
Money
eu_central_bank - A gem that calculates the exchange rate using published rates from European Central Bank.
Monetize - A library for converting various objects into Money objects.
Money - A Ruby Library for dealing with money and currency conversion.
Music and Sound
Coltrane - A music theory library with a command-line interface.
Rpush - The push notification service for Ruby which supports Apple Push Notification Service, Google Cloud Messaging, Amazon Device Messaging and Windows Phone Push Notification Service.
webpush - Encryption Utilities for Web Push protocol.
Redis-Objects - Redis Objects provides a Rubyish interface to Redis, by mapping Redis data types to Ruby objects, via a thin layer over the redis gem.
ROM - Ruby Object Mapper (ROM) is an experimental Ruby library with the goal to provide powerful object mapping capabilities without limiting the full power of your datastore.
Sequel - Sequel is a simple, flexible, and powerful SQL database access toolkit for Ruby.
ORM/ODM Extensions
Auditing and Versioning
active_snapshot - Simplified snapshots and restoration for ActiveRecord models and associations with a transparent white-box implementation
acts_as_archival - ActiveRecord plugin for atomic object tree archiving.
ActsAsParanoid - ActiveRecord plugin allowing you to hide and restore records without actually deleting them.
Audited - Audited is an ORM extension for ActiveRecord & MongoMapper that logs all changes to your models.
Destroyed At - Allows you to “destroy” an object without deleting the record or associated records.
Discard - A simple ActiveRecord mixin to add conventions for flagging records as discarded.
marginalia - Attach comments to your ActiveRecord queries. By default, it adds the application, controller, and action names as a comment at the end of each query.
mongoid-history - Multi-user non-linear history tracking, auditing, undo, redo for mongoid.
PaperTrail - Track changes to your ActiveRecord models’ data for auditing or versioning.
Paranoia - A re-implementation of acts_as_paranoid for Rails 3 and 4, using much, much, much less code.
PermenantRecords - Soft-delete your ActiveRecord records, like an explicit version of ActsAsParanoid.
Bit array
ActiveFlag - Store up to 64 multiple flags in a single integer column with ActiveRecord.
Bitfields - Save migrations and columns by storing multiple booleans in a single integer.
Rating - A true Bayesian rating system with scope and cache enabled.
Multi-tenancy
Acts As Tennant - Add multi-tenancy to a Rails app through a shared database strategy.
Apartment - Multi-tenancy for Rails and ActiveRecord.
Milia - Non-invasive multi-tenancy for Rails which supports Devise authentication out of the box.
Social
Merit - Adds reputation behavior to Rails apps in the form of Badges, Points, and Rankings for ActiveRecord or Mongoid.
PublicActivity - Provides easy activity tracking for your ActiveRecord, Mongoid 3 and MongoMapper models in Rails 3 and 4. Similar to Github’s Public Activity.
Simple Feed - Fast and highly scalable read-optimized social activity feed library in pure Ruby, backed by Redis.
Unread - Manage read/unread status of ActiveRecord objects - and it’s fast.
Sorting
ActsAsList - Provides the capabilities for sorting and reordering a number of objects in a list.
ranked-model - A modern row sorting library for ActiveRecord. It uses ARel aggressively and is better optimized than most other libraries.
Tree
ActsAsTree - Extends ActiveRecord to add simple support for organizing items into parent–children relationships.
Traveling Ruby - Traveling Ruby lets you create self-contained Ruby app packages for Linux and OS X.
Pagination
Kaminari - A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for modern web app frameworks and ORMs.
order_query - A keyset pagination library to find the next or previous record(s) relative to the current one efficiently, e.g. for infinite scroll.
Pagy - Pagy is the ultimate pagination gem that outperforms the others in each and every benchmark and comparison. More details can be found on Pagy Wiki.
will_paginate - A pagination library that integrates with Ruby on Rails, Sinatra, Merb, DataMapper and Sequel.
PDF
CombinePDF - A Pure ruby library to merge or stump PDF files, number pages and more.
Grim - Extract PDF pages as images and text. A simple Ruby API to ghostscript, imagemagick, and pdftotext.
HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby.
InvoicePrinter - Super simple PDF invoicing in Ruby (built on top of Prawn).
Kitabu - A framework for creating e-books from Markdown/Textile text markup using Ruby.
Skylight - A smart profiler for your Rails apps that visualizes request performance.
Presentation Programs
Slide Show (S9) - Write your slides / talks / presentations in plain text with markdown formatting conventions and generate (static) web pages; template packs incl. deck.js, impress.js, reveal.js, shower, s6, s5 and more.
GoodJob - GoodJob is a multithreaded, Postgres-based, ActiveJob backend for Ruby on Rails.
Gush - A parallel runner for complex workflows using only Redis and Sidekiq.
JobIteration - An ActiveJob extension to make long-running jobs interruptible and resumable.
Karafka - Framework used to simplify Apache Kafka (a distributed streaming platform) based Ruby applications development.
Lowkiq - Ordered processing of background jobs for cases where Sidekiq can’t help.
March Hare - Idiomatic, fast and well-maintained JRuby client for RabbitMQ.
Resque - A Redis-backed Ruby library for creating background jobs.
Que - A Ruby job queue that uses PostgreSQL’s advisory locks for speed and reliability.
RocketJob - Enterprise Batch Processing System focused on performance, scalability, reliability, and visibility of every job in the system. Outgrown existing solutions? Or, start small and scale up later.
Shoryuken - A super efficient AWS SQS thread based message processor for Ruby.
Sidekiq - A full-featured background processing framework for Ruby. It aims to be simple to integrate with any modern Rails application and much higher performance than other existing solutions.
SidekiqIteration - A Sidekiq extension to make long-running jobs interruptible and resumable.
Sneakers - A fast background processing framework for Ruby and RabbitMQ.
Sucker Punch - A single process background processing library using Celluloid. Aimed to be Sidekiq’s little brother.
Rails Application Generators
Bootstrappers - Bootstrappers generates a base Rails app using Bootstrap template and other goodies.
Rails Composer - The Rails generator on steroids for starter apps.
Raygun - Builds applications with the common customization stuff already done.
Suspenders - Suspenders is the base Rails application used at thoughtbot.
Robotics
Arli - Arli is the CLI tool for searching, installing, and packaging Arduino libraries with a project using a YAML-based Arlifile. It’s a “Bundler for Arduino Development”.
Artoo - Next generation robotics framework with support for different platforms: Arduino, Leap Motion, Pebble, Raspberry Pi, etc.
RSS
Feed normalizer - Extensible Ruby wrapper for Atom and RSS parsers.
scoped_search - Adds a scope supporting search queries and autocompletion against existing fields on ActiveRecord models and associations.
SearchCop - Extends your ActiveRecord models to support fulltext search engine like queries via simple query strings and hash-based queries.
Searchkick - Searchkick learns what your users are looking for. As more people search, it gets smarter and the results get better. It’s friendly for developers - and magical for your users.
Sunspot - A Ruby library for expressive, powerful interaction with the Solr search engine.
textacular - Exposes full text search capabilities from PostgreSQL, and allows you to declare full text indexes. Textacular extends ActiveRecord with named_scope methods making searching easy and fun!
Thinking Sphinx - A library for connecting ActiveRecord to the Sphinx full-text search tool.
Security
BeEF - BeEF is short for The Browser Exploitation Framework. It is a penetration testing tool that focuses on the web browser.
bundler-audit - Patch-level security verification for Bundler.
Metasploit - World’s most used penetration testing software.
Pipal - Password analyser and statistics generator
Rack::Attack - Rack middleware for blocking & throttling abusive requests.
Rack::Protection - Rack middleware for protecting against typical Web attacks.
Ronin - A Ruby platform for vulnerability research and exploit development.
SecureHeaders - Automatically apply several headers that are related to security, including: Content Security Policy (CSP), HTTP Strict Transport Security (HSTS), X-Frame-Options (XFO), X-XSS-Protection, X-Content-Type-Options, X-Download-Options & X-Permitted-Cross-Domain-Policies.
OctoLinker - Navigate through projects on GitHub.com efficiently with the OctoLinker browser extension.
SemaphoreCI - Hosted continuous integration and deployment service for open source and private projects.
Sider - Automated Code Review with GitHub PR. Monitoring Style Violations, Quality, Security, Dependencies.
Travis CI - Test and Deploy Your Code with Confidence.
SEO
FriendlyId - The “Swiss Army bulldozer” of slugging and permalink plugins for Active Record.
MetaTags - A gem to make your Rails application SEO-friendly.
prerender_rails - Rails middleware gem for prerendering javascript-rendered pages on the fly for SEO.
SitemapGenerator - A framework-agnostic XML Sitemap generator written in Ruby.
Social Networking
Decidim - free open-source participatory democracy for cities and organizations
diaspora* - A privacy aware, distributed, open source social network.
Discourse - A platform for community discussion. Free, open, simple.
Mailboxer - A private message system for Rails applications.
Mastodon - A GNU Social-compatible microblogging server.
Retrospring - A social network following the Q/A (question and answer) principle.
Social Shares - A gem to check how many times url was shared in social networks.
Thredded - Rails 4.2+ forums/messageboards engine. Its goal is to be as simple and feature rich as possible.
Spreadsheets and Documents
CAXLSX - A community maintained excel xlsx generation library. AXLSX - The original.
Docsplit - Gem to convert Microsoft Word (and other) documents into images, pdf, pages or text.
Roo - Implements read access for all spreadsheet types and read/write access for Google spreadsheets.
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.
State Machines
AASM - State machines for Ruby classes (plain Ruby, Rails Active Record, Mongoid).
FiniteMachine - A plain Ruby state machine with a straightforward and expressive syntax.
MicroMachine - A minimal finite state machine implementation in less than 50 lines of code.
simple_states - A super-slim statemachine-like support library.
Statesman - A statesmanlike state machine library.
state_machines - Adds support for creating state machines for attributes on any Ruby class.
transitions - A ruby state machine implementation.
Workflow - A finite-state-machine-inspired API for modeling and interacting with what we tend to refer to as ‘workflow’.
Static Site Generation
Bridgetown - A Webpack-aware, Ruby-powered static site generator for the modern Jamstack era.
High Voltage - Easily include static pages in your Rails app.
Jekyll - Transform your plain text into static websites and blogs.
Awesome Jekyll - A collection of awesome Jekyll tools, plugins, themes, guides and much more.
Middleman - A static site generator using all the shortcuts and tools in modern web development.
Nanoc - A static site generator, fit for building anything from a small personal blog to a large corporate web site.
Photish - Generate a highly configurable static website from a photo collection.
webgen - webgen is a fast, powerful and extensible static website generator.
Template Engine
Curly - A template language that completely separates structure and logic.
Howitzer - Ruby based framework for acceptance testing
minitest - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking.
Mocha - Mocha is a mocking and stubbing library for Ruby.
RR - A test double framework that features a rich selection of double techniques and a terse syntax.
shoulda-matchers - Provides Test::Unit- and RSpec-compatible one-liners that test common Rails functionality. These tests would otherwise be much longer, more complex, and error-prone.
Spinach - Spinach is a high-level BDD framework that leverages the expressive Gherkin language (used by Cucumber) to help you define executable specifications of your application or library’s acceptance criteria.
TestBench - TestBench is a principled test framework for Ruby and MRuby aiming to offer precisely what is needed to test well-designed code effectively and easily.
Test::Unit - Test::Unit is a xUnit family unit testing framework for Ruby.
Fake Data
Fabrication - A simple and powerful object generation library.
factory_bot - A library for setting up Ruby objects as test data.
Fake Person - Uses some of the most popular given & surnames in the US & UK.
faker - A library for generating fake data such as names, addresses, and phone numbers.
ffaker - A faster Faker, generates dummy data, rewrite of faker.
Forgery - Easy and customizable generation of forged data.
Mock
ActiveMocker - Generate mocks from ActiveRecord models for unit tests that run fast because they don’t need to load Rails or a database.
DnsMock - Ruby DNS mock. Mimic any DNS records for your test environment and even more.
DuckRails - Tool for mocking API endpoints quickly & dynamically.
SmtpMock - Ruby SMTP mock. Mimic any SMTP server behaviour for your test environment with fake SMTP server.
TestXml - TestXml is a small extension for testing XML/HTML.
WebMock - Library for stubbing and setting expectations on HTTP requests.
WebDrivers
Ferrum - High-level API to control Chrome in Ruby.
Appraisal - Appraisal integrates with bundler and rake to test your library against different versions of dependencies.
CQL - CQL is a library for making queries against Cucumber style test suites.
cuke_modeler - An modeling library for .feature files that is an abstration layer on top of the gherkin gem, providing a stable base upon which to build other Gherkin related tools.
gitarro - Run, retrigger, handle all type and OS-independent tests against your GitHub Pull Requests.
Knapsack - Optimal test suite parallelisation across CI nodes for RSpec, Cucumber, Minitest, Spinach and Turnip.
mutant - Mutant is a mutation testing tool for Ruby.
Parallel Tests - Speedup Test::Unit + RSpec + Cucumber by running parallel on multiple CPUs (or cores).
gon - If you need to send some data to your js files and you don’t want to do this with long way through views and parsing - use gon.
PluggableJs - Page-specific javascript for Rails applications with the ability of passing data from a controller.
render_async - Render partials to your views asynchronously and increase load performance of your pages.
Web Crawling
LinkThumbnailer - Ruby gem that generates thumbnail images and videos from a given URL. Much like popular social website with link preview.
Kimurai - A modern web scraping framework written in Ruby which works out of box with Headless Chromium/Firefox, PhantomJS, or simple HTTP requests and allows to scrape and interact with JavaScript rendered websites.
Mechanize - Mechanize is a ruby library that makes automated web interaction easy.
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.
Upton - A batteries-included framework for easy web-scraping.
Wombat - Web scraper with an elegant DSL that parses structured data from web pages.
Web Frameworks
Camping - A web microframework which consistently stays at less than 4kB of code.
Hobbit - A minimalistic microframework built on top of Rack.
Hanami - It aims to bring back Object Oriented Programming to web development, leveraging on a stable API, a minimal DSL, and plain objects.
Hyperstack - A Complete Isomorphic Ruby Framework using React and Opal.
Padrino - A full-stack ruby framework built upon Sinatra.
Pakyow - A framework for building modern web-apps in Ruby. It helps you build working software faster with a development process that remains friendly to both designers and developers.
Rack::App - Bare bone minimalistic framework for building rack apps.
Ramaze - A simple, light and modular open-source web application framework written in Ruby.
Ruby on Rails - A web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.
Scorched - Light-weight, inheritable and composable web framework, inspired by Sinatra.
Sinatra - Classy web-development dressed in a DSL.
Trailblazer - Trailblazer is a thin layer on top of Rails. It gently enforces encapsulation, an intuitive code structure and gives you an object-oriented architecture.
Web Servers
Agoo - A high performance HTTP server for Ruby that includes GraphQL and WebSocket support.
Falcon - A high-performance web server for Ruby, supporting HTTP/1, HTTP/2 and TLS.
Iodine - An non-blocking HTTP and Websocket web server optimized for Linux/BDS/macOS and Ruby MRI.
Phusion Passenger - Fast and robust web server and application server.
Rack - A common Ruby web server interface. By itself, it’s just a specification and utility library, but all Ruby web servers implement this interface.
Awesome Ruby
A categorized community-driven collection of awesome Ruby libraries, tools, frameworks and software. The essential Ruby to build modern Apps and Web Apps.
Sharing, suggestions and contributions are always welcome! Please take a look at the contribution guidelines and quality standard first.
Thanks to all contributors, you’re awesome and this wouldn’t be possible without you!
Sponsored by:
debug any issue, and resolve any incident.
Admin Interface
Analytics
API Builder and Discovery
Assets
Authentication and OAuth
Authorization
Automation
Breadcrumbs
Business logic
Caching
Captchas and anti-spam
CLI Builder
CLI Utilities
ls
command, with color and font-awesome icons.Cloud
CMS
Code Analysis and Metrics
Code Formatting
Code Highlighting
Code Loaders
Coding Style Guides
Concurrency and Parallelism
Configuration
.env
.ENV
and a single YAML file.Core Extensions
nil_chain
.Country Data
CRM
Cryptocurrencies and Blockchains
Dashboards
Data Processing and ETL
CSV <3 JSON
,CSV <3 YAML
, tab, space or fixed width fields (FWF) and many more flavors and dialects.Data Visualization
Database Drivers
Database Tools
Date and Time Processing
Debugging Tools
Decorators
DevOps Tools
Diff
Discover
Where to discover new Ruby libraries, projects and trends.
Documentation
E-Commerce and Payments
Ebook
Email
Encryption
Environment Management
Error Handling
Event Sourcing
Feature Flippers and A/B Testing
File Upload
File System Listener
Form Builder
Game Development and Graphics
Gem Generators
Geolocation
Git Tools
GraphQL
GUI
HTML/XML Parsing
HTTP Clients and tools
Accept-Language
header from browsers (as defined in RFC 2616).Image Processing
Implementations/Compilers
Internationalization
IRB
Logging
Machine Learning
Markdown Processors
Measurements
Mobile Development
Money
Music and Sound
Natural Language Processing
Networking
Notifications
Optimizations
in_batches
withpluck
.ORM/ODM
ORM/ODM Extensions
Package Management
Pagination
PDF
Performance Monitoring
Presentation Programs
Process Management and Monitoring
Processes
Profiler and Optimization
QR
Queues and Messaging
Rails Application Generators
Robotics
RSS
Serverless
Scheduling
Scientific
Search
Security
Services and Apps
Online tools, services and APIs to simplify development.
SEO
Social Networking
Spreadsheets and Documents
State Machines
Static Site Generation
Template Engine
Testing
.feature
files that is an abstration layer on top of thegherkin
gem, providing a stable base upon which to build other Gherkin related tools.parallel_tests
but with incremental summarized output.Third-party APIs
Video
View components
View helpers
Web Crawling
Web Frameworks
Web Servers
WebSocket