A curated list of awesome Ruby frameworks, libraries and resources. Inspired by awesome-php & awesome-python.
Your Pull requests are welcome! Let's make this the awesomest resource for Ruby 💜
Libraries for administrative interfaces.
- active_admin The administration framework for Ruby on Rails applications
- rails_admin A Rails engine that provides an easy-to-use interface for managing your data
- administrate A framework for creating flexible, powerful admin dashboards in Rails.
Libraries for fighting spam.
- RubySpamAssassin Kills Spam Dead. Perhaps before it's sent!
Tools for managing, compressing and minifying website assets.
- sprockets Rack-based asset packaging system
- rails-assets is the frictionless proxy between Bundler and Bower
- seal A C library (with Ruby binding) for 3D audio rendering
Tools for logging changes to ActiveRecord models
- Audited - Audited (formerly acts_as_audited) is an ORM extension that logs all changes to your Rails models.
- Logidze - Logs model changes via database triggers (PL/SQL functions). Fastest model diffs. PostgreSQL 9.5+ only.
Libraries for implementing authentications schemes.
- Devise - Devise is a flexible authentication solution for Rails based on Warden
- Omniauth - OmniAuth is a flexible authentication system utilizing Rack middleware
- Warden - General Rack Authentication Framework
- AuthLogic - A simple ruby authentication solution
- Sorcery - Magical authentication for Rails 3 & 4
- CanCanCan Authorization gem for Rails (continued version of CanCan from ryanb)
- pundit - Minimal authorization using object oriented design.
- authority - ORM neutral authorization.
- doorkeeper An OAuth 2 provider for Rails
- tiddle - Devise strategy for token authentication in API-only Ruby on Rails applications
Compile software from source code.
- teapot A decentralised build tool for managing complex cross-platform projects
Libraries for caching data.
- rack-cache HTTP Caching for Ruby Web Apps
- Dalli - a high performance pure Ruby client for accessing memcached servers.
- fog The Ruby cloud services library
- aws-sdk-ruby The official AWS SDK for Ruby
Content management systems
- Refinery CMS An extendable Ruby on Rails CMS that supports Rails 3.2 and 4.2
- Comfortable Mexican Sofa A powerful Rails 4/5 CMS Engine
- Browser Humane Content Management for Rails
- Locomotive a brand new CMS system with super sexy UI and cool features
- Radiant A no-fluff, open source content management system
- Nesta A lightweight CMS, implemented in Sinatra
- alchemy_cms the most powerful, user friendly and flexible Rails CMS
- weby Newbie CMS in Ruby on Rails
Libraries and tools for analyzing, parsing and manipulation codebases.
- sonarlint-intellij - An IDE extension that helps you detect and fix quality issues as you write code.
- Rubocop - A Ruby static code analyzer, based on the community Ruby style guide.
- ruby-lint - ruby-lint is a static code analysis tool for Ruby
- brakeman - Static analysis tool which checks Ruby on Rails applications for security vulnerabilities
- reek - Code smell detector for Ruby
- Breezer - Lock your Gemfile dependencies to safe versions.
Libraries for building command-line application.
- Commander - The complete solution for Ruby command-line executables
- Thor - Thor is a toolkit for building powerful command-line interfaces
Libraries for storing configuration options.
- sass A CSS preproccessor
- sass-rails Rails stylesheet engine for Sass
- less-rails The dynamic stylesheet language for the Rails
- compass A a Stylesheet Authoring Environment
- bootstrap-sass Official Sass port of Bootstrap
- foundation-rails Foundation for Rails
- bootswatch-rails Bootswatches converted to SCSS ready to use in Rails
- bourbon A lightweight mixin library for Sass
Libraries for validating data. Used for forms in many cases.
- kangal - Extended validation gem for email, subdomain, credit card, tax number etc
- bin_checker - BIN validator for Turkish Banks
Libraries for visualizing data.
- prosperity The easiest way to graph data from your Rails models
Libraries for connecting and operating databases.
-
Relational Databases
- ruby-pg Ruby interface to the PostgreSQL >= 8.4
- mysql2 A modern, simple and very fast Mysql library for Ruby
- sqlite3-ruby Ruby bindings for the SQLite3 embedded database
-
NoSQL Databases
Libraries for working with dates and times.
Libraries for debugging and developing.
- byebug - Debugging in Ruby 2
- debugger - port of ruby-debug that works on 1.9.2 and 1.9.3
- puts_debuggerer - Debugger-less debugging FTW
Software and libraries for DevOps.
- Puppet - Server automation framework and application
- Chef - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
- Vagrant - Vagrant is a tool for building and distributing development environments.
- Capistrano - Remote multi-server automation tool
- Mina Really fast deployer and server automation tool
- Nanobox - A micro-PaaS (μPaaS) for creating consistent, isolated, Ruby environments deployable anywhere https://nanobox.io.
Libraries to create packaged executables for release distribution.
- fpm Building packages for multiple platforms (deb, rpm, etc) with great ease and sanity.
Libraries for generating project documentation.
- Dictum - A tool that let's you create automatic documentation of your Rails API endpoints through your tests.
- rdoc HTML and online documentation for Ruby projects
- yard A Ruby Documentation tool
Libraries for downloading.
- GitHub Starred Repos Downloader - gsrd downloads your public starred repos. Just in case you want to keep a backup of them from time to time.
- Active Merchant - A simple payment abstraction library extracted from Shopify.
- Spree - A complete open source e-commerce solution for Ruby on Rails.
- Square SDK - Use this gem to integrate Square payments into your app and grow your business with Square APIs including Catalog, Customers, Employees, Inventory, Labor, Locations, and Orders.
- PayPal Merchant SDK - Provides Ruby APIs for processing payments, recurring payments, subscriptions and transactions using PayPal's Merchant APIs.
Libraries for sending and parsing email.
Libraries for Ruby version and environment management.
- chruby - Changes the current Ruby
- chgems - Chroot for RubyGems
- rvm - Ruby Version Manager
- rbenv - Groom your app’s Ruby environment
- ruby-install - Installs Ruby, JRuby, Rubinius, MagLev or MRuby
- ruby-build - Compile and install Ruby
- Nanobox - A tool for creating isolated Ruby environments for consistency across teams and application stages (dev, staging, production, etc.) https://nanobox.io.
Libraries for exception and error handling.
- Exception Notification - A set of notifiers for sending notifications when errors occur in a Rack/Rails application
- Errbit - The open source, self-hosted error catcher
- Airbrake - The official Airbrake library for Ruby on Rails (and other Rack based frameworks)
- Better Errors - Better error page for Rack apps
Libraries for handling file uploads.
- paperclip Easy file attachment management for ActiveRecord
- dragonfly On-the-fly processing - suitable for image uploading in Rails, Sinatra and much more
- carrierwave Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks
- attache - Yet another approach to file upload https://attache-demo.herokuapp.com
Libraries for flipping features
- abstract_feature_branch a gem that enables developers to easily branch by abstraction
- helioth Manage feature flipping and rollout
- flipper feature flipping for ANYTHING
- flip Flip lets you declare and manage feature flags, backed by cookies (private testing) and database (site-wide)
- rollout Feature flippers.
Libraries for providing foreign function interface.
Libraries for working with forms.
- simple_form Forms made easy for Rails
- formtastic A Rails form builder plugin with semantically rich and accessible markup
- bootstrap_form A Rails form builder that makes it super easy to integrate Bootstrap v4-style forms into your Rails application
Awesome game development libraries.
- Gosu - A 2D game development library for the Ruby and C++ programming languages
Libraries for geocoding addresses and working with latitudes and longitudes.
- geocoder Complete Ruby geocoding solution
- Geokit - Geokit gem provides geocoding and distance/heading calculations.
Libraries for working with Git VCS
- katip - Change logger for Git initialized projects
Libraries for working with graphical user interface applications.
- glimmer Ruby Desktop Development GUI Library
- shoes A tiny graphical app kit for ruby
- shoes4 the next version of Shoes
Libraries for making Ruby faster.
- EventMachine - EventMachine: fast, simple event-processing library for Ruby programs
- Celluloid - Actor-based concurrent object framework for Ruby. It has its own awesomeness.
Libraries for working with HTML, XML & CSS.
- Nokogiri
- loofah A general library for manipulating and transforming HTML/XML documents and fragments
Libraries for working with HTTP.
- httparty Makes http fun again!
- faraday Simple, but flexible HTTP client library, with support for multiple backends.
- http A simple Ruby DSL for making HTTP requests
- excon Usable, fast, simple HTTP(S) 1.1 for Ruby
- nestful Simple Ruby HTTP/REST client with a sane API
- response_code Response Code in readable way
Libraries for manipulating images.
- rmagick An interface to the ImageMagick and GraphicsMagick image processing libraries
- minimagick Minified version of rmagick
- chunky_png Read/write access to PNG images in pure Ruby
- image_optim Optimize images using multiple utilities
- magickly image manipulation as a (plugin-able) service
Libraries for woking with i18n.
- i18n - Basic internationalization(i18n) library for Ruby
- globalize Rails I18n de-facto standard library for ActiveRecord model/data translation
- i18n-tasks Manage translations in ruby applications with the awesome power of static analysis
Libraries for generating and working with log files.
- Logstash Logstash is a tool for managing events and logs.
Libraries for Machine Learning.
- PredictionIO Ruby SDK - The PredictionIO Ruby SDK provides a convenient API to quickly record your users' behavior and retrieve personalized predictions for them
- m2cgen - A CLI tool to transpile trained classic ML models into a native Ruby code with zero dependencies.
Frameworks and libraries for MapReduce.
Libraries for managing multi-tenant apps.
- Apartment - Database multi-tenancy for Rack (and Rails) applications
Libraries for working with human languages.
- Treat - Treat is a toolkit for natural language processing and computational linguistics in Ruby
Libraries for network programming.
Libraries that implement Object-Relational Mapping or data mapping techniques.
-
Relational Databases
- ActiveRecord - Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes
- DataMapper - DataMapper is an Object Relational Mapper written in Ruby. The goal is to create an ORM which is fast, thread-safe and feature rich.
- Sequel - The Database Toolkit for Ruby
-
NoSQL Databases
Libraries for package and dependency management.
- RubyGems - RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries
- Bundler - Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed
- Homebrew - Homebrew installs the stuff you need that Apple didn’t
- Homebrew Cask - Cask provides a friendly homebrew-style CLI workflow for the administration of Mac applications distributed as binaries
- kaminari A Scope & Engine based, clean, powerful, customizable and sophisticated paginator
- will_paginate Pagination library for Rails 3, Sinatra, Merb, DataMapper, and more
- order_query Keyset pagination to find the next or previous record(s) relative to the current one efficiently, e.g. for infinite scroll.
- DocRaptor Wrapper library for DocRaptor's Ruby-based HTML-to-PDF API
- wicked_pdf PDF generator (from HTML) plugin for Ruby on Rails
- pdfkit HTML+CSS to PDF using wkhtmltopdf
- prawn Fast, Nimble PDF Writer for Ruby
- InvoicePrinter - Super simple PDF invoicing in Ruby (built on top of Prawn).
Libraries for woking with processes or threads
- Parallel - Ruby parallel processing made simple and fast
- bullet - help to kill N+1 queries and unused eager loading
- Rpush - The push notification service for Ruby.
- apn_sender - Background worker to send Apple Push Notifications over a persistent TCP socket.
- Houston - A simple gem for sending Apple Push Notifications.
- webpush - Encryption Utilities for Web Push protocol
Libraries for working with event and task queues.
- Resque A Redis-backed Ruby library for creating background jobs, placing them on multiple queues.
- Delayed::Job — Database backed asynchronous priority queue.
- Qu A Ruby library for queuing and processing background jobs.
- Sidekiq Simple, efficient background processing for Ruby
Libraries for developing RESTful APIs.
- Grape - An opinionated micro-framework for creating REST-like APIs in Ruby.
- Rails::API - Rails for API only applications
- jbuilder - Create JSON structures via a Builder-style DSL
- rabl - General Ruby templating with json, bson, xml, plist and msgpack support
- active_model_serializers - ActiveModel::Serializer implementation and Rails hooks
- oat - Adapters-based API serializers with Hypermedia support for Ruby apps (HAL, Siren, JSONAPI).
- APIcasso - An abstract API design as a Rails-based mountable engine. RESTfullize your legacy code.
- FaaStRuby - Serverless Software Development Platform for Ruby and Crystal developers.
Libraries for manipulating Excel, Google Spreadsheets, Numbers, OpenOffice and LibreOffice files
- spreadsheet - The Spreadsheet Library is designed to read and write Spreadsheet Documents.
- caxlsx - Caxlsx excels at helping you generate beautiful Office Open XML Spreadsheet documents.
- caxlsx_rails - Axlsx-Rails provides an Axlsx renderer so you can move all your spreadsheet code from your controller into view files.
- roo - Roo implements read access for all spreadsheet types and read/write access for Google spreadsheets.
- google-spreadsheet-ruby - This is a library to read/write Google Spreadsheet.
- rubyXL - rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents
- Odf-report - Generates ODF files, given a template (.odt) and data, replacing tags
- simple_xlsx_writer - Just as the name says, simple writter for Office 2007+ Excel files
- remote_table - Open local or remote XLSX, XLS, ODS, CSV (comma separated), TSV (tab separated), other delimited, fixed-width files, and Google Docs.
- acts_as_caxlsx - acts_as_caxlsx lets you turn any ActiveRecord::Base inheriting class into an excel spreadsheet.
- activeadmin-caxlsx - This gem uses caxlsx to provide excel/xlsx downloads for resources in Active Admin.
- to_spreadsheet - Render XLSX from Rails using existing views
- write_xlsx - write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format.
- excel_rails - Allows you to program spreadsheets using .rxls views
- sheets - Work with spreadsheets easily in a native ruby format.
- workbook - Workbook contains workbooks, as in a table, contains rows, contains cells, reads/writes excel, ods and csv and tab separated files...
- Spreadsheet report - Simple tool for running queries against ActiveRecord and putting them into a Google Spreadsheet.
- oxcelix - A fast Excel 2007/2010 (.xlsx) file parser that returns a collection of Matrix objects
- wrap_excel - WrapExcel is to wrap the win32ole, and easy to use Excel operations with ruby. Detailed description please see the README.
- write_xlsx_rails - xlsx renderer for Rails base on write_xlsx gem
- Fastsheet - Fast spreadsheet reader using Rust native extensions.
- whenever Cron jobs in Ruby
- resque-scheduler A light-weight job scheduling system built on top of resque
- rufus-scheduler Scheduler for Ruby
- Clockwork Clockwork is a cron replacement. It runs as a lightweight, long-running Ruby process which sits alongside your web processes (Mongrel/Thin) and your worker processes (DJ/Resque/Minion/Stalker) to schedule recurring work at particular times or dates.
Libraries for scientific computing and data analyzing.
Libraries and software for indexing and performing search queries on data.
- Thinking Sphinx - Sphinx plugin for ActiveRecord/Rails
- elasticsearch-ruby - Ruby integrations for Elasticsearch
- Searchkick - Intelligent search made easy
- Algoliasearch Rails - AlgoliaSearch integration to your favorite ORM
- PgSearch - PostgreSQL's full text search
- Rroonga - The Ruby bindings of Groonga
- Sunspot - Solr-powered search for Ruby objects
Libs for analytics, monitoring
- rack-google-analytics Simple Rack middleware for implementing google analytics tracking
- DataDog A monitoring service for IT, operations and development teams
- Instrumental High-scale, non-blocking agent for Instrumental application monitoring
- Keen IO Build analytics features directly into your Ruby apps
App templates for creating apps quickly
- suspenders A Rails template with our standard defaults, ready to deploy to Heroku
- ruby2-rails4-bootstrap-heroku A starter application based on Ruby 2, Rails 4 and Bootstrap for Sass, deployable on Heroku
- rails-bootstrap Rails 4.1 starter app with the Bootstrap front-end framework
- rails4-starterkit Rails 4.1 starter app with production ready performance, security, and authentication
- cybele - Rails 4.x template with responder, simple form, haml, exception notification, etc ...
Libraries for parsing and manipulating texts.
-
General
-
Specific Formats
-
Parser
- Yomu - Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf)
Libraries for tagging items.
- acts-as-taggable-on - A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts.
Libraries and tools for templating and lexing.
- Slim A templating lang that reduce the syntax to the essential parts without becoming cryptic.
- slim-rails Rails port of Slim lang
- Haml HTML Abstraction Markup Language - A Markup Haiku
- haml-rails Rails port of Haml lang
- Tilt
- Liquid
Libraries for testing codebases and generating test data.
-
Testing Frameworks
- RSpec - BDD for Ruby
- MiniTest - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking
- [Cucumber]
- Cucumber Github - Cucumber is a tool that executes plain-text functional descriptions as automated tests
- Cucumber Site - Behaviour Driven Development with elegacy and joy
- 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.
- Rubytest - Rubytest is a testing meta-framework useful for creating highly customize test suites or building whole new test frameworks.
- shoulda-matchers - Collection of testing matchers extracted from Shoulda
- capybara - Acceptance test framework for web applications
-
Mock
- RSpec-mocks - RSpec's 'test double' framework, with support for stubbing and mocking
- Mocha - Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.
- FlexMock - Flexible mocking for Ruby testing
-
Fake Data
-
Code Coverage
- simplecov Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage
-
Load Testing
-
Error Handler
Libraries for accessing third party APIs.
- koala A lightweight, flexible library for Facebook
- fb_graph A full-stack Facebook Graph API wrapper
- twitter A Ruby interface to the Twitter API
- tweetstream A simple library for consuming Twitter's Streaming API
- gitlab Ruby wrapper and CLI for the GitLab API
- octokit.rb Ruby toolkit for the GitHub API
- instagram The official gem for the Instagram API
- linkedin Ruby wrapper for the LinkedIn API
- twilio-ruby A Ruby gem for communicating with the Twilio API and generating TwiML
- viewpoint-spws A Microsoft Sharepoint Web Services library for Ruby.
- youtube_it An object-oriented Ruby wrapper for the YouTube GData API
- flickraw Flickraw is a library to access flickr api
- f00px Official 500px api ruby gem
- rspotify Ruby wrapper for the Spotify Web API
Libraries for parsing URLs.
Libraries for manipulating video and GIFs.
- streamio-ffmpeg Simple yet powerful ruby FFmpeg wrapper for reading metadata and transcoding movies
Libraries for extracting web contents.
Libraries for scraping websites.
- upton A batteries-included framework for easy web-scraping
- metainspector
Web development frameworks.
- Ruby On Rails - Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity
- Roda - Modular, scalable Ruby framework. Extremely fast, extremely efficient.
- Hanami - (formerly Lotus) A complete full-stack application framework that is simple, fast and lightweight. Designed for scale.
- Sinatra - Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.
- Padrino - The Godfather of Sinatra provides a full-stack agnostic framework on top of Sinatra
- Cramp - Cramp is a fully asynchronous real-time web application framework in Ruby
- Cuba - Cuba is a microframework for web development originally inspired by Rum, a tiny but powerful mapper for Rack applications.
- Pakyow - Pakyow is an open-source framework for the modern web. Build working software faster with a development process that remains friendly to both designers and developers. It's built for getting along.
- Hyperstack - A complete Isomorphic Ruby Framework using React, Opal and Rails
App server interface
- puma A simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications.
- thin A thin and fast web server
- trinidad Run Rails or Rack applications within an embedded Apache Tomcat container.
- unicorn An HTTP server for Rack applications designed to only serve fast clients.
- passenger A modern web server and application server for Ruby, Python, and Node.js.
- pow Pow treats files and directories as ruby objects giving you more power and flexibility.
- goliath is a non-blocking Ruby web server framework.
Libraries for woking with WebSocket.
- Faye - Simple pub/sub messaging for the web
- websocket-rails - Plug and play websocket support for ruby on rails.
Useful libraries or tools that don't fit in the categories above.
- packetfu A mid-level packet manipulation library for Ruby.
- chatterbot A straightforward ruby-based Twitter Bot Framework, using OAuth to authenticate
- sneakers A fast background processing framework for Ruby and RabbitMQ
- ransack Object-based searching.
- cinch The IRC Bot Building Framework
- pry An IRB alternative and runtime developer console
- rib A lightweight and extensible IRB replacement
- jazz_hands Pry-based enhancements for the default Rails 3 and 4 consoles
- awesome_print A Ruby library that pretty prints Ruby objects in full color exposing their internal structure with proper indentation.
- friendly_id Slugging and permalink plugins for ActiveRecord
- backup An elegant DSL in Ruby for performing backups on UNIX-like systems
- kss Documenting CSS and generating styleguides
- AASM - A library for adding finite state machines to Ruby classes
- JsonCompare - Returns the difference between two JSON files
- blankable - Adds blank slates to index view in Rails
- tcmb_currency - T.C.M.B. currencies for Money Gem
- enumerize - Enumerated attributes with I18n and ActiveRecord/Mongoid support
- lol_dba - lol_dba is a small package of rake tasks that scan your application models and displays a list of columns that probably should be indexed.
- annotate-models - Annotate ActiveRecord models
- fast_attributes - FastAttributes adds attributes with their types to the class
- Github Changelog Generator — automatically generate change log from your tags, issues, labels and pull requests on GitHub.
- Letter Opener — Preview email in the default browser instead of sending it.
- Auto HTML — Transforming URLs to appropriate resource (image, link, YouTube, Vimeo video,...).
- OctoLinker - Navigate through projects on github.com efficiently with the OctoLinker browser extension.
- BetterDocs - Documentation with collection practices in ruby. Good for new ruby developers and beginners.
Plugins for various editors.
Where to discover things (libraries, news e.g) about Ruby.
- The Ruby Toolbox
- RubyGems
- RubyDaily - Community driven news
- Ruby Weekly - A free, once–weekly e-mail round-up of Ruby news and articles.
- Ruby5 - The latest news in the Ruby and Rails community
- RubyFlow - Ruby Programming Community Link Blog
- Ruby Curated Resources
People in Ruby World
- Yukihiro "Matz" Matsumoto - Creator of Ruby lang
- David Heinemeier Hansson - Creator of Rails framework
- Koichi Sasada - Ruby core committer and the developer of YARV
- Aaron Patterson - Committer to Nokogiri, Ruby, and Ruby on Rails
- Avdi Grimm - Host of Ruby Tapas webcasts
- Aman Gupta- Ruby core committer
Other amazingly awesome lists can be found in the awesome-awesomeness list.