Awesome Ruby
A collection of awesome Ruby libraries, tools, frameworks and software. The essential Ruby to build modern Apps and Web Apps.
Inspired by the awesome-*
trend on GitHub.
The goal is to build a categorized community-driven collection of very well-known resources.
Sharing, suggestions and 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!
- Awesome Ruby
- Abstraction
- Admin Interface
- Analytics
- API Builder
- Assets
- Authentication and OAuth
- Authorization
- Caching
- CLI Builder
- CMS
- Code Analysis and Metrics
- Coding Style Guides
- Concurrency
- Configuration
- Core Extensions
- Country Data
- Dashboards
- Data Visualization
- Database Drivers
- Database Tools
- Date and Time Processing
- Debugging Tools
- Decorators
- DevOps Tools
- Documentation
- E-Commerce and Payments
- Ebook
- Environment Management
- Error Handling
- File Upload
- Form Builder
- Game Development
- Geolocation
- Git Tools
- GUI
- HTML/XML Parsing
- HTTP
- Imagery
- Internationalization
- Logging
- Machine Learning
- Markdown Processors
- Misc
- Mobile Development
- Money
- Natural Language Processing
- ORM/ODM
- ORM/ODM Extensions
- Package Management
- Pagination
- Process Monitoring
- Processes and Threads
- Profiler
- Queue
- Robotics
- RSS
- Scheduling
- Search
- SEO
- Social Networking
- State Machines
- Static Site Generation
- Template Engine
- Testing
- Third-party APIs
- Video
- Web Crawling
- Web Frameworks
- Web Servers
- WebSocket
- Services and Apps
- Resources
- Other Awesome Lists
Abstraction
- ActiveInteraction - Manage application specific business logic.
- Cells - View Components for Rails
- Interactor - Interactor provides a common interface for performing complex interactions in a single request
- Light Service - Series of Actions with an emphasis on simplicity.
- Mutations - Compose your business logic into commands that sanitize and validate input
- Reform - Form objects decoupled from models.
Admin Interface
- ActiveAdmin - a Ruby on Rails framework for creating elegant backends for website administration
- bhf - A simple to use Rails-Engine-Gem that offers an admin interface for trusted user
- RailsAdmin - A Rails engine that provides an easy-to-use interface for managing your data
Analytics
- Ahoy - A solid foundation to track visits and events in Ruby, JavaScript, and native apps
- Gabba - Simple way to send server-side notifications to Google Analytics
- Legato - Model analytics reports and queries against the official Google Analytics Reporting API
- Staccato - Track analytics into the official Google Analytics Collection API
API Builder
- ActiveModel::Serializers - JSON serialization of objects
- Crêpe - The thin API stack
- Grape - An opinionated micro-framework for creating REST-like APIs in Ruby
- jbuilder - Create JSON structures via a Builder-style DSL
- JSONAPI::Resources - JSONAPI::Resources, or "JR", provides a framework for developing a server that complies with the JSON API specification.
- Jsonite - A tiny, HAL-compliant JSON presenter for your APIs
- Pliny - Opinionated template Sinatra app for writing excellent APIs in Ruby
- rabl - General ruby templating with json, bson, xml, plist and msgpack support
- Rails::API - Rails for API only applications
- Roar - Resource-Oriented Architectures in Ruby
Assets
- Less Rails - The dynamic stylesheet language for the Rails asset pipeline.
- Less - Leaner CSS, in your browser or Ruby.
- Sass - Sass makes CSS fun again
- Management:
- Rails Assets - Bundler to Bower proxy
- Sprockets - Rack-based asset packaging system
Authentication and OAuth
- Authlogic
- Clearance - Small and simple email & password based authenticaton for Rails
- Devise - A flexible authentication solution for Rails based on Warden
- OmniAuth - A library that standardizes multi-provider authentication utilizing Rack middleware
- Sorcery - Magical Authentication for Rails 3 and 4
- OAuth:
- Doorkeeper - An OAuth2 provider for Rails
- OAuth2 - A Ruby wrapper for the OAuth 2.0 protocol
Authorization
- Authority ORM-neutral way to authorize actions in your Rails app.
- CanCanCan
- Pundit - Minimal authorization through OO design and pure Ruby classes
Caching
- Action caching for Action Pack - Action caching for Action Pack
- Dalli - A high performance pure Ruby client for accessing memcached servers
- Record Cache - Cache Active Model Records in Rails 3
CLI Builder
- Commander - The complete solution for Ruby command-line executables
- GLI - Git-Like Interface Command Line Parser
- Main - A class factory and DSL for generating command line programs real quick
- Rake - A make-like build utility for Ruby
- Slop - Simple Lightweight Option Parsing
- Thor - A toolkit for building powerful command-line interfaces
CMS
- Alchemy CMS - A powerful, userfriendly and flexible Open Source Rails CMS
- LocomotiveCMS - A simple but powerful CMS based on Liquid templates and Mongodb database
- Publify - A self hosted Web publishing platform on Rails
- Radiant - A no-fluff, open source content management system designed for small teams
- Refinery CMS - An open source Ruby on Rails content management system for Rails 3 and 4
Code Analysis and Metrics
- Brakeman - A static analysis security vulnerability scanner for Ruby on Rails applications.
- 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.
- fukuzatsu - Complexity analysis tool with a rich web front-end.
- MetricFu - A fist full of code metrics
- rails_best_practices - A code metric tool for rails projects
- Reek - Code smell detector for Ruby
- Rubocop - A static code analyzer, based on the community Ruby style guide.
- Rubycritic - A Ruby code quality reporter.
- SimpleCov - Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites.
Coding Style Guides
- Rails style guide - Community-driven Rails best practices and style for Rails 3 and 4
- RSpec style guide - Better Specs { rspec guidelines with ruby }
- Ruby style guide - Community-driven Ruby coding style
Concurrency
- 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.
- EventMachine - An event-driven I/O and lightweight concurrency library for Ruby
Configuration
- Configatron - Simple and feature rich configuration system for Ruby apps
- Configus - Helps you easily manage environment specific settings
- dotenv - Loads environment variables from
.env
- Econfig - Flexible configuration for Rails applications
- Figaro - Simple, Heroku-friendly Rails app configuration using
ENV
and a single YAML file - Global - Provides accessor methods for your configuration data
- RailsConfig - Multi-environment yaml settings for Rails3
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.
- Attributes
- ActiveAttr - What ActiveModel left out
- FastAttributes - FastAttributes adds attributes with their types to the class
- Virtus - Attributes on Steroids for Plain Old Ruby Objects
- Hash
- Hashie - A collection of tools that extend Hashes and make them more useful
Country Data
- Carmen - A repository of geographic regions
- Countries - All sorts of useful information about every country packaged as pretty little country objects
- i18n_data - country/language names and 2-letter-code pairs, in 85 languages, for country/language i18n
- normalize_country - Convert country names and codes to a standard, includes a conversion program for XMLs, CSVs and DBs
Dashboards
- Dashing-Rails - The exceptionally handsome dashboard framework for Rails.
Data Visualization
- RailRoady - Ruby on Rails 3/4 model and controller UML class diagram generator.
- Rails Erd - Generate Entity-Relationship Diagrams for Rails applications.
- Ruby/GraphViz - Ruby interface to the GraphViz graphing tool
Database Drivers
- DataObjects - An attempt to rewrite existing Ruby database drivers to conform to one, standard interface.
- mongo-ruby-driver - MongoDB Ruby driver
- moped - A MongoDB driver for Ruby
- mysql2 - A modern, simple and very fast Mysql library for Ruby (binding to libmysql)
- Redic - Lightweight Redis Client
- redis-rb - A Ruby client that tries to match Redis' API one-to-one, while still providing an idiomatic interface
- ruby-pg - Ruby interface to PostgreSQL 8.3 and later
- SQLite3
Database Tools
- Database Cleaner - Database Cleaner is a set of strategies for cleaning your database in Ruby.
- PgHero - Postgres insights made easy
- Seed dump - Rails 4 task to dump (parts) of your database to db/seeds.rb.
- Seed Fu - Advanced seed data handling for Rails.
Date and Time Processing
- business_time - Support for doing time math in business hours and days
- Chronic - A natural language date/time parser written in pure Ruby
- groupdate - The simplest way to group temporal data in ActiveRecord, arrays and hashes
- time-lord - Adds extra functionality to the time class
- time_diff - Calculates the difference between two time
- validates_timeliness - Date and time validation plugin for ActiveModel and Rails
- yymmdd - Tiny DSL for idiomatic date parsing and formatting
Debugging Tools
- Byebug - A simple to use, feature rich debugger for Ruby 2.
- debugger - A port of ruby-debug that works on 1.9.2 and 1.9.3.
Decorators
- Draper - Draper adds an object-oriented layer of presentation logic to your Rails application
DevOps Tools
- Backup - Provides an elegant DSL in Ruby for performing backups on UNIX-like systems
- Capistrano - A remote server automation and deployment tool written in Ruby
- Chef - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure
- Lita - ChatOps for Ruby: A pluggable chat bot framework usable with any chat service.
- Logstash - Logs/event transport, processing, management, search
- Mina - Really fast deployer and server automation tool.
- 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
- Rubber - The rubber plugin enables relatively complex multi-instance deployments of RubyOnRails applications to Amazon's Elastic Compute Cloud (EC2).
- Vagrant - Create and configure lightweight, reproducible, and portable development environments
Documentation
- grape-swagger - Add swagger compliant documentation to your Grape API
- Inch - Inch is a documentation measurement and evalutation tool for Ruby code, based on YARD
- 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
E-Commerce and Payments
- Active Merchant - A simple payment abstraction library extracted from Shopify
- Paypal Merchant SDK - Official Paypal Merchant SDK for Ruby
- Piggybak - Modular, Extensible open-source ecommerce solution for Ruby on Rails
- ROR Ecommerce
- Shoppe - A Rails-based e-commerce platform which allows you to easily introduce a catalogue-based store into your Rails 4 applications
- Spree
- stripe-ruby - Stripe Ruby bindings
Ebook
- Bookshop - Bookshop is a an open-source agile book development and publishing framework for authors, editors.
- Eeepub - EeePub is a Ruby ePub generator.
- Gepub - A generic EPUB library for Ruby : supports EPUB 3
- Git Scribe - Basically the best way to write an ebook.
- Mobi - A Ruby way to read MOBI format metadata
- Review - Re:VIEW is flexible document format/conversion system
- Incoming - Incoming! helps you receive email in your Rack apps
- LetterOpener - Preview mail in the browser instead of sending.
- Mail - A Really Ruby Mail Library
- MailCatcher - Catches mail and serves it through a dream
- Mailman - An incoming mail processing microframework in Ruby
- Pony - The express way to send mail from Ruby
Environment Management
- chgems - Chroot for RubyGems
- chruby - Change your current Ruby. No shims, no crazy options or features, ~90 LOC
- fry - Simple ruby version manager for fish
- gem_home - A tool for changing your $GEM_HOME
- rbenv - Use rbenv to pick a Ruby version for your application and guarantee that your development environment matches production
- ruby-build - Compile and install Ruby
- ruby-install - Installs Ruby, JRuby, Rubinius, MagLev or MRuby
- 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
Error Handling
- Airbrake - The official Airbrake library for Ruby on Rails (and other Rack based frameworks)
- Better Errors - Better error page for Rack apps
- Errbit - The open source, self-hosted error catcher
- Exception Notification - A set of notifiers for sending notifications when errors occur in a Rack/Rails application
- Nesty - Nested exceptions for Ruby
- Raven Ruby - Raven is a Ruby client for Sentry.
File Upload
- CarrierWave - Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks
- DragonFly - A Ruby gem for on-the-fly processing - suitable for image uploading in Rails, Sinatra and much more!
- PaperClip - Easy file attachment management for ActiveRecord
- rack-secure-upload - Upload files securely
Form Builder
- Abracadabra - The gem that swaps out text with a fully-compliant Rails form in one click
- Formtastic - A Rails form builder plugin with semantically rich and accessible markup
- Rails Bootstrap Forms - Rails form builder that makes it super easy to create beautiful-looking forms with Twitter Bootstrap 3+
- Simple Form - Rails forms made easy
Game Development
- Gosu - A 2D game development library for the Ruby and C++ programming languages
Geolocation
- Geocoder - A complete geocoding solution for Ruby. With Rails it adds geocoding (by street or IP address), reverse geocoding (find street address based on given coordinates), and distance queries
- Geokit - Geokit gem provides geocoding and distance/heading calculations
Git Tools
- git-auto-bisect - Find the commit that broke master
- git-spelunk - Dig through git blame history
- git-up - Fetch and rebase all locally-tracked remote branches
- git-whence - Find which merge a commit came from
- 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
HTML/XML Parsing
- HappyMapper - Object to XML mapping library, using Nokogiri
- Nokogiri - An HTML, XML, SAX, and Reader parser with XPath and CSS selector support
- ROXML - Custom mapping and bidirectional marshalling between Ruby and XML using annotation-style class methods, via Nokogiri or LibXML.
HTTP
- 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.
- Faraday
- Http Client - Gives something like the functionality of libwww-perl (LWP) in Ruby
- http - The HTTP Gem: a simple Ruby DSL for making HTTP requests.
- httparty
- Patron - Patron is a Ruby HTTP client library based on libcurl.
- RESTClient - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions
- Savon - Savon is a SOAP client for the Ruby programming language.
- Sawyer - Secret user agent of HTTP, built on top of Faraday
- Typhoeus - Typhoeus wraps libcurl in order to make fast and reliable requests
Imagery
- MiniMagick - A ruby wrapper for ImageMagick or GraphicsMagick command line
- PSD.rb - Parse Photoshop files in Ruby with ease
- RMagick - RMagick is an interface between Ruby and ImageMagick
- Skeptick - Skeptick is an all-purpose DSL for building and running ImageMagick commands.
Internationalization
- i18n-tasks - Manage missing and unused translations with the awesome power of static analysis
- i18n - Ruby Internationalization and localization solution
- r18n - Advanced i18n library for Rails, Sinatra, desktop apps, models, works well with complex languages like Russian.
- 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
Logging
- Cabin - Structured+contextual logging experiments in Ruby.
- Fluentd - Fluentd collects events from various data sources and writes them to files, database or other types of storages
- HttpLog - Log outgoing HTTP requests.
- Log4r - Log4r is a comprehensive and flexible logging library for use in Ruby programs
- Logging - A flexible logging library for use in Ruby programs based on the design of Java's log4j library.
- Lograge - An attempt to tame Rails' default policy to log everything.
- MongoDB Logger - MongoDB logger for Rails
- Scrolls - Simple logging
- Yell - Your Extensible Logging Library
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
- Ruby Datumbox Wrapper - It's a simple Ruby Datumbox Wrapper. At the moment the API currently allows you to build applications that make use of machine learning algorithms.
Markdown Processors
- kramdown - Kramdown is yet-another-markdown-parser but fast, pure Ruby, using a strict syntax definition and supporting several common extensions
- Maruku - A pure-Ruby Markdown-superset interpreter
- Redcarpet - A fast, safe and extensible Markdown to (X)HTML parser
Misc
- AASM - A library for adding finite state machines to Ruby classes
- Betty - Friendly English-like interface for your command line. Don't remember a command? Ask Betty
- Foreman - Manage Procfile-based applications
- Gollum - A simple, Git-powered wiki with a sweet API and local frontend.
- Guard - A command line tool to easily handle events on file system modifications
- JsonCompare - Returns the difference between two JSON files
- play ► - Your company's dj
- Pry Debugger - Pry navigation commands via debugger (formerly ruby-debug)
- Pry - A powerful alternative to the standard IRB shell for Ruby
- pygments.rb - A Ruby wrapper for the Python pygments syntax highlighter
- Ruby Operators - A webpage showing awesome names for different Ruby operators.
- Termit - Google Translate with speech synthesis in your terminal
- Treetop - PEG (Parsing Expression Grammar) parser
- Yomu - Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf)
Mobile Development
- Ruboto - A platform for developing full stand-alone apps for Android using the Ruby language and libraries
- RubyMotion - A revolutionary toolchain that lets you quickly develop and test native iOS and OS X applications for iPhone, iPad and Mac
Money
- eu_central_bank - A gem that calculates the exchange rate using published rates from European Central Bank
- Money - A Ruby Library for dealing with money and currency conversion
Natural Language Processing
- Treat - Treat is a toolkit for natural language processing and computational linguistics in Ruby
ORM/ODM
- ActiveRecord
- DataMapper - ORM which works well with legacy databases. Last release (1.2.0) was on 13 October 2011.
- Guacamole - An ODM for ArangoDB
- Mongoid - An ODM (Object-Document-Mapper) framework for MongoDB in Ruby
- MongoMapper
- MongoModel - Ruby ODM for interfacing with MongoDB databases
- ohm - Object-hash mapping library for Redis
- Sequel - Sequel is a simple, flexible, and powerful SQL database access toolkit for Ruby
ORM/ODM Extensions
- Mongoid Tree - A tree structure for Mongoid documents using the materialized path pattern
Package Management
- Gems
- Packages and Applications
- Berkshelf - A Chef Cookbook manager
- CocoaPods - The Objective-C dependency manager
- Homebrew-cask - a CLI workflow for the administration of Mac applications distributed as binaries
- Homebrew - The missing package manager for OS X
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
- Gimli - Utility for converting markup files to pdf files.
- Kitabu - A framework for creating e-books from Markdown/Textile text markup using Ruby.
- Pdfkit - HTML+CSS to PDF using wkhtmltopdf
- Prawn - Fast, Nimble PDF Writer for Ruby
- RGhost - RGhost is a document creation and conversion API.
- Shrimp - A phantomjs based pdf renderer
- Wicked Pdf - PDF generator (from HTML) plugin for Ruby on Rails
- Wisepdf - Wkhtmltopdf wrapper done right
Process Monitoring
- Bluepill - Simple process monitoring tool
- God - An easy to configure, easy to extend monitoring framework written in Ruby
Processes and Threads
- Parallel - Run any code in parallel Processes (> use all CPUs) or Threads (> speedup blocking operations). Best suited for map-reduce or e.g. parallel downloads/uploads
- childprocess - Cross-platform ruby library for managing child processes.
- forkoff - brain-dead simple parallel processing for ruby
- posix-spawn - Fast Process::spawn for Rubys >= 1.8.7 based on the posix_spawn() system interfaces
Profiler
- bullet - Help to kill N+1 queries and unused eager loading
- Peek - Visual status bar showing Rails performance
- perftools.rb - gperftools (formerly known as google-perftools) for Ruby code
- rack-mini-profiler - Profiler for your development and production Ruby rack apps
- ruby-prof - A code profiler for MRI rubies
Queue
- active_job - Declare job classes that can be run by a variety of queueing backends
- Delayed::Job - Database backed asynchronous priority 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.
Robotics
- Artoo - Next generation robotics framework with support for different platforms: Arduino, Leap Motion, Pebble, Raspberry Pi, etc.
RSS
- Feed normalizer - Extensible Ruby wrapper for Atom and RSS parsers.
- Feedjira - A feed fetching and parsing library.
- Ratom - A fast, libxml based, Ruby Atom library.
- Simple rss - A simple, flexible, extensible, and liberal RSS and Atom reader.
Scheduling
- 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.
- resque-scheduler - A light-weight job scheduling system built on top of Resque
- rufus-scheduler - Job scheduler for Ruby (at, cron, in and every jobs)
- Whenever - A Ruby gem that provides a clear syntax for writing and deploying cron jobs
Search
- attr_searchable - Search engine like fulltext query support for ActiveRecord
- elasticsearch-ruby
- has_scope - Has scope allows you to easily create controller filters based on your resources named scopes.
- pg_search - Builds ActiveRecord named scopes that take advantage of PostgreSQL's full text search
- ransack - Object-based searching.
- Rroonga - The Ruby bindings of Groonga
- 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.
- Searchlogic - Object based searching, common named scopes, and other useful named scope tools for ActiveRecord
- Sunspot - A Ruby library for expressive, powerful interaction with the Solr search engine
- Thinking Sphinx - A library for connecting ActiveRecord to the Sphinx full-text search tool
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
- Campo - Campo is a lightweight forum application, base on Ruby on Rails.
- diaspora* - A privacy aware, distributed, open source social network
- Discourse - A platform for community discussion. Free, open, simple
- Forem - Rails 3 and Rails 4 forum engine
State Machines
- AASM - State machines for Ruby classes (plain Ruby, Rails Active Record, Mongoid)
- simple_states - A super-slim statemachine-like support library
- Statesman - A statesmanlike state machine library
- Workflow - A finite-state-machine-inspired API for modeling and interacting with what we tend to refer to as 'workflow'
Static Site Generation
- High Voltage - Easily include static pages in your Rails app
- 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
Template Engine
- Curly - A template language that completely separates structure and logic
- Haml - HTML Abstraction Markup Language
- Liquid - Safe, customer facing template language for flexible web apps
- Mustache - Logic-less Ruby templates
- Slim - A template language whose goal is reduce the syntax to the essential parts without becoming cryptic
- Tilt - Generic interface to multiple Ruby template engines
Testing
- Frameworks
- RSpec - Behaviour Driven Development for Ruby
- Formatters
- Emoji-RSpec - Custom Emoji Formatters for RSpec
- Fuubar - The instafailing RSpec progress bar formatter
- Nyan Cat - Nyan Cat inspired RSpec formatter!
- Formatters
- Bacon - A small RSpec clone
- Capybara - Acceptance test framework for web applications
- Cucumber - BDD that talks to domain experts first and code second
- Cutest - Isolated tests in Ruby
- Konacha - Test your Rails application's JavaScript with the mocha test framework and chai assertion library
- minitest - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking
- RR - A test double framework that features a rich selection of double techniques and a terse syntax
- 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.
- 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.
- Spork - A DRb server for testing frameworks (RSpec / Cucumber currently)
- Test::Unit - Test::Unit is a xUnit family unit testing framework for Ruby
- RSpec - Behaviour Driven Development for Ruby
- Fake Data
- Fabrication - A simple and powerful object generation library
- factory_girl - A library for setting up Ruby objects as test data
- faker - A library for generating fake data such as names, addresses, and phone numbers.
- ffaker - A faster Faker, generates dummy data, rewrite of faker.
- Forgery - Easy and customizable generation of forged data.
- Machinist - Fixtures aren't fun. Machinist is
- Mock
- ActiveMocker - Generate mocks from ActiveRecord models for unit tests that run fast because they don’t need to load Rails or a database.
- TestXml - TestXml is a small extension for testing XML/HTML.
- WebMock - Library for stubbing and setting expectations on HTTP requests
- WebDrivers
- Selenium WebDriver - This gem provides Ruby bindings for WebDriver.
- Watir - Web application testing in Ruby
- Extra
- Appraisal - Appraisal integrates with bundler and rake to test your library against different versions of dependencies
- Ruby-JMeter - A Ruby based DSL for building JMeter test plans
- Spring - Preloads your rails environment in the background for faster testing and Rake tasks
- timecop - Provides "time travel" and "time freezing" capabilities, making it dead simple to test time-dependent code
- vcr - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests
Third-party APIs
- Dropbox - Dropbox API Ruby Client.
- fb_graph - A full-stack Facebook Graph API wrapper
- flickr - A Ruby interface to the Flickr API
- gitlab - Ruby wrapper and CLI for the GitLab API
- gmail - A Rubyesque interface to Gmail, with all the tools you'll need.
- hipchat-rb - HipChat HTTP API Wrapper in Ruby with Capistrano hooks
- instagram-ruby-gem - The official gem for the Instagram REST and Search APIs
- itunes_store_transporter - Ruby wrapper around Apple's iTMSTransporter program
- linkedin - Provides an easy-to-use wrapper for LinkedIn's REST APIs
- Octokit - Ruby toolkit for the GitHub API
- Pusher - Ruby server library for the Pusher API.
- ruby-gmail - A Rubyesque interface to Gmail
- ruby-trello - Implementation of the Trello API for Ruby
- soundcloud-ruby - Official SoundCloud API Wrapper for Ruby
- t - A command-line power tool for Twitter
- tweetstream - A simple library for consuming Twitter's Streaming API
- twitter - A Ruby interface to the Twitter API
- wikipedia - Ruby client for the Wikipedia API.
- youtube_it - An object-oriented Ruby wrapper for the YouTube GData API
- Yt - An object-oriented Ruby client for YouTube API V3
Video
- Streamio FFMPEG - Simple yet powerful wrapper around the ffmpeg command for reading metadata and transcoding movies
Web Crawling
- anemone - Ruby library and CLI for crawling websites.
- LinkThumbnailer - Ruby gem that generates thumbnail images and videos from a given URL. Much like popular social website with link preview.
- Mechanize - Mechanize is a ruby library that makes automated web interaction easy.
- 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.
- Upton - A batteries-included framework for easy web-scraping. Just add CSS! (Or do more.)
- Wombat - Web scraper with an elegant DSL that parses structured data from web pages
Web Frameworks
- Camping - A web microframework which consistently stays at less than 4kB of code
- Cuba - A microframework for web development
- Lotus - It aims to bring back Object Oriented Programming to web development, leveraging on a stable API, a minimal DSL, and plain objects.
- Padrino - A full-stack ruby framework built upon Sinatra
- Pakyow - A framework for building modern web-apps in Ruby. It helps you build working software faster with a development process that remains friendly to both designers and developers
- Ramaze - A simple, light and modular open-source web application framework written in Ruby
- Roda - A routing tree web framework
- Ruby on Rails - A web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern
- Sinatra - Classy web-development dressed in a DSL
Web Servers
- Goliath - A non-blocking Ruby web server framework
- Phusion Passenger - Fast and robust web server and application server
- Puma - A modern, concurrent web server for Ruby
- 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
- Thin - Tiny, fast & funny HTTP server
- Unicorn - Rack HTTP server for fast clients and Unix
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.
- Firehose - Build realtime Ruby web applications
- Rails Realtime - Adding Real-Time To Your RESTful Rails App.
- Sync - Real-time Rails Partials
- Websocket-Rails - Creates a built in WebSocket server inside a Rails application with ease. Also support streaming HTTP
Services and Apps
- AppSignal - Better monitoring for your Rails applications.
- CodeClimate - Quality & security analysis for Ruby on Rails and Javascript.
- Gemnasium - Monitor your project dependencies and alert you about updates and security vulnerabilities.
- GitHub - Powerful collaboration, code review, and code management for open source and private projects.
- Gitlab CI - Integrate with your GitLab to run tests for your projects.
- GitLab - Open source software to collaborate on code.
- Hakiri - Ship Secure Ruby Apps.
- Honeybadger - Exception, uptime, and performance monitoring for Ruby.
- HoundCI - Review your Ruby code for style guide violations.
- Inch CI - Documentation badges for Ruby projects.
- Omniref - A comprehensive Ruby documentation site
- PullReview - Automated code review for Ruby and Rails - from style to security.
- Travis CI.com - Take care of running your tests and deploying your private apps.
- Travis CI.org - A distributed build system for the open source community.
Resources
- GemBundle - A place to discover new Ruby Gems
- GitHub Explore
- 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
- RubyDaily - Community driven news
- RubyFlow - Ruby Programming Community Link Blog
- 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
Other Awesome Lists
Other amazingly awesome lists can be found in the awesome-awesomeness list.