A collection of awesome Ruby libraries, tools, frameworks and software
Pull request Compare This branch is 966 commits behind markets:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
CONTRIBUTING.md
README.md

README.md

Awesome Ruby ruby-rocks!

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 and quality standard 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.

Style Guide

Package Management

  • Gems

    • RubyGems - Community's gem hosting service
    • Bundler - Manage your application's gem dependencies with less pain
  • 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

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 - 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

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
  • Spring - Preloads your rails environment in the background for faster testing and Rake tasks
  • Konacha - Test your Rails application's JavaScript with the mocha test framework and chai assertion library

Web Frameworks

Web Servers

  • 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
  • Phusion Passenger - Fast and robust web server and application server
  • 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

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
  • DataMapper - ORM which works well with legacy databases. Last release (1.2.0) was on 13 October 2011.
  • MongoMapper
  • Ohm - Object-hash mapping library for Redis

Http

  • 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
  • http - The HTTP Gem: a simple Ruby DSL for making HTTP requests.

API Builder

  • 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

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
  • Termit - Google Translate with speech synthesis in your terminal

Authentication

  • 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

OAuth

  • OAuth2 - A Ruby wrapper for the OAuth 2.0 protocol
  • Doorkeeper - An OAuth2 provider for Rails

Authorization

  • CanCanCan
  • Pundit - Minimal authorization through OO design and pure Ruby classes

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
  • 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.
  • 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
  • Curly

Assets

  • Sass - Sass makes CSS fun again
  • Management:

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
  • r18n - Advanced i18n library for Rails, Sinatra, desktop apps, models, works well with complex languages like Russian.

Geolocation

Caching

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!

Email

  • 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.

Form Builder

  • Simple Form - Rails forms made easy
  • Formtastic - A Rails form builder plugin with semantically rich and accessible markup

Pagination

  • 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

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.
  • LinkThumbnailer - Ruby gem that generates thumbnail images and videos from a given URL. Much like popular social website with link preview.
  • anemone - Ruby library and CLI for crawling websites.

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
  • 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.

Core Extensions

  • 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.

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 - 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.
  • fukuzatsu - Complexity analysis tool with a rich web front-end.

Dashboards

  • Dashing-Rails - The exceptionally handsome dashboard framework for Rails.

Debugging Tools

  • 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.

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
  • bullet - help to kill N+1 queries and unused eager loading

Third-party APIs

  • Octokit - Ruby toolkit for the GitHub API
  • gitlab - Ruby wrapper and CLI for the GitLab 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

CMS

Admin Interface

  • 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

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
  • Nanoc - A static site generator, fit for building anything from a small personal blog to a large corporate web site.

SEO

  • 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

Social Networking

  • diaspora* - A privacy aware, distributed, open source social network
  • Discourse - A platform for community discussion. Free, open, simple
  • Forem

E-Commerce and Payments

Analytics

  • Gabba
  • Ahoy - A solid foundation to track visits and events in Ruby, JavaScript, and native apps

Rss

  • Feedjira - A feed fetching and parsing library.
  • Simple rss - A simple, flexible, extensible, and liberal RSS and Atom reader.
  • Feed normalizer - Extensible Ruby wrapper for Atom and RSS parsers.
  • Ratom - A fast, libxml based, Ruby Atom library.

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
  • Mina - Really fast deployer and server automation tool.
  • Lita - ChatOps for Ruby: A pluggable chat bot framework usable with any chat service.

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
  • git-auto-bisect - Find the commit that broke master
  • git-whence - Find which merge a commit came from
  • git-spelunk - Dig through git blame history

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
  • Pry Debugger - Pry navigation commands via debugger (formerly ruby-debug)
  • Guard - A command line tool to easily handle events on file system modifications
  • play ► - Your company's dj
  • Treetop - PEG (Parsing Expression Grammar) parser
  • Yomu - Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf)

Resources

  • 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
  • Ruby Weekly - A free, once–weekly e-mail round-up of Ruby news and articles

Other Awesome Lists

Other amazingly awesome lists can be found in the awesome-awesomeness list.