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 💜
- Awesome Ruby
- Admin Panels
- Anti-spam
- Asset Management
- Audio
- Authentication and OAuth
- Build Tools
- Caching
- Cloud Services
- CMS
- Code Analysis and Linter
- Command-line Tools
- Configuration
- CSS and Styling
- Data Validation
- Data Visualization
- Database Drivers
- Date and Time
- Debugging Tools
- DevOps Tools
- Distribution
- Documentation
- Downloader
- E-Commerce & Online Paying
- Environment Management
- File Uploading
- Foreign Function Interface
- Forms
- Game Development
- Geolocation
- GUI
- High Performance
- HTML/XML/CSS Manipulation
- HTTP
- Imagery
- Internationalization
- Logging
- Machine Learning
- MapReduce
- Natural Language Processing
- Networking
- ORM
- Package Management
- Presentation Tools
- Processes and Threads
- Push Notification
- Queue
- Spreadsheets
- RESTful API
- Science and Data Analysis
- Search
- Site Monitoring
- Starter Apps
- Tagging
- Template Engine
- Testing
- Text Processing
- Third-party APIs
- URL Manipulation
- Video
- Web Content Extracting
- Web Crawling
- Web Frameworks
- Web Servers
- WebSocket
- Miscellaneous
- Resources
- Other Awesome Lists
- Contributing
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
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
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
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 An extendable Ruby on Rails CMS that supports Rails 3.2 and 4
- Comfortable Mexican Sofa A powerful Rails 4 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 analysing, parsing and manipulation codebases.
- 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
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
Libraties 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.
- stamp Date and time formatting for humans
Libraries for debugging and developing.
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
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.
Libraries for downloading.
- Active Merchant - A simple payment abstraction library extracted from Shopify.
- Spree - A complete open source e-commerce solution for Ruby on Rails.
- 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
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
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
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.
Libraries for making Ruby faster.
- EventMachine - EventMachine: fast, simple event-processing library for Ruby programs
- Celluloid - Actor-based concurrent object framework for Ruby
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
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
Framworks and libraries for MapReduce.
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 datamapping 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
- 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
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.
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).
Libraries for manipulating Excel, Google Spreadsheets, Numbers, OpenOffice and LibreOffice files
- spreadsheet - The Spreadsheet Library is designed to read and write Spreadsheet Documents.
- axlsx - Axlsx excels at helping you generate beautiful Office Open XML Spreadsheet documents.
- axlsx_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_xlsx - acts_as_xlsx lets you turn any ActiveRecord::Base inheriting class into an excel spreadsheet.
- activeadmin-axlsx - This gem uses axlsx 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
- 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
- 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
- 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 metaframework usedful for create 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
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
- 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
- Lotus - A newborn complete Ruby web framework that is simple, fast and lightweight.
- 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.
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
- 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
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
- GemBundle - A place to discover new Ruby Gems
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.
Your Pull requests are welcome! Let's make this the awesomest resource for Ruby <3