A collection of awesome Ruby libraries, tools, frameworks and software 💎
Inspired by awesome-php, awesome-python, frontend-dev-bookmarks and ruby-bookmarks.
Contributions are always welcome! Please take a look at the contribution guidelines first.
Thanks to all contributors, you're awesome and wouldn't be possible without you! The goal is to build a categorized community-driven collection of very well-known resources.
- Awesome Ruby
- Style Guide
- Package Management
- Environment Management
- Documentation
- Testing
- Web Frameworks
- Web Servers
- Database Drivers
- ORM
- HTTP
- API Builder
- CLI
- Authentication
- OAuth
- Authorization
- Queue
- Scheduling
- Template Engine
- Assets
- Markdown Processors
- Search
- Internationalization
- Geolocation
- Caching
- File Upload
- Form Builder
- Pagination
- Imagery
- Video
- WebSocket
- HTML Parsing
- Web Crawling
- Processes and Threads
- Concurrency
- Core Extensions
- Error Handling and Monitoring
- Code Analysis and Metrics
- Dashboards
- Debugging Tools
- Profiler
- Third-party APIs
- CMS
- Admin Interface
- Static Site Generation
- SEO
- Social Networking
- E-Commerce and Payments
- Analytics
- DevOps Tools
- Git Tools
- GUI
- Game Development
- Robotics
- Misc
- Resources
- Other Awesome Lists
- Ruby style guide - Community-driven Ruby coding style
- Rails style guide - Community-driven Rails best practices and style for Rails 3 and 4
-
Gems
-
Packages and Applications
- Homebrew - The missing package manager for OS X
- Homebrew-cask - a CLI workflow for the administration of Mac applications distributed as binaries
- CocoaPods - The Objective-C dependency manager
- Berkshelf - A Chef Cookbook manager
- rbenv — Use rbenv to pick a Ruby version for your application and guarantee that your development environment matches production
- 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
- dotenv - Loads environment variables from
.env
- ruby-build - Compile and install Ruby
- chruby - Change your current Ruby. No shims, no crazy options or features, ~90 LOC
- ruby-install - Installs Ruby, JRuby, Rubinius, MagLev or MRuby
- RDoc - RDoc produces HTML and command-line documentation for Ruby projects
- YARD - YARD enables the user to generate consistent, usable documentation that can be exported to a number of formats very easily
- RSpec - Behaviour Driven Development for Ruby
- minitest - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking
- Test::Unit - Test::Unit is a xUnit family unit testing framework for Ruby
- Cucumber - BDD that talks to domain experts first and code second
- Capybara - Acceptance test framework for web applications
- Appraisal - Appraisal integrates with bundler and rake to test your library against different versions of dependencies
- factory_girl - A library for setting up Ruby objects as test data
- 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.
- vcr - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests
- Spring - Preloads your rails environment in the background for faster testing and Rake tasks
- Rack - A Ruby Webserver Interface
- Unicorn - Rack HTTP server for fast clients and Unix
- Thin - Tiny, fast & funny HTTP server
- Puma - A modern, concurrent web server for Ruby
- Goliath - A non-blocking Ruby web server framework
- ruby-pg - Ruby interface to PostgreSQL 8.3 and later
- mysql2 - A modern, simple and very fast Mysql library for Ruby (binding to libmysql)
- SQLite3
- redis-rb - A Ruby client that tries to match Redis' API one-to-one, while still providing an idiomatic interface
- ActiveRecord
- Sequel - Sequel is a simple, flexible, and powerful SQL database access toolkit for Ruby
- Mongoid - An ODM (Object-Document-Mapper) framework for MongoDB in Ruby
- DataMapper
- MongoMapper
- RESTClient - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions
- httparty
- Faraday
- Sawyer - Secret user agent of HTTP, built on top of Faraday
- 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.
- Patron - Patron is a Ruby HTTP client library based on libcurl.
- Typhoeus - Typhoeus wraps libcurl in order to make fast and reliable requests
- Grape - An opinionated micro-framework for creating REST-like APIs in Ruby
- Rails::API
- ActiveModel::Serializers - JSON serialization of objects
- Crêpe - The thin API stack
- jbuilder - Create JSON structures via a Builder-style DSL
- rabl - General ruby templating with json, bson, xml, plist and msgpack support
- Pliny - Opinionated template Sinatra app for writing excellent APIs in Ruby
- Roar - Resource-Oriented Architectures in Ruby
- Rake - A make-like build utility for Ruby
- Thor - A toolkit for building powerful command-line interfaces
- Commander - The complete solution for Ruby command-line executables
- Slop - Simple Lightweight Option Parsing
- Devise - A flexible authentication solution for Rails based on Warden
- Authlogic
- OmniAuth - A library that standardizes multi-provider authentication utilizing Rack middleware
- Sorcery
- Clearance - Small and simple email & password based authenticaton for Rails
- OAuth2 - A Ruby wrapper for the OAuth 2.0 protocol
- Doorkeeper - An OAuth2 provider for Rails
- Resque — A Redis-backed Ruby library for creating background jobs
- 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.
- Sucker Punch — A single process background processing library using Celluloid. Aimed to be Sidekiq's little brother.
- Delayed::Job — Database backed asynchronous priority queue
- Whenever - A Ruby gem that provides a clear syntax for writing and deploying cron jobs
- rufus-scheduler - Job scheduler for Ruby (at, cron, in and every jobs)
- resque-scheduler - A light-weight job scheduling system built on top of Resque
- Tilt - Generic interface to multiple Ruby template engines
- Haml - HTML Abstraction Markup Language
- Slim
- Liquid
- Curly
- Sass - Sass makes CSS fun again
- Management:
- Sprockets - Rack-based asset packaging system
- Rails Assets - Bundler to Bower proxy
- kramdown — Kramdown is yet-another-markdown-parser but fast, pure Ruby, using a strict syntax definition and supporting several common extensions
- Redcarpet — A fast, safe and extensible Markdown to (X)HTML parser
- Maruku — A pure-Ruby Markdown-superset interpreter
- Thinking Sphinx - A library for connecting ActiveRecord to the Sphinx full-text search tool
- elasticsearch-ruby
- Sunspot - A Ruby library for expressive, powerful interaction with the Solr search engine
- 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.
- pg_search - Builds ActiveRecord named scopes that take advantage of PostgreSQL's full text search
- has_scope - Has scope allows you to easily create controller filters based on your resources named scopes.
- i18n - Ruby Internationalization and localization solution
- i18n-tasks - Manage missing and unused translations with the awesome power of static analysis
- 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
- Action caching for Action Pack - Action caching for Action Pack
- Dalli - A high performance pure Ruby client for accessing memcached servers
- CarrierWave - Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks
- PaperClip - Easy file attachment management for ActiveRecord
- DragonFly - A Ruby gem for on-the-fly processing - suitable for image uploading in Rails, Sinatra and much more!
- Mail - A Really Ruby Mail Library
- Pony- The express way to send mail from Ruby
- Mailman - An incoming mail processing microframework in Ruby
- Incoming - Incoming! helps you receive email in your Rack apps
- MailCatcher - Catches mail and serves it through a dream
- LetterOpener - Preview mail in the browser instead of sending.
- Simple Form - Rails forms made easy
- Formtastic - A Rails form builder plugin with semantically rich and accessible markup
- Kaminari - A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for modern web app frameworks and ORMs
- will_paginate - A pagination library that integrates with Ruby on Rails, Sinatra, Merb, DataMapper and Sequel
- MiniMagick - A ruby wrapper for ImageMagick or GraphicsMagick command line
- RMagick - RMagick is an interface between Ruby and ImageMagick
- Streamio FFMPEG - Simple yet powerful wrapper around the ffmpeg command for reading metadata and transcoding movies
- Faye - A set of tools for simple publish-subscribe messaging between web clients. It ships with easy-to-use message routing servers for Node.js and Rack applications, and clients that can be used on the server and in the browser.
- Nokogiri - An HTML, XML, SAX, and Reader parser with XPath and CSS selector support
- MetaInspector - Ruby gem for web scraping purposes. It scrapes a given URL, and returns you its title, meta description, meta keywords, an array with all the links, all the images in it, etc.
- LinkThumbnailer - Ruby gem that generates thumbnail images and videos from a given URL. Much like popular social website with link preview.
- Parallel
- posix-spawn - Fast Process::spawn for Rubys >= 1.8.7 based on the posix_spawn() system interfaces
- EventMachine - An event-driven I/O and lightweight concurrency library for Ruby
- Celluloid - Actor-based concurrent object framework for Ruby
- 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.
- ActiveSupport - A collection of utility classes and standard library extensions.
- Ruby Facets - The premiere collection of general purpose method extensions and standard additions for Ruby.
- 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
- SimpleCov - Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites.
- Rubocop - A static code analyzer, based on the community Ruby style guide.
- rails_best_practices - A code metric tool for rails projects
- 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.
- Brakeman - A static analysis security vulnerability scanner for Ruby on Rails applications.
- Dashing-Rails - The exceptionally handsome dashboard framework for Rails.
- debugger - A port of ruby-debug that works on 1.9.2 and 1.9.3.
- Byebug - A simple to use, feature rich debugger for Ruby 2.
- ruby-prof - A code profiler for MRI rubies
- rack-mini-profiler - Profiler for your development and production Ruby rack apps
- perftools.rb - gperftools (formerly known as google-perftools) for Ruby code
- Octokit - Ruby toolkit for the GitHub API
- fb_graph - A full-stack Facebook Graph API wrapper
- twitter - A Ruby interface to the Twitter API
- t - A command-line power tool for Twitter
- tweetstream - A simple library for consuming Twitter's Streaming API
- ruby-gmail - A Rubyesque interface to Gmail
- instagram-ruby-gem - The official gem for the Instagram REST and Search APIs
- soundcloud-ruby - Official SoundCloud API Wrapper for Ruby
- linkedin - Provides an easy-to-use wrapper for LinkedIn's REST APIs
- Yt - An object-oriented Ruby client for YouTube API V3
- youtube_it - An object-oriented Ruby wrapper for the YouTube GData API
- ruby-trello - Implementation of the Trello API for Ruby
- hipchat-rb - HipChat HTTP API Wrapper in Ruby with Capistrano hooks
- flickr - A Ruby interface to the Flickr API
- ActiveAdmin - a Ruby on Rails framework for creating elegant backends for website administration
- RailsAdmin
- bhf - A simple to use Rails-Engine-Gem that offers an admin interface for trusted user
- Jekyll - Transform your plain text into static websites and blogs
- 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.
- FriendlyId - The "Swiss Army bulldozer" of slugging and permalink plugins for Active Record
- MetaTags - A gem to make your Rails application SEO-friendly
- SitemapGenerator - A framework-agnostic XML Sitemap generator written in Ruby
- diaspora* - A privacy aware, distributed, open source social network
- Discourse - A platform for community discussion. Free, open, simple
- Forem
- Active Merchant - A simple payment abstraction library extracted from Shopify
- Spree
- ROR Ecommerce
- stripe-ruby - Stripe Ruby bindings
- Paypal Merchant SDK - Official Paypal Merchant SDK for Ruby
- Capistrano - A remote server automation and deployment tool written in Ruby
- Backup - Provides an elegant DSL in Ruby for performing backups on UNIX-like systems
- 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
- Vagrant - Create and configure lightweight, reproducible, and portable development environments
- Chef - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure
- hub - a command line tool that wraps Git in order to extend it with extra features and commands that make working with GitHub easier
- Rugged - Ruby bindings to libgit2
- Gosu - A 2D game development library for the Ruby and C++ programming languages
- RubyMotion - A revolutionary toolchain that lets you quickly develop and test native iOS and OS X applications for iPhone, iPad and Mac
- Ruboto - A platform for developing full stand-alone apps for Android using the Ruby language and libraries
- Artoo - Next generation robotics framework with support for different platforms: Arduino, Leap Motion, Pebble, Raspberry Pi, etc.
- Betty - Friendly English-like interface for your command line. Don't remember a command? Ask Betty
- Foreman - Manage Procfile-based applications
- Prawn - Fast, Nimble PDF Writer for Ruby
- Pry - A powerful alternative to the standard IRB shell for Ruby
- Guard - A command line tool to easily handle events on file system modifications
- play ► - Your company's dj
- Treetop - PEG (Parsing Expression Grammar) parser
- GitHub Explore
- Ruby5 - The latest news in the Ruby and Rails community
- 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
- RubyFlow - Ruby Programming Community Link Blog
- RubyDaily - Community driven news
Other amazingly awesome lists can be found in the awesome-awesomeness list.