# Awesome Ruby

A curated list of awesome Ruby frameworks, libraries and resources. Inspired by [awesome-php](https://github.com/ziadoz/awesome-php) & [awesome-python](https://github.com/vinta/awesome-python).

## Contribution

Your Pull requests are welcome! Let's make this the awesomest resource for Ruby :purple_heart:
| Resources| | |
| ------------- | ------------- | -------- |
|- [Awesome Ruby](#awesome-ruby) |   - [Admin Panels](#admin-panels)|- [Anti-spam](#anti-spam) |
|  - [Asset Management](#asset-management) | - [Audio](#audio) | - [Auditing](#auditing) |
|- [Authentication and OAuth](#authentication-and-oauth) |- [Build Tools](#build-tools) |- [Caching](#caching) |
| - [Cloud Services](#cloud-services) |- [CMS](#cms) |- [Code Analysis and Linter](#code-analysis-and-linter) |
|  - [Command-line Tools](#command-line-tools) |  - [Configuration](#configuration) |  - [CSS and Styling](#css-and-styling) |
|- [Data Validation](#data-validation) |- [Data Visualization](#data-visualization) |- [Database Drivers](#database-drivers) |
|- [Date and Time](#date-and-time) | - [Debugging Tools](#debugging-tools) |- [DevOps Tools](#devops-tools) |
|- [Distribution](#distribution) | - [Documentation](#documentation) | - [Downloader](#downloader) |
|  - [E-Commerce & Online Paying](#e-commerce--online-paying) | - [E-Mail](#e-mail) |- [Environment Management](#environment-management) |
| - [File Uploading](#file-uploading) |  - [Feature Flipping](#feature-flipping) |  - [Foreign Function Interface](#foreign-function-interface) |
|  - [Forms](#forms) |  - [Game Development](#game-development) |- [Geolocation](#geolocation) |
|  - [GUI](#gui) |- [High Performance](#high-performance) |  - [HTML/XML/CSS Manipulation](#htmlxmlcss-manipulation) |
|- [HTTP](#http) |- [Imagery](#imagery) |- [Internationalization](#internationalization) |
|  - [Logging](#logging) |  - [Machine Learning](#machine-learning) |- [MapReduce](#mapreduce) |
|- [Multi-tenancy](#multi-tenancy) |- [Natural Language Processing](#natural-language-processing) | - [Networking](#networking) |
| - [ORM](#orm) |- [Package Management](#package-management) |  - [Presentation Tools](#presentation-tools) |
|- [Processes and Threads](#processes-and-threads) |  - [Push Notification](#push-notification) |  - [Queue](#queue) |
|  - [Serverless](#serverless) | - [Spreadsheets](#spreadsheets) |  - [RESTful API](#restful-api) |
|- [Science and Data Analysis](#science-and-data-analysis) |- [Search](#search) | - [Site Monitoring](#site-monitoring) |
|  - [Starter Apps](#starter-apps) |- [Tagging](#tagging) |- [Template Engine](#template-engine) |
| - [Testing](#testing) |  - [Text Processing](#text-processing) |  - [Third-party APIs](#third-party-apis) |
|  - [URL Manipulation](#url-manipulation) |  - [Video](#video) |- [Web Content Extracting](#web-content-extracting) |
|  - [Web Crawling](#web-crawling) |- [Web Frameworks](#web-frameworks) |- [Web Servers](#web-servers) |
|  - [WebSocket](#websocket) |- [Miscellaneous](#miscellaneous) |- [Editor Plugins](#editor-plugins) |
|- [Resources](#resources) |  - [People to Follow](#people-to-follow) |- [Other Awesome Lists](#other-awesome-lists) |
|- [Contributing](#contributing) | | |




## Admin Panels

*Libraries for administrative interfaces.*

  * [active_admin](https://github.com/activeadmin/activeadmin) The administration framework for Ruby on Rails applications
  * [rails_admin](https://github.com/sferik/rails_admin) A Rails engine that provides an easy-to-use interface for managing your data
  * [administrate](https://github.com/thoughtbot/administrate) A framework for creating flexible, powerful admin dashboards in Rails.

## Anti-spam

*Libraries for fighting spam.*

  * [RubySpamAssassin](https://github.com/noeticpenguin/RubySpamAssassin) Kills Spam Dead. Perhaps before it's sent!

## Asset Management

*Tools for managing, compressing and minifying website assets.*

  * [sprockets](https://github.com/sstephenson/sprockets) Rack-based asset packaging system
  * [rails-assets](https://github.com/rails-assets/rails-assets/) is the frictionless proxy between Bundler and Bower

## Audio

  * [seal](https://github.com/zhangsu/seal) A C library (with Ruby binding) for 3D audio rendering

## Auditing

  *Tools for logging changes to ActiveRecord models*

  * [Audited](https://github.com/collectiveidea/audited) - Audited (formerly acts_as_audited) is an ORM extension that logs all changes to your Rails models.
  * [Logidze](https://github.com/palkan/logidze) - Logs model changes via database triggers (PL/SQL functions). Fastest model diffs. PostgreSQL 9.5+ only.

## Authentication and OAuth

*Libraries for implementing authentications schemes.*

  * [Devise](https://github.com/plataformatec/devise) - Devise is a flexible authentication solution for Rails based on Warden
  * [Omniauth](https://github.com/intridea/omniauth) - OmniAuth is a flexible authentication system utilizing Rack middleware
  * [Warden](https://github.com/hassox/warden) - General Rack Authentication Framework
  * [AuthLogic](https://github.com/binarylogic/authlogic) - A simple ruby authentication solution
  * [Sorcery](https://github.com/NoamB/sorcery) - Magical authentication for Rails 3 & 4
  * [CanCanCan](https://github.com/CanCanCommunity/cancancan) Authorization gem for Rails (continued version of CanCan from ryanb)
  * [pundit](https://github.com/elabs/pundit) - Minimal authorization using object oriented design.
  * [authority](https://github.com/nathanl/authority) - ORM neutral authorization.
  * [doorkeeper](https://github.com/doorkeeper-gem/doorkeeper) An OAuth 2 provider for Rails
  * [tiddle](https://github.com/adamniedzielski/tiddle/) - Devise strategy for token authentication in API-only Ruby on Rails applications

## Build Tools

*Compile software from source code.*

  * [teapot](https://github.com/ioquatix/teapot) A decentralised build tool for managing complex cross-platform projects

## Caching

*Libraries for caching data.*

  * [rack-cache](https://github.com/rtomayko/rack-cache) HTTP Caching for Ruby Web Apps
  * [Dalli](https://github.com/mperham/dalli) - a high performance pure Ruby client for accessing memcached servers.

## Cloud Services

  * [fog](https://github.com/fog/fog) The Ruby cloud services library
  * [aws-sdk-ruby](https://github.com/aws/aws-sdk-ruby) The official AWS SDK for Ruby

## CMS

*Content management systems*

  * [Refinery CMS](http://www.refinerycms.com) An extendable Ruby on Rails CMS that supports Rails 3.2 and 4.2
  * [Comfortable Mexican Sofa](https://github.com/comfy/comfortable-mexican-sofa) A powerful Rails 4/5 CMS Engine
  * [Browser](http://www.browsercms.org/) Humane Content Management for Rails
  * [Locomotive](http://www.locomotivecms.com/) a brand new CMS system with super sexy UI and cool features
  * [Radiant](http://radiantcms.org/) A no-fluff, open source content management system
  * [Nesta](http://nestacms.com/) A lightweight CMS, implemented in Sinatra
  * [alchemy_cms](https://github.com/AlchemyCMS/alchemy_cms) the most powerful, user friendly and flexible Rails CMS
  * [weby](https://github.com/cercomp/weby) Newbie CMS in Ruby on Rails

## Code Analysis and Linter

*Libraries and tools for analyzing, parsing and manipulation codebases.*
  * [sonarlint-intellij](https://github.com/SonarSource/sonarlint-intellij) - An IDE extension that helps you detect and fix quality issues as you write code.
  * [Rubocop](https://github.com/bbatsov/rubocop) - A Ruby static code analyzer, based on the community Ruby style guide.
  * [ruby-lint](https://github.com/YorickPeterse/ruby-lint) - ruby-lint is a static code analysis tool for Ruby
  * [brakeman](https://github.com/presidentbeef/brakeman) - Static analysis tool which checks Ruby on Rails applications for security vulnerabilities
  * [reek](https://github.com/troessner/reek) - Code smell detector for Ruby
  * [Breezer](https://github.com/lambda2/breezer) - Lock your Gemfile dependencies to safe versions.

## Command-line Tools

*Libraries for building command-line application.*

  * [Commander](http://visionmedia.github.io/commander/) - The complete solution for Ruby command-line executables
  * [Thor](https://github.com/erikhuda/thor) - Thor is a toolkit for building powerful command-line interfaces

## Configuration

*Libraries for storing configuration options.*

## CSS and Styling

  * [sass](https://github.com/sass/sass) A CSS preproccessor
    * [sass-rails](https://github.com/rails/sass-rails) Rails stylesheet engine for Sass
  * [less-rails](https://github.com/metaskills/less-rails) The dynamic stylesheet language for the Rails
  * [compass](https://github.com/Compass/compass) A a Stylesheet Authoring Environment
  * [bootstrap-sass](https://github.com/twbs/bootstrap-sass) Official Sass port of Bootstrap
  * [foundation-rails](https://github.com/zurb/foundation-rails) Foundation for Rails
  * [bootswatch-rails](https://github.com/maxim/bootswatch-rails) Bootswatches converted to SCSS ready to use in Rails
  * [bourbon](https://github.com/thoughtbot/bourbon) A lightweight mixin library for Sass

## Data Validation

*Libraries for validating data. Used for forms in many cases.*

  * [kangal](https://github.com/lab2023/kangal) - Extended validation gem for email, subdomain, credit card, tax number etc
  * [bin_checker](https://github.com/lab2023/bin_checker) - BIN validator for Turkish Banks

## Data Visualization

*Libraries for visualizing data.*

  * [prosperity](https://github.com/smathieu/prosperity) The easiest way to graph data from your Rails models

## Database Drivers

*Libraries for connecting and operating databases.*

  * Relational Databases
    * [ruby-pg](https://bitbucket.org/ged/ruby-pg) Ruby interface to the PostgreSQL >= 8.4
    * [mysql2](https://github.com/brianmario/mysql2) A modern, simple and very fast Mysql library for Ruby
    * [sqlite3-ruby](https://github.com/sparklemotion/sqlite3-ruby) Ruby bindings for the SQLite3 embedded database

  * NoSQL Databases

## Date and Time

*Libraries for working with dates and times.*

  * [stamp](https://github.com/jeremyw/stamp) Date and time formatting for humans
  * [chronic](https://github.com/mojombo/chronic) Natural language date/time parser


## Debugging Tools

*Libraries for debugging and developing.*

  * [byebug](https://github.com/deivid-rodriguez/byebug) - Debugging in Ruby 2
  * [debugger](https://github.com/cldwalker/debugger) - port of ruby-debug that works on 1.9.2 and 1.9.3
  * [puts_debuggerer](https://github.com/AndyObtiva/puts_debuggerer) - Debugger-less debugging FTW

## DevOps Tools

*Software and libraries for DevOps.*

  * [Puppet](https://github.com/puppetlabs/puppet) - Server automation framework and application
  * [Chef](https://github.com/chef/chef) - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
  * [Vagrant](https://www.vagrantup.com/) - Vagrant is a tool for building and distributing development environments.
  * [Capistrano](http://capistranorb.com/) - Remote multi-server automation tool
  * [Mina](https://github.com/mina-deploy/mina) Really fast deployer and server automation tool
  * [Nanobox](https://github.com/nanobox-io/nanobox) - A micro-PaaS (μPaaS) for creating consistent, isolated, Ruby environments deployable anywhere https://nanobox.io.

## Distribution

*Libraries to create packaged executables for release distribution.*

  * [fpm](https://github.com/jordansissel/fpm)  Building packages for multiple platforms (deb, rpm, etc) with great ease and sanity.

## Documentation

*Libraries for generating project documentation.*

  * [Dictum](https://github.com/Wolox/dictum) - A tool that let's you create automatic documentation of your Rails API endpoints through your tests.
  * [rdoc](https://github.com/rdoc/rdoc) HTML and online documentation for Ruby projects
  * [yard](https://github.com/lsegal/yard) A Ruby Documentation tool

## Downloader

*Libraries for downloading.*

  * [GitHub Starred Repos Downloader](https://github.com/LeonardoCardoso/gsrd) -  gsrd downloads your public starred repos. Just in case you want to keep a backup of them from time to time.

## E-Commerce & Online Paying

  * [Active Merchant](https://github.com/activemerchant/active_merchant) - A simple payment abstraction library extracted from Shopify.
  * [Spree](https://github.com/spree/spree) - A complete open source e-commerce solution for Ruby on Rails.
  * [Square SDK](https://github.com/square/square-ruby-sdk) - Use this gem to integrate Square payments into your app and grow your business with Square APIs including Catalog, Customers, Employees, Inventory, Labor, Locations, and Orders.
  * [PayPal Merchant SDK](https://github.com/paypal/merchant-sdk-ruby) - Provides Ruby APIs for processing payments, recurring payments, subscriptions and transactions using PayPal's Merchant APIs.

## E-Mail

*Libraries for sending and parsing email.*

  * [mail](https://github.com/mikel/mail) A Really Ruby Mail Library
  * [mailman](https://github.com/mailman/mailman) An incoming mail processing microframework in Ruby

## Environment Management

*Libraries for Ruby version and environment management.*

  * [chruby](https://github.com/postmodern/chruby) - Changes the current Ruby
  * [chgems](https://github.com/postmodern/chgems) - Chroot for RubyGems
  * [rvm](https://rvm.io/) - Ruby Version Manager
  * [rbenv](http://rbenv.org/) - Groom your app’s Ruby environment
  * [ruby-install](https://github.com/postmodern/ruby-install) - Installs Ruby, JRuby, Rubinius, MagLev or MRuby
  * [ruby-build](https://github.com/sstephenson/ruby-build) - Compile and install Ruby
  * [Nanobox](https://github.com/nanobox-io/nanobox) - A tool for creating isolated Ruby environments for consistency across teams and application stages (dev, staging, production, etc.) https://nanobox.io.

## Error Handling

*Libraries for exception and error handling.*

  * [Exception Notification](https://github.com/smartinez87/exception_notification) - A set of notifiers for sending notifications when errors occur in a Rack/Rails application
  * [Errbit](http://errbit.github.io/errbit) - The open source, self-hosted error catcher
  * [Airbrake](https://github.com/airbrake/airbrake) - The official Airbrake library for Ruby on Rails (and other Rack based frameworks)
  * [Better Errors](https://github.com/charliesome/better_errors) - Better error page for Rack apps

## File Uploading

*Libraries for handling file uploads.*

  * [paperclip](https://github.com/thoughtbot/paperclip) Easy file attachment management for ActiveRecord
  * [dragonfly](https://github.com/markevans/dragonfly) On-the-fly processing - suitable for image uploading in Rails, Sinatra and much more
  * [carrierwave](https://github.com/carrierwaveuploader/carrierwave) Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks
  * [attache](https://github.com/choonkeat/attache) - Yet another approach to file upload https://attache-demo.herokuapp.com

## Feature flipping

*Libraries for flipping features*

  * [abstract_feature_branch](https://github.com/AndyObtiva/abstract_feature_branch) a gem that enables developers to easily branch by abstraction
  * [helioth](https://github.com/gmontard/helioth) Manage feature flipping and rollout
  * [flipper](https://github.com/jnunemaker/flipper) feature flipping for ANYTHING
  * [flip](https://github.com/pda/flip) Flip lets you declare and manage feature flags, backed by cookies (private testing) and database (site-wide)
  * [rollout](https://github.com/FetLife/rollout) Feature flippers.

## Foreign Function Interface

*Libraries for providing foreign function interface.*

## Forms

*Libraries for working with forms.*

  * [simple_form](https://github.com/plataformatec/simple_form) Forms made easy for Rails
  * [formtastic](https://github.com/justinfrench/formtastic) A Rails form builder plugin with semantically rich and accessible markup
  * [bootstrap_form](https://github.com/bootstrap-ruby/bootstrap_form) A Rails form builder that makes it super easy to integrate Bootstrap v4-style forms into your Rails application

## Game Development

*Awesome game development libraries.*

  * [Gosu](https://www.libgosu.org/) - A 2D game development library for the Ruby and C++ programming languages


## Geolocation

*Libraries for geocoding addresses and working with latitudes and longitudes.*

  * [geocoder](https://github.com/alexreisner/geocoder) Complete Ruby geocoding solution
  * [Geokit](https://github.com/geokit/geokit) - Geokit gem provides geocoding and distance/heading calculations.

## Git Tools

*Libraries for working with Git VCS*

  * [katip](https://github.com/lab2023/katip) - Change logger for Git initialized projects

## GUI

*Libraries for working with graphical user interface applications.*

  * [glimmer](https://github.com/AndyObtiva/glimmer) Ruby Desktop Development GUI Library
  * [shoes](https://github.com/shoes/shoes) A tiny graphical app kit for ruby
  * [shoes4](https://github.com/shoes/shoes4) the next version of Shoes

## High Performance

*Libraries for making Ruby faster.*

  * [EventMachine](https://github.com/eventmachine/eventmachine) - EventMachine: fast, simple event-processing library for Ruby programs
  * [Celluloid](https://celluloid.io/) - Actor-based concurrent object framework for Ruby. It has its own [awesomeness](https://github.com/sashaegorov/awesome-celluloid).

## HTML/XML/CSS Manipulation

*Libraries for working with HTML, XML & CSS.*

  * [Nokogiri](http://www.nokogiri.org/)
  * [loofah](https://github.com/flavorjones/loofah) A general library for manipulating and transforming HTML/XML documents and fragments

## HTTP

*Libraries for working with HTTP.*

  * [httparty](https://github.com/jnunemaker/httparty) Makes http fun again!
  * [faraday](https://github.com/lostisland/faraday) Simple, but flexible HTTP client library, with support for multiple backends.
  * [http](https://github.com/httprb/http) A simple Ruby DSL for making HTTP requests
  * [excon](https://github.com/excon/excon) Usable, fast, simple HTTP(S) 1.1 for Ruby
  * [nestful](https://github.com/maccman/nestful) Simple Ruby HTTP/REST client with a sane API
  * [response_code](https://github.com/torokmark/response_code) Response Code in readable way

## Imagery

*Libraries for manipulating images.*

  * [rmagick](https://github.com/rmagick/rmagick) An interface to the ImageMagick and GraphicsMagick image processing libraries
    *  [minimagick](https://github.com/minimagick/minimagick) Minified version of rmagick
  * [chunky_png](https://github.com/wvanbergen/chunky_png) Read/write access to PNG images in pure Ruby
  * [image_optim](https://github.com/toy/image_optim) Optimize images using multiple utilities
  * [magickly](https://github.com/afeld/magickly) image manipulation as a (plugin-able) service

## Internationalization

*Libraries for woking with i18n.*

  * [i18n](https://github.com/svenfuchs/i18n) - Basic internationalization(i18n) library for Ruby
  * [globalize](https://github.com/globalize/globalize) Rails I18n de-facto standard library for ActiveRecord model/data translation
  * [i18n-tasks](https://github.com/glebm/i18n-tasks) Manage translations in ruby applications with the awesome power of static analysis

## Logging

*Libraries for generating and working with log files.*

  * [Logstash](https://github.com/elastic/logstash) Logstash is a tool for managing events and logs.

## Machine Learning

*Libraries for Machine Learning.*

  * [PredictionIO Ruby SDK](https://github.com/PredictionIO/PredictionIO-Ruby-SDK) - The PredictionIO Ruby SDK provides a convenient API to quickly record your users' behavior and retrieve personalized predictions for them
  * [m2cgen](https://github.com/BayesWitnesses/m2cgen) - A CLI tool to transpile trained classic ML models into a native Ruby code with zero dependencies.

## MapReduce

*Frameworks and libraries for MapReduce.*

## Multi-tenancy

*Libraries for managing multi-tenant apps.*

* [Apartment](https://github.com/influitive/apartment) - Database multi-tenancy for Rack (and Rails) applications

## Natural Language Processing

*Libraries for working with human languages.*

* [Treat](https://github.com/louismullie/treat) - Treat is a toolkit for natural language processing and computational linguistics in Ruby

## Networking

*Libraries for network programming.*

## ORM

*Libraries that implement Object-Relational Mapping or data mapping techniques.*

* Relational Databases

  * [ActiveRecord](https://www.ruby-toolbox.com/projects/activerecord) - Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes
  * [DataMapper](http://datamapper.org/) - 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](http://sequel.jeremyevans.net/) - The Database Toolkit for Ruby

* NoSQL Databases

  * [Mongoid](http://mongoid.org) - Mongoid (pronounced mann-goyd) is an Object-Document-Mapper (ODM) for MongoDB written in Ruby.
  * [Ohm](https://github.com/soveran/ohm) - Object-Hash Mapping for Redis


## Package Management

*Libraries for package and dependency management.*

  * [RubyGems](https://rubygems.org/) - RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries
  * [Bundler](http://bundler.io) - Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed
  * [Homebrew](http://brew.sh) - Homebrew installs the stuff you need that Apple didn’t
  * [Homebrew Cask](http://caskroom.io/) - Cask provides a friendly homebrew-style CLI workflow for the administration of Mac applications distributed as binaries

## Pagination

  * [kaminari](https://github.com/amatsuda/kaminari) A Scope & Engine based, clean, powerful, customizable and sophisticated paginator
  * [will_paginate](https://github.com/mislav/will_paginate) Pagination library for Rails 3, Sinatra, Merb, DataMapper, and more
  * [order_query](https://github.com/glebm/order_query) Keyset pagination to find the next or previous record(s) relative to the current one efficiently, e.g. for infinite scroll.

## PDF Processing

  * [DocRaptor](https://github.com/DocRaptor/docraptor-ruby) Wrapper library for [DocRaptor's](https://docraptor.com) Ruby-based HTML-to-PDF API
  * [wicked_pdf](https://github.com/mileszs/wicked_pdf) PDF generator (from HTML) plugin for Ruby on Rails
  * [pdfkit](https://github.com/pdfkit/pdfkit) HTML+CSS to PDF using wkhtmltopdf
  * [prawn](https://github.com/prawnpdf/prawn) Fast, Nimble PDF Writer for Ruby
  * [InvoicePrinter](https://github.com/strzibny/invoice_printer) - Super simple PDF invoicing in Ruby (built on top of Prawn).

## Presentation Tools

  * [rabbit](https://github.com/rabbit-shocker/rabbit) A programable presentaton tool by Ruby
  * [reveal-ck](https://github.com/jedcn/reveal-ck) Reveal.js presentations with a Ruby toolset

## Processes and Threads

*Libraries for woking with processes or threads*

  * [Parallel](https://github.com/grosser/parallel) - Ruby parallel processing made simple and fast

## Profiling

  * [bullet](https://github.com/flyerhzm/bullet) - help to kill N+1 queries and unused eager loading

## Push Notification

  * [Rpush](https://github.com/rpush/rpush) - The push notification service for Ruby.
  * [apn_sender](https://github.com/arthurnn/apn_sender) - Background worker to send Apple Push Notifications over a persistent TCP socket.
  * [Houston](https://github.com/nomad/houston) - A simple gem for sending Apple Push Notifications.
  * [webpush](https://github.com/zaru/webpush) - Encryption Utilities for Web Push protocol

## Queue

*Libraries for working with event and task queues.*

  * [Resque](https://github.com/resque/resque) A Redis-backed Ruby library for creating background jobs, placing them on multiple queues.
  * [Delayed::Job](https://github.com/tobi/delayed_job) — Database backed asynchronous priority queue.
  * [Qu](https://github.com/bkeepers/qu) A Ruby library for queuing and processing background jobs.
  * [Sidekiq](https://github.com/mperham/sidekiq) Simple, efficient background processing for Ruby

## RESTful API

*Libraries for developing RESTful APIs.*

  * [Grape](http://intridea.github.io/grape/) - An opinionated micro-framework for creating REST-like APIs in Ruby.
  * [Rails::API](https://github.com/rails-api/rails-api) - Rails for API only applications
  * [jbuilder](https://github.com/rails/jbuilder) - Create JSON structures via a Builder-style DSL
  * [rabl](https://github.com/nesquena/rabl) - General Ruby templating with json, bson, xml, plist and msgpack support
  * [active_model_serializers](https://github.com/rails-api/active_model_serializers) - ActiveModel::Serializer implementation and Rails hooks
  * [oat](https://github.com/ismasan/oat) - Adapters-based API serializers with Hypermedia support for Ruby apps (HAL, Siren, JSONAPI).
  * [APIcasso](https://github.com/ErvalhouS/APIcasso) - An abstract API design as a Rails-based mountable engine. RESTfullize your legacy code.

## Serverless
* [FaaStRuby](https://faastruby.io) - Serverless Software Development Platform for Ruby and Crystal developers.

## Spreadsheets

*Libraries for manipulating Excel, Google Spreadsheets, Numbers, OpenOffice and LibreOffice files*

  * [spreadsheet](https://github.com/zdavatz/spreadsheet) - The Spreadsheet Library is designed to read and write Spreadsheet Documents.
  * [caxlsx](https://github.com/caxlsx/caxlsx) - Caxlsx excels at helping you generate beautiful Office Open XML Spreadsheet documents.
  * [caxlsx_rails](https://github.com/caxlsx/caxlsx_rails) - Axlsx-Rails provides an Axlsx renderer so you can move all your spreadsheet code from your controller into view files.
  * [roo](https://github.com/roo-rb/roo) - Roo implements read access for all spreadsheet types and read/write access for Google spreadsheets.
  * [google-spreadsheet-ruby](https://github.com/gimite/google-spreadsheet-ruby) - This is a library to read/write Google Spreadsheet.
  * [rubyXL](https://github.com/weshatheleopard/rubyXL) - rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents
  * [Odf-report](https://github.com/sandrods/odf-report) - Generates ODF files, given a template (.odt) and data, replacing tags
  * [simple_xlsx_writer](https://github.com/harvesthq/simple_xlsx_writer) - Just as the name says, simple writter for Office 2007+ Excel files
  * [remote_table](https://github.com/seamusabshere/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_caxlsx](https://github.com/caxlsx/acts_as_caxlsx) - acts_as_caxlsx lets you turn any ActiveRecord::Base inheriting class into an excel spreadsheet.
  * [activeadmin-caxlsx](https://github.com/caxlsx/activeadmin-caxlsx) - This gem uses caxlsx to provide excel/xlsx downloads for resources in Active Admin.
  * [to_spreadsheet](https://github.com/glebm/to_spreadsheet) - Render XLSX from Rails using existing views
  * [write_xlsx](https://github.com/cxn03651/write_xlsx) - write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format.
  * [excel_rails](https://github.com/asanghi/excel_rails) - Allows you to program spreadsheets using .rxls views
  * [sheets](https://github.com/bspaulding/Sheets) - Work with spreadsheets easily in a native ruby format.
  * [workbook](https://github.com/murb/workbook) - Workbook contains workbooks, as in a table, contains rows, contains cells, reads/writes excel, ods and csv and tab separated files...
  * [Spreadsheet report](https://github.com/gnoso/spreadsheet_report) - Simple tool for running queries against ActiveRecord and putting them into a Google Spreadsheet.
  * [oxcelix](https://github.com/gbiczo/oxcelix) - A fast Excel 2007/2010 (.xlsx) file parser that returns a collection of Matrix objects
  * [wrap_excel](https://github.com/tomiacannondale/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](https://github.com/maxd/write_xlsx_rails) - xlsx renderer for Rails base on write_xlsx gem
  * [Fastsheet](https://github.com/dkkoval/fastsheet) - Fast spreadsheet reader using Rust native extensions.

## Scheduling

  * [whenever](https://github.com/javan/whenever) Cron jobs in Ruby
  * [resque-scheduler](https://github.com/resque/resque-scheduler) A light-weight job scheduling system built on top of resque
  * [rufus-scheduler](https://github.com/jmettraux/rufus-scheduler) Scheduler for Ruby
  * [Clockwork](https://github.com/tomykaira/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.

## Science and Data Analysis

*Libraries for scientific computing and data analyzing.*

## Search

*Libraries and software for indexing and performing search queries on data.*

  * [Thinking Sphinx](https://github.com/pat/thinking-sphinx) - Sphinx plugin for ActiveRecord/Rails
  * [elasticsearch-ruby](https://github.com/elastic/elasticsearch-ruby) - Ruby integrations for Elasticsearch
  * [Searchkick](https://github.com/ankane/searchkick) - Intelligent search made easy
  * [Algoliasearch Rails](https://github.com/algolia/algoliasearch-rails/) - AlgoliaSearch integration to your favorite ORM
  * [PgSearch](https://github.com/Casecommons/pg_search) - PostgreSQL's full text search
  * [Rroonga](https://github.com/ranguba/rroonga) - The Ruby bindings of Groonga
  * [Sunspot](https://github.com/sunspot/sunspot) - Solr-powered search for Ruby objects

## Site Monitoring

*Libs for analytics, monitoring*

  * [rack-google-analytics](https://github.com/kangguru/rack-google-analytics) Simple Rack middleware for implementing google analytics tracking
  * [DataDog](https://github.com/DataDog/dogapi-rb) A monitoring service for IT, operations and development teams
  * [Instrumental](https://github.com/Instrumental/instrumental_agent-ruby) High-scale, non-blocking agent for [Instrumental](https://instrumentalapp.com) application monitoring
  * [Keen IO](https://github.com/keenlabs/keen-gem) Build analytics features directly into your Ruby apps

## Static Page Generation

  * [jekyll](https://github.com/jekyll/jekyll) A blog-aware, static site generator in Ruby
  * [middleman](https://github.com/middleman/middleman)

## Starter Apps

*App templates for creating apps quickly*

  * [suspenders](https://github.com/thoughtbot/suspenders) A Rails template with our standard defaults, ready to deploy to Heroku
  * [ruby2-rails4-bootstrap-heroku](https://github.com/diowa/ruby2-rails4-bootstrap-heroku) A starter application based on Ruby 2, Rails 4 and Bootstrap for Sass, deployable on Heroku
  * [rails-bootstrap](https://github.com/RailsApps/rails-bootstrap) Rails 4.1 starter app with the Bootstrap front-end framework
  * [rails4-starterkit](https://github.com/starterkits/rails4-starterkit) Rails 4.1 starter app with production ready performance, security, and authentication
  * [cybele](https://github.com/lab2023/cybele) - Rails 4.x template with responder, simple form, haml, exception notification, etc ...

## Text Processing

*Libraries for parsing and manipulating texts.*

  * General

  * Specific Formats

  * Parser

    * [Yomu](https://github.com/Erol) - Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf)

## Tagging

*Libraries for tagging items.*

  * [acts-as-taggable-on](https://github.com/mbleigh/acts-as-taggable-on) - A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts.

## Template Engine

*Libraries and tools for templating and lexing.*

  * [Slim](https://github.com/slim-template/slim) A templating lang that reduce the syntax to the essential parts without becoming cryptic.
    * [slim-rails](https://github.com/slim-template/slim-rails) Rails port of Slim lang
  * [Haml](https://github.com/haml/haml) HTML Abstraction Markup Language - A Markup Haiku
    * [haml-rails](https://github.com/indirect/haml-rails) Rails port of Haml lang
  * [Tilt](https://github.com/rtomayko/tilt)
  * [Liquid](https://github.com/Shopify/liquid)

## Testing

*Libraries for testing codebases and generating test data.*

  * Testing Frameworks
    * [RSpec](http://rspec.info/) - BDD for Ruby
    * [MiniTest](https://github.com/seattlerb/minitest) - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking
    * [Cucumber]
       * [Cucumber Github](https://github.com/cucumber/cucumber/wiki) - Cucumber is a tool that executes plain-text functional descriptions as automated tests
       * [Cucumber Site](https://cucumber.io/) - Behaviour Driven Development with elegacy and joy
    * [Spinach](https://github.com/codegram/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](http://rubyworks.github.io/rubytest) - Rubytest is a testing meta-framework useful for creating highly customize test suites or building whole new test frameworks.
       * [BRASS](http://rubyworks.github.io/brass) - Bare-metal Ruby assertion system standard used by Rubytest.
       * [Lemon](http://rubyworks.github.io/lemon) - Strict unit test system built on top of Rubytest.
    * [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) - Collection of testing matchers extracted from Shoulda
    * [capybara](https://github.com/jnicklas/capybara) - Acceptance test framework for web applications
  * Mock
    * [RSpec-mocks](https://github.com/rspec/rspec-mocks) - RSpec's 'test double' framework, with support for stubbing and mocking
    * [Mocha](http://gofreerange.com/mocha/docs/) - Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.
    * [FlexMock](https://github.com/jimweirich/flexmock) - Flexible mocking for Ruby testing
  * Fake Data
    * [Faker](https://github.com/stympy/faker) - A library for generating fake data such as names, addresses, and phone numbers
    * [ffaker](https://github.com/ffaker/ffaker) - Faker Refactored.
    * [Forgery](https://github.com/sevenwire/forgery) - Easy and customizable generation of forged data.
  * Code Coverage
    * [simplecov](https://github.com/colszowka/simplecov) Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage
  * Load Testing

  * Error Handler

## Third-party APIs

*Libraries for accessing third party APIs.*

  * [koala](https://github.com/arsduo/koala) A lightweight, flexible library for Facebook
  * [fb_graph](https://github.com/nov/fb_graph) A full-stack Facebook Graph API wrapper
  * [twitter](https://github.com/sferik/twitter) A Ruby interface to the Twitter API
  * [tweetstream](https://github.com/tweetstream/tweetstream) A simple library for consuming Twitter's Streaming API
  * [gitlab](https://github.com/NARKOZ/gitlab) Ruby wrapper and CLI for the GitLab API
  * [octokit.rb](https://github.com/octokit/octokit.rb) Ruby toolkit for the GitHub API
  * [instagram](https://github.com/Instagram/instagram-ruby-gem) The official gem for the Instagram API
  * [linkedin](https://github.com/hexgnu/linkedin) Ruby wrapper for the LinkedIn API
  * [twilio-ruby](https://github.com/twilio/twilio-ruby) A Ruby gem for communicating with the Twilio API and generating TwiML
  * [viewpoint-spws](https://github.com/zenchild/viewpoint-spws) A Microsoft Sharepoint Web Services library for Ruby.
  * [youtube_it](https://github.com/kylejginavan/youtube_it) An object-oriented Ruby wrapper for the YouTube GData API
  * [flickraw](https://github.com/hanklords/flickraw) Flickraw is a library to access flickr api
  * [f00px](https://github.com/500px/f00px) Official 500px api ruby gem
  * [rspotify](https://github.com/guilhermesad/rspotify) Ruby wrapper for the Spotify Web API

## URL Manipulation

*Libraries for parsing URLs.*

## Video

*Libraries for manipulating video and GIFs.*

  * [streamio-ffmpeg](https://github.com/streamio/streamio-ffmpeg) Simple yet powerful ruby FFmpeg wrapper for reading metadata and transcoding movies

## Web Content Extracting

*Libraries for extracting web contents.*

## Web Crawling

*Libraries for scraping websites.*

  * [upton](https://github.com/propublica/upton) A batteries-included framework for easy web-scraping
  * [metainspector](https://github.com/jaimeiniesta/metainspector)

## Web Frameworks

*Web development frameworks.*

  * [Ruby On Rails](http://rubyonrails.org/) - Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity
  * [Roda](https://roda.jeremyevans.net/) - Modular, scalable Ruby framework. Extremely fast, extremely efficient.
  * [Hanami](http://hanamirb.org/) - (formerly Lotus) A complete full-stack application framework that is simple, fast and lightweight. Designed for scale.
  * [Sinatra](http://www.sinatrarb.com/) - Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.
  * [Padrino](http://www.padrinorb.com/) - The Godfather of Sinatra provides a full-stack agnostic framework on top of Sinatra
  * [Cramp](http://cramp.in/) - Cramp is a fully asynchronous real-time web application framework in Ruby
  * [Cuba](http://cuba.is/) - Cuba is a microframework for web development originally inspired by Rum, a tiny but powerful mapper for Rack applications.
  * [Pakyow](https://pakyow.com/) - 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.
  * [Hyperstack](https://hyperstack.org/) - A complete Isomorphic Ruby Framework using React, Opal and Rails

## Web Servers

*App server interface*

  * [puma](https://github.com/puma/puma) A simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications.
  * [thin](https://github.com/macournoyer/thin) A thin and fast web server
  * [trinidad](https://github.com/trinidad/trinidad) Run Rails or Rack applications within an embedded Apache Tomcat container.
  * [unicorn](https://github.com/defunkt/unicorn) An HTTP server for Rack applications designed to only serve fast clients.
  * [passenger](https://github.com/phusion/passenger) A modern web server and application server for Ruby, Python, and Node.js.
  * [pow](https://github.com/basecamp/pow) Pow treats files and directories as ruby objects giving you more power and flexibility.
  * [goliath](https://github.com/postrank-labs/goliath) is a non-blocking Ruby web server framework.

## WebSocket

*Libraries for woking with WebSocket.*

  * [Faye](http://faye.jcoglan.com/ruby.html) - Simple pub/sub messaging for the web
  * [websocket-rails](https://github.com/websocket-rails/websocket-rails) - Plug and play websocket support for ruby on rails.

# Miscellaneous

*Useful libraries or tools that don't fit in the categories above.*

  * [packetfu](https://github.com/packetfu/packetfu) A mid-level packet manipulation library for Ruby.
  * [chatterbot](https://github.com/muffinista/chatterbot) A straightforward ruby-based Twitter Bot Framework, using OAuth to authenticate
  * [sneakers](https://github.com/jondot/sneakers) A fast background processing framework for Ruby and RabbitMQ
  * [ransack](https://github.com/activerecord-hackery/ransack) Object-based searching.
  * [cinch](https://github.com/cinchrb/cinch) The IRC Bot Building Framework
  * [pry](https://github.com/pry/pry) An IRB alternative and runtime developer console
  * [rib](http://rib.godfat.org/) A lightweight and extensible IRB replacement
  * [jazz_hands](https://github.com/nixme/jazz_hands/) Pry-based enhancements for the default Rails 3 and 4 consoles
  * [awesome_print](https://github.com/awesome-print/awesome_print) A Ruby library that pretty prints Ruby objects in full color exposing their internal structure with proper indentation.
  * [friendly_id](https://github.com/norman/friendly_id) Slugging and permalink plugins for ActiveRecord
  * [backup](https://github.com/backup/backup) An elegant DSL in Ruby for performing backups on UNIX-like systems
  * [kss](https://github.com/kneath/kss) Documenting CSS and generating styleguides
  * [AASM](https://github.com/aasm/aasm) - A library for adding finite state machines to Ruby classes
  * [JsonCompare](https://github.com/a2design-inc/json-compare) - Returns the difference between two JSON files
  * [blankable](https://github.com/lab2023/blankable) - Adds blank slates to index view in Rails
  * [tcmb_currency](https://github.com/lab2023/tcmb_currency) - T.C.M.B. currencies for Money Gem
  * [enumerize](https://github.com/brainspec/enumerize) - Enumerated attributes with I18n and ActiveRecord/Mongoid support
  * [lol_dba](https://github.com/plentz/lol_dba) - lol_dba is a small package of rake tasks that scan your application models and displays a list of columns that probably should be indexed.
  * [annotate-models](https://github.com/ctran/annotate_models) - Annotate ActiveRecord models
  * [fast_attributes](https://github.com/applift/fast_attributes) - FastAttributes adds attributes with their types to the class
  * [Github Changelog Generator](https://github.com/skywinder/Github-Changelog-Generator) — automatically generate change log from your tags, issues, labels and pull requests on GitHub.
  * [Letter Opener](https://github.com/ryanb/letter_opener) — Preview email in the default browser instead of sending it.
  * [Auto HTML](https://github.com/dejan/auto_html) — Transforming URLs to appropriate resource (image, link, YouTube, Vimeo video,...).
  * [OctoLinker](https://github.com/OctoLinker/browser-extension) - Navigate through projects on GitHub.com efficiently with the OctoLinker browser extension.
  * [BetterDocs](https://github/khusnetdinov/betterdocs) - Documentation with collection practices in ruby. Good for new ruby developers and beginners.


## Editor Plugins

*Plugins for various editors.*

  * [vim-ruby](https://github.com/vim-ruby/vim-ruby) Vim/Ruby Configuration Files
  * [vim-rails](https://github.com/tpope/vim-rails) rails.vim: Ruby on Rails power tools

# Resources

*Where to discover things (libraries, news e.g) about Ruby.*

  * [The Ruby Toolbox](https://www.ruby-toolbox.com/)
  * [RubyGems](https://rubygems.org/)
  * [RubyDaily](http://rubydaily.org) - Community driven news
  * [Ruby Weekly](http://rubyweekly.com/) - A free, once–weekly e-mail round-up of Ruby news and articles.
  * [Ruby5](https://ruby5.codeschool.com/) - The latest news in the Ruby and Rails community
  * [RubyFlow](http://www.rubyflow.com) - Ruby Programming Community Link Blog
  * [Ruby Curated Resources](https://hackr.io/tutorials/learn-ruby)

## People to Follow

*People in Ruby World*

  * [Yukihiro "Matz" Matsumoto](https://twitter.com/yukihiro_matz) - Creator of Ruby lang
  * [David Heinemeier Hansson](https://twitter.com/dhh) - Creator of Rails framework
  * [Koichi Sasada](https://github.com/ko1) - Ruby core committer and the developer of YARV
  * [Aaron Patterson](http://tenderlovemaking.com/) - Committer to Nokogiri, Ruby, and Ruby on Rails
  * [Avdi Grimm](http://devblog.avdi.org/) - Host of Ruby Tapas webcasts
  * [Aman Gupta](http://tmm1.net/)- Ruby core committer


# Other Awesome Lists

Other amazingly awesome lists can be found in the [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) list.
