Awesome Ruby
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! The idea is to build a categorized community-driven collection.
- 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
- Imagery
- Video
- WebSocket
- HTML Parsing
- Web Crawling
- Processes and Threads
- Concurrency
- Core Extensions
- Error Handling and Monitoring
- Code Analysis and Metrics
- Debugging Tools
- Profiler
- Third-party APIs
- CMS
- Admin Interface
- Static Site Generation
- Forum Engine
- E-Commerce and Payments
- Analytics
- DevOps Tools
- Git Tools
- GUI
- Game Development
- Robotics
- Misc
- Resources
Style Guide
- Ruby style guide - Community-driven Ruby coding style
- Rails style guide - Community-driven Rails best practices and style for Rails 3 and 4
Package Management
-
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
Environment Management
- 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
- chruby - Change your current Ruby. No shims, no crazy options or features, ~90 LOC
- ruby-install - Installs Ruby, JRuby, Rubinius, MagLev or MRuby
Documentation
- 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
Testing
- 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
Web Frameworks
Web Servers
- 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
Database Drivers
- 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
ORM
- 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
Http
- RESTClient - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions
- httparty
- Faraday
API Builder
- Grape - An opinionated micro-framework for creating REST-like APIs in Ruby
- Rails::API
- 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
CLI
- 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
Authentication
- Devise - A flexible authentication solution for Rails based on Warden
- Authlogic
- OmniAuth - A library that standardizes multi-provider authentication utilizing Rack middleware
- Sorcery
OAuth
- OAuth2 - A Ruby wrapper for the OAuth 2.0 protocol
- Doorkeeper - An OAuth2 provider for Rails
Authorization
Queue
- 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
Scheduling
- 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
Template Engine
- Tilt - Generic interface to multiple Ruby template engines
- Haml - HTML Abstraction Markup Language
- Slim
- Liquid
Assets
- Sass - Sass makes CSS fun again
- Management:
- Sprockets - Rack-based asset packaging system
- Rails Assets - Bundler to Bower proxy
Markdown Processors
- 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
Search
- 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.
Internationalization
- 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
Geolocation
Caching
- Dalli - A high performance pure Ruby client for accessing memcached servers
File Upload
- 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
- Mailman - An incoming mail processing microframework in Ruby
- MailCatcher - Catches mail and serves it through a dream
Form Builder
- Simple Form - Rails forms made easy
- Formtastic - A Rails form builder plugin with semantically rich and accessible markup
Imagery
- MiniMagick - A ruby wrapper for ImageMagick or GraphicsMagick command line
- RMagick - RMagick is an interface between Ruby and ImageMagick
Video
- Streamio FFMPEG - Simple yet powerful wrapper around the ffmpeg command for reading metadata and transcoding movies
WebSocket
- 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.
HTML Parsing
- Nokogiri - An HTML, XML, SAX, and Reader parser with XPath and CSS selector support
Web Crawling
- 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.
Processes and Threads
- Parallel
- posix-spawn - Fast Process::spawn for Rubys >= 1.8.7 based on the posix_spawn() system interfaces
Concurrency
- EventMachine - An event-driven I/O and lightweight concurrency library for Ruby
- Celluloid - Actor-based concurrent object framework for Ruby
Core Extensions
- ActiveSupport
- Ruby Facets - The premiere collection of general purpose method extensions and standard additions for Ruby
Error Handling and Monitoring
- 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
Code Analysis and Metrics
- SimpleCov - Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites
- Rubocop
- 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.
Debugging Tools
Profiler
- 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
Third-party APIs
- 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
- 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
CMS
Admin Interface
- ActiveAdmin - a Ruby on Rails framework for creating elegant backends for website administration
- RailsAdmin
- bhf
Static Site Generation
- 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
Forum Engine
E-Commerce and Payments
- Active Merchant - A simple payment abstraction library extracted from Shopify
- Spree
- ROR Ecommerce
- stripe-ruby - Stripe Ruby bindings
Analytics
DevOps Tools
- 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
Git Tools
- 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
GUI
Game Development
- Gosu - A 2D game development library for the Ruby and C++ programming languages
Mobile Development
- 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
Robotics
- Artoo - Next generation robotics framework with support for different platforms: Arduino, Leap Motion, Pebble, Raspberry Pi, etc.
Misc
- 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
- Kaminari - A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for modern web app frameworks and ORMs
Resources
- GitHub Explore
- 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