├── CONTRIBUTING.md └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | * Use the following format: `[LIBRARY](LINK) - DESCRIPTION.` 4 | * The link should be the name of the package or project. 5 | * Links and categories should be sorted alphabetically. 6 | * Add one link per Pull-Request. 7 | * Keep descriptions concise, clear and simple, and end them with a period / stop. 8 | * New categories, or improvements to the existing ones are also welcome. 9 | * Make sure your text editor is set to remove trailing whitespace. 10 | 11 | ## Quality standard 12 | 13 | To stay on the list, projects should follow these quality standards: 14 | 15 | * Generally useful to the community. 16 | * Actively maintained (even if that just means take care of open issues). 17 | * Stable. 18 | * Documented. 19 | * Tests. 20 | 21 | Thanks to all [contributors](https://github.com/markets/awesome-ruby/graphs/contributors), you're awesome and wouldn't be possible without you! 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Ruby 2 | 3 | A collection of awesome Ruby libraries, tools, frameworks and software. The essential Ruby to build modern Apps and Web Apps. 4 | 5 | Inspired by the `awesome-*` trend on GitHub. 6 | 7 | The goal is to build a categorized community-driven collection of very well-known resources. 8 | 9 | Sharing, suggestions and contributions are always welcome! Please take a look at the [contribution guidelines and quality standard](https://github.com/markets/awesome-ruby/blob/master/CONTRIBUTING.md) first. 10 | 11 | Thanks to all [contributors](https://github.com/markets/awesome-ruby/graphs/contributors), you're awesome and wouldn't be possible without you! 12 | 13 | * [Awesome Ruby](#awesome-ruby) 14 | * [Abstraction](#abstraction) 15 | * [A/B Testing](#ab-testing) 16 | * [Admin Interface](#admin-interface) 17 | * [Analytics](#analytics) 18 | * [API Builder](#api-builder) 19 | * [Assets](#assets) 20 | * [Authentication and OAuth](#authentication-and-oauth) 21 | * [Authorization](#authorization) 22 | * [Automation](#automation) 23 | * [Caching](#caching) 24 | * [CLI Builder](#cli-builder) 25 | * [CMS](#cms) 26 | * [Code Analysis and Metrics](#code-analysis-and-metrics) 27 | * [Coding Style Guides](#coding-style-guides) 28 | * [Concurrency](#concurrency) 29 | * [Configuration](#configuration) 30 | * [Core Extensions](#core-extensions) 31 | * [Country Data](#country-data) 32 | * [CRM](#crm) 33 | * [Dashboards](#dashboards) 34 | * [Data Visualization](#data-visualization) 35 | * [Database Drivers](#database-drivers) 36 | * [Database Tools](#database-tools) 37 | * [Date and Time Processing](#date-and-time-processing) 38 | * [Debugging Tools](#debugging-tools) 39 | * [Decorators](#decorators) 40 | * [DevOps Tools](#devops-tools) 41 | * [Documentation](#documentation) 42 | * [E-Commerce and Payments](#e-commerce-and-payments) 43 | * [Ebook](#ebook) 44 | * [Email](#email) 45 | * [Environment Management](#environment-management) 46 | * [Error Handling](#error-handling) 47 | * [File Upload](#file-upload) 48 | * [Form Builder](#form-builder) 49 | * [Game Development](#game-development) 50 | * [Geolocation](#geolocation) 51 | * [Git Tools](#git-tools) 52 | * [GUI](#gui) 53 | * [HTML/XML Parsing](#htmlxml-parsing) 54 | * [HTTP](#http) 55 | * [Image Processing](#image-processing) 56 | * [Internationalization](#internationalization) 57 | * [Logging](#logging) 58 | * [Machine Learning](#machine-learning) 59 | * [Markdown Processors](#markdown-processors) 60 | * [Misc](#misc) 61 | * [Mobile Development](#mobile-development) 62 | * [Money](#money) 63 | * [Natural Language Processing](#natural-language-processing) 64 | * [Navigation](#navigation) 65 | * [ORM/ODM](#ormodm) 66 | * [ORM/ODM Extensions](#ormodm-extensions) 67 | * [Package Management](#package-management) 68 | * [Pagination](#pagination) 69 | * [PDF](#pdf) 70 | * [Performance Monitoring](#performance-monitoring) 71 | * [Process Monitoring](#process-monitoring) 72 | * [Processes and Threads](#processes-and-threads) 73 | * [Profiler](#profiler) 74 | * [Queue](#queue) 75 | * [Rails Application Generators](#rails-application-generators) 76 | * [Robotics](#robotics) 77 | * [RSS](#rss) 78 | * [Scheduling](#scheduling) 79 | * [Scientific](#scientific) 80 | * [Search](#search) 81 | * [Security](#security) 82 | * [SEO](#seo) 83 | * [Social Networking](#social-networking) 84 | * [Spreadsheets and Documents](#spreadsheets-and-documents) 85 | * [State Machines](#state-machines) 86 | * [Static Site Generation](#static-site-generation) 87 | * [Template Engine](#template-engine) 88 | * [Testing](#testing) 89 | * [Third-party APIs](#third-party-apis) 90 | * [Video](#video) 91 | * [Web Crawling](#web-crawling) 92 | * [Web Frameworks](#web-frameworks) 93 | * [Web Servers](#web-servers) 94 | * [WebSocket](#websocket) 95 | * [Services and Apps](#services-and-apps) 96 | * [Resources](#resources) 97 | * [Other Awesome Lists](#other-awesome-lists) 98 | 99 | ## Abstraction 100 | 101 | * [ActiveInteraction](https://github.com/orgsync/active_interaction) - Manage application specific business logic. 102 | * [Apotomo](https://github.com/apotonick/apotomo) - Based on Cells, Apotomo gives you widgets and encapsulation, bubbling events, AJAX page updates, rock-solid testing and more. 103 | * [Cells](https://github.com/apotonick/cells) - View Components for Rails. 104 | * [Decent Exposure](https://github.com/hashrocket/decent_exposure) - A helper for creating declarative interfaces in controllers. 105 | * [Interactor](https://github.com/collectiveidea/interactor) - Interactor provides a common interface for performing complex interactions in a single request. 106 | * [Light Service](https://github.com/adomokos/light-service) - Series of Actions with an emphasis on simplicity. 107 | * [Mutations](https://github.com/cypriss/mutations) - Compose your business logic into commands that sanitize and validate input. 108 | * [Responders](https://github.com/plataformatec/responders) - A set of Rails responders to dry up your application. 109 | * [Trailblazer](https://github.com/apotonick/trailblazer) - Trailblazer is a thin layer on top of Rails. It gently enforces encapsulation, an intuitive code structure and gives you an object-oriented architecture. 110 | * [wisper](https://github.com/krisleech/wisper) - A micro library providing Ruby objects with Publish-Subscribe capabilities. 111 | 112 | ##A/B Testing 113 | 114 | * [Split](https://github.com/andrew/split) - Rack Based AB testing framework. 115 | * [Vanity](https://github.com/assaf/vanity) - an A/B testing framework for Rails that is datastore agnostic. 116 | 117 | ## Admin Interface 118 | 119 | * [ActiveAdmin](http://activeadmin.info) - A Ruby on Rails framework for creating elegant backends for website administration. 120 | * [bhf](http://antpaw.github.io/bhf/) - A simple to use Rails-Engine-Gem that offers an admin interface for trusted user. 121 | * [RailsAdmin](https://github.com/sferik/rails_admin) - A Rails engine that provides an easy-to-use interface for managing your data. 122 | * [Typus](https://github.com/typus/typus) - Ruby on Rails control panel to allow trusted users edit structured content. 123 | * [Upmin Admin](https://github.com/upmin/upmin-admin-ruby) - A framework for creating powerful Ruby on Rails admin backends with minimal effort. 124 | 125 | ## Analytics 126 | 127 | * [Ahoy](https://github.com/ankane/ahoy) - A solid foundation to track visits and events in Ruby, JavaScript, and native apps. 128 | * [Analytical](https://github.com/jkrall/analytical) - Gem for managing multiple analytics services in your rails app. 129 | * [FnordMetric](https://github.com/paulasmuth/fnordmetric) - A ruby/redis framework for collecting and visualizing timeseries data. It enables you to build beautiful real-time analytics dashboards within minutes. 130 | * [Gabba](https://github.com/hybridgroup/gabba) - Simple way to send server-side notifications to Google Analytics. 131 | * [Impressionist](https://github.com/charlotte-ruby/impressionist) - Rails Plugin that tracks impressions and page views. 132 | * [Legato](https://github.com/tpitale/legato) - Model analytics reports and queries against the official Google Analytics Reporting API. 133 | * [Rack::Tracker](https://github.com/railslove/rack-tracker) - Rack middleware that can be hooked up to multiple services and exposing them in a unified fashion. 134 | * [Staccato](https://github.com/tpitale/staccato) - Track analytics into the official Google Analytics Collection API. 135 | 136 | ## API Builder 137 | 138 | * [ActiveModel::Serializers](https://github.com/rails-api/active_model_serializers) - JSON serialization of objects. 139 | * [Blanket](https://github.com/inf0rmer/blanket) - A dead simple API wrapper. 140 | * [Crêpe](https://github.com/crepe/crepe) - The thin API stack. 141 | * [Grape](http://intridea.github.io/grape) - An opinionated micro-framework for creating REST-like APIs in Ruby. 142 | * [jbuilder](https://github.com/rails/jbuilder) - Create JSON structures via a Builder-style DSL. 143 | * [JSONAPI::Resources](https://github.com/cerebris/jsonapi-resources) - JSONAPI::Resources, or "JR", provides a framework for developing a server that complies with the JSON API specification. 144 | * [Jsonite](https://github.com/barrelage/jsonite) - A tiny, HAL-compliant JSON presenter for your APIs. 145 | * [Pliny](https://github.com/interagent/pliny) - Opinionated template Sinatra app for writing excellent APIs in Ruby. 146 | * [rabl](https://github.com/nesquena/rabl) - General ruby templating with json, bson, xml, plist and msgpack support. 147 | * [Rails::API](https://github.com/rails-api/rails-api) - Rails for API only applications. 148 | * [Roar](https://github.com/apotonick/roar) - Resource-Oriented Architectures in Ruby. 149 | * [Version Cake](https://github.com/bwillis/versioncake) - An unobtrusive way to version APIs in your Rails app. 150 | * [versionist](https://github.com/bploetz/versionist) - A plugin for versioning Rails based RESTful APIs. 151 | 152 | ## Assets 153 | 154 | * [Emoji](https://github.com/steveklabnik/emoji) - Exposes the Phantom Open Emoji library unicode/image assets and APIs for working with them. 155 | * [Less Rails](https://github.com/metaskills/less-rails) - The dynamic stylesheet language for the Rails asset pipeline. 156 | * [Less](https://github.com/cowboyd/less.rb) - Leaner CSS, in your browser or Ruby. 157 | * [Sass](http://sass-lang.com) - Sass makes CSS fun again. 158 | * Management: 159 | * [Asset Sync](https://github.com/rumblelabs/asset_sync) - Synchronises Assets between Rails and S3. 160 | * [Autoprefixer](https://github.com/ai/autoprefixer-rails) - Parse CSS and add vendor prefixes to rules by Can I Use. 161 | * [bower-rails](https://github.com/42dev/bower-rails) - Bower support for Rails projects. 162 | * [Rails Assets](https://rails-assets.org) - Bundler to Bower proxy. 163 | * [Sprockets](https://github.com/sstephenson/sprockets) - Rack-based asset packaging system. 164 | * Development: 165 | * [Quiet Assets](https://github.com/evrone/quiet_assets) - Mute assets pipeline log messages. 166 | 167 | ## Authentication and OAuth 168 | 169 | * [Authlogic](https://github.com/binarylogic/authlogic) - Authlogic is a clean, simple, and unobtrusive ruby authentication solution. 170 | * [Clearance](https://github.com/thoughtbot/clearance) - Small and simple email & password based authenticaton for Rails. 171 | * [Devise](https://github.com/plataformatec/devise) - A flexible authentication solution for Rails based on Warden. 172 | * [OmniAuth](https://github.com/intridea/omniauth) - A library that standardizes multi-provider authentication utilizing Rack middleware. 173 | * [Shield](https://github.com/cyx/shield) - Authentication protocol for use in your routing and model context. 174 | * [Sorcery](https://github.com/NoamB/sorcery) - Magical Authentication for Rails 3 and 4. 175 | * [warden](https://github.com/hassox/warden) - General Rack Authentication Framework. 176 | * OAuth: 177 | * [Doorkeeper](https://github.com/doorkeeper-gem/doorkeeper) - An OAuth2 provider for Rails. 178 | * [OAuth2](https://github.com/intridea/oauth2) - A Ruby wrapper for the OAuth 2.0 protocol. 179 | 180 | ## Authorization 181 | 182 | * [acl9](https://github.com/be9/acl9) - Acl9 is a role-based authorization system that provides a concise DSL for securing your Rails application. 183 | * [Authority](https://github.com/nathanl/authority) - ORM-neutral way to authorize actions in your Rails app. 184 | * [CanCanCan](https://github.com/CanCanCommunity/cancancan) - Continuation of CanCan, an authorization Gem for Ruby on Rails. 185 | * [Declarative Authorization](https://github.com/stffn/declarative_authorization) - An authorization Rails plugin using a declarative DSL for specifying authorization rules in one place. 186 | * [Pundit](https://github.com/elabs/pundit) - Minimal authorization through OO design and pure Ruby classes. 187 | 188 | ## Automation 189 | 190 | * [Huginn](https://github.com/cantino/huginn) - Huginn is a system for building agents that perform automated tasks for you online. 191 | 192 | ## Caching 193 | 194 | * [Action caching for Action Pack](https://github.com/rails/actionpack-action_caching) - Action caching for Action Pack. 195 | * [Dalli](https://github.com/mperham/dalli) - A high performance pure Ruby client for accessing memcached servers. 196 | * [Record Cache](https://github.com/orslumen/record-cache) - Cache Active Model Records in Rails 3. 197 | 198 | ## CLI Builder 199 | 200 | * [Cocaine](https://github.com/thoughtbot/cocaine) - A small library for doing (command) lines. 201 | * [Commander](https://github.com/visionmedia/commander) - The complete solution for Ruby command-line executables. 202 | * [GLI](https://github.com/davetron5000/gli) - Git-Like Interface Command Line Parser. 203 | * [Main](https://github.com/ahoward/main) - A class factory and DSL for generating command line programs real quick. 204 | * [Rake](https://github.com/jimweirich/rake) - A make-like build utility for Ruby. 205 | * [Ru](https://github.com/tombenner/ru) - Ruby in your shell. 206 | * [Slop](https://github.com/leejarvis/slop) - Simple Lightweight Option Parsing. 207 | * [Thor](http://whatisthor.com) - A toolkit for building powerful command-line interfaces. 208 | * [TTY](https://github.com/peter-murach/tty) - Toolbox for developing CLI clients. 209 | 210 | ## CMS 211 | * [Alchemy CMS](http://alchemy-cms.com) - A powerful, userfriendly and flexible Open Source Rails CMS. 212 | * [Comfortable Mexican Sofa](https://github.com/comfy/comfortable-mexican-sofa) - A powerful Rails 4 CMS Engine. 213 | * [LocomotiveCMS](http://www.locomotivecms.com) - A simple but powerful CMS based on Liquid templates and Mongodb database. 214 | * [Publify](https://github.com/publify/publify) - A self hosted Web publishing platform on Rails. 215 | * [Radiant](http://radiantcms.org) - A no-fluff, open source content management system designed for small teams. 216 | * [Refinery CMS](http://refinerycms.com) - An open source Ruby on Rails content management system for Rails 3 and 4. 217 | * [Storytime](https://github.com/FlyoverWorks/storytime/) - Rails 4+ CMS and bloging engine, with a core focus on content. 218 | 219 | ## Code Analysis and Metrics 220 | 221 | * [Brakeman](https://github.com/presidentbeef/brakeman) - A static analysis security vulnerability scanner for Ruby on Rails applications. 222 | * [Cane](https://github.com/square/cane) - Code quality threshold checking as part of your build. 223 | * [Coverband](https://github.com/danmayer/coverband) - Rack middleware to help measure production code coverage. 224 | * [Flay](https://github.com/seattlerb/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. 225 | * [Flog](https://github.com/seattlerb/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. 226 | * [fukuzatsu](https://gitlab.com/coraline/fukuzatsu/tree/master) - Complexity analysis tool with a rich web front-end. 227 | * [MetricFu](https://github.com/metricfu/metric_fu) - A fist full of code metrics. 228 | * [Pronto](https://github.com/mmozuras/pronto) - Quick automated code review of your changes. 229 | * [rails_best_practices](https://github.com/railsbp/rails_best_practices) - A code metric tool for rails projects. 230 | * [Reek](https://github.com/troessner/reek) - Code smell detector for Ruby. 231 | * [Rubocop](https://github.com/bbatsov/rubocop) - A static code analyzer, based on the community Ruby style guide. 232 | * [Rubycritic](https://github.com/whitesmith/rubycritic) - A Ruby code quality reporter. 233 | * [SimpleCov](https://github.com/colszowka/simplecov) - Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites. 234 | 235 | ## Coding Style Guides 236 | 237 | * [fast-ruby](https://github.com/JuanitoFatas/fast-ruby) - Writing Fast Ruby. Collect Common Ruby idioms. 238 | * [Rails style guide](https://github.com/bbatsov/rails-style-guide) - Community-driven Rails best practices and style for Rails 3 and 4. 239 | * [RSpec style guide](https://github.com/andreareginato/betterspecs) - Better Specs { rspec guidelines with ruby }. 240 | * [Ruby style guide](https://github.com/bbatsov/ruby-style-guide) - Community-driven Ruby coding style. 241 | 242 | ## Concurrency 243 | 244 | * [Celluloid](http://celluloid.io) - Actor-based concurrent object framework for Ruby. 245 | * [Concurrent Ruby](https://github.com/ruby-concurrency/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. 246 | * [EventMachine](https://github.com/eventmachine/eventmachine) - An event-driven I/O and lightweight concurrency library for Ruby. 247 | 248 | ## Configuration 249 | 250 | * [Configatron](https://github.com/markbates/configatron) - Simple and feature rich configuration system for Ruby apps. 251 | * [Configus](https://github.com/kaize/configus) - Helps you easily manage environment specific settings. 252 | * [dotenv](https://github.com/bkeepers/dotenv) - Loads environment variables from `.env`. 253 | * [Econfig](https://github.com/elabs/econfig) - Flexible configuration for Rails applications. 254 | * [Figaro](https://github.com/laserlemon/figaro) - Simple, Heroku-friendly Rails app configuration using `ENV` and a single YAML file. 255 | * [Global](https://github.com/railsware/global) - Provides accessor methods for your configuration data. 256 | * [RailsConfig](https://github.com/railsconfig/rails_config) - Multi-environment yaml settings for Rails3. 257 | 258 | ## Core Extensions 259 | 260 | * [ActiveSupport](https://github.com/rails/rails/tree/master/activesupport) - A collection of utility classes and standard library extensions. 261 | * [Ruby Facets](https://github.com/rubyworks/facets) - The premiere collection of general purpose method extensions and standard additions for Ruby. 262 | * Attributes 263 | * [ActiveAttr](https://github.com/cgriego/active_attr) - What ActiveModel left out. 264 | * [FastAttributes](https://github.com/applift/fast_attributes) - FastAttributes adds attributes with their types to the class. 265 | * [Virtus](https://github.com/solnic/virtus) - Attributes on Steroids for Plain Old Ruby Objects. 266 | * Hash 267 | * [Hashie](https://github.com/intridea/hashie) - A collection of tools that extend Hashes and make them more useful. 268 | 269 | ## Country Data 270 | 271 | * [Carmen](https://github.com/jim/carmen) - A repository of geographic regions. 272 | * [Countries](https://github.com/hexorx/countries) - All sorts of useful information about every country packaged as pretty little country objects. 273 | * [GlobalPhone](https://github.com/sstephenson/global_phone) - Parse, validate, and format phone numbers in Ruby using Google's libphonenumber database. 274 | * [i18n_data](https://github.com/grosser/i18n_data) - country/language names and 2-letter-code pairs, in 85 languages, for country/language i18n. 275 | * [normalize_country](https://github.com/sshaw/normalize_country) - Convert country names and codes to a standard, includes a conversion program for XMLs, CSVs and DBs. 276 | 277 | ## CRM 278 | 279 | * [Fat Free CRM](https://github.com/fatfreecrm/fat_free_crm) - An open source Ruby on Rails based customer relationship management platform. 280 | 281 | ## Dashboards 282 | 283 | * [Dashing](http://shopify.github.io/dashing/) - A Sinatra based framework that lets you build beautiful dashboards. 284 | * [Dashing-Rails](https://github.com/gottfrois/dashing-rails) - The exceptionally handsome dashboard framework for Rails. 285 | 286 | ## Data Visualization 287 | 288 | * [Chartkick](http://ankane.github.io/chartkick/) - Create beautiful Javascript charts with one line of Ruby. Works with Rails, Sinatra and most browsers (including IE 6). 289 | * [LazyHighCharts](https://github.com/michelson/lazy_high_charts) - A simple and extremely flexible way to use HighCharts from ruby code. Tested on Ruby on Rails, Sinatra and Nanoc, but it should work with others too. 290 | * [RailRoady](https://github.com/preston/railroady) - Ruby on Rails 3/4 model and controller UML class diagram generator. 291 | * [Rails Erd](https://github.com/voormedia/rails-erd) - Generate Entity-Relationship Diagrams for Rails applications. 292 | * [Ruby/GraphViz](https://github.com/glejeune/Ruby-Graphviz) - Ruby interface to the GraphViz graphing tool. 293 | 294 | ## Database Drivers 295 | 296 | * [Cassandra Driver](https://github.com/datastax/ruby-driver) - A pure ruby driver for Apache Cassandra with asynchronous io and configurable load balancing, reconnection and retry policies. 297 | * [DataObjects](https://github.com/datamapper/do) - An attempt to rewrite existing Ruby database drivers to conform to one, standard interface. 298 | * [mongo-ruby-driver](https://github.com/mongodb/mongo-ruby-driver) - MongoDB Ruby driver. 299 | * [moped](http://mongoid.org/en/moped/index.html) - A MongoDB driver for Ruby. 300 | * [mysql2](https://github.com/brianmario/mysql2) - A modern, simple and very fast Mysql library for Ruby (binding to libmysql). 301 | * [Redic](https://github.com/amakawa/redic) - Lightweight Redis Client. 302 | * [redis-rb](https://github.com/redis/redis-rb) - A Ruby client that tries to match Redis' API one-to-one, while still providing an idiomatic interface. 303 | * [ruby-pg](https://bitbucket.org/ged/ruby-pg) - Ruby interface to PostgreSQL 8.3 and later. 304 | * [SQLite3](https://github.com/sparklemotion/sqlite3-ruby) - Ruby bindings for the SQLite3 embedded database. 305 | * [SQL Server](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter) - The SQL Server adapter for ActiveRecord. 306 | 307 | ## Database Tools 308 | 309 | * [Database Cleaner](https://github.com/DatabaseCleaner/database_cleaner) - Database Cleaner is a set of strategies for cleaning your database in Ruby. 310 | * [Foreigner](https://github.com/matthuhiggins/foreigner) - Adds foreign key helpers to migrations and correctly dumps foreign keys to schema.rb. 311 | * [Large Hadron Migrator](https://github.com/soundcloud/lhm) - Online MySQL schema migrations without locking the table. 312 | * [PgHero](https://github.com/ankane/pghero) - Postgres insights made easy. 313 | * [Seedbank](https://github.com/james2m/seedbank) - Seedbank allows you to structure your Rails seed data instead of having it all dumped into one large file. 314 | * [Seed dump](https://github.com/rroblak/seed_dump) - Rails 4 task to dump (parts) of your database to db/seeds.rb. 315 | * [Seed Fu](https://github.com/mbleigh/seed-fu) - Advanced seed data handling for Rails. 316 | 317 | ## Date and Time Processing 318 | 319 | * [biz](https://github.com/zendesk/biz) - Time calculations using business hours. 320 | * [business_time](https://github.com/bokmann/business_time) - Support for doing time math in business hours and days. 321 | * [ByStar](https://github.com/radar/by_star) - Find ActiveRecord objects by year, month, fortnight, week and more! 322 | * [Chronic](https://github.com/mojombo/chronic) - A natural language date/time parser written in pure Ruby. 323 | * [groupdate](https://github.com/ankane/groupdate) - The simplest way to group temporal data in ActiveRecord, arrays and hashes. 324 | * [ice_cube](https://github.com/seejohnrun/ice_cube) - A date recurrence library which allows easy creation of recurrence rules and fast querying. 325 | * [local_time](https://github.com/basecamp/local_time) - Rails Engine for cache-friendly, client-side local time. 326 | * [time-lord](https://github.com/krainboltgreene/time-lord) - Adds extra functionality to the time class. 327 | * [time_diff](https://github.com/abhidsm/time_diff) - Calculates the difference between two time. 328 | * [TZinfo](https://github.com/tzinfo/tzinfo) - Provides daylight savings aware transformations between times in different timezones. 329 | * [validates_timeliness](https://github.com/adzap/validates_timeliness) - Date and time validation plugin for ActiveModel and Rails. 330 | * [yymmdd](https://github.com/sshaw/yymmdd) - Tiny DSL for idiomatic date parsing and formatting. 331 | 332 | ## Debugging Tools 333 | 334 | * [Byebug](https://github.com/deivid-rodriguez/byebug) - A simple to use, feature rich debugger for Ruby 2. 335 | * [debugger](https://github.com/cldwalker/debugger) - A port of ruby-debug that works on 1.9.2 and 1.9.3. 336 | * [did_you_mean](https://github.com/yuki24/did_you_mean) - Adds class, method & attributute suggestions to error messages. 337 | * [Rails Footnotes](https://github.com/josevalim/rails-footnotes) - Rails footnotes displays footnotes in your application for easy debugging, such as sessions, request parameters, cookies, filter chain, routes, queries, etc. 338 | * [Xray](https://github.com/brentd/xray-rails) - A development tool that reveals your UI's bones. 339 | 340 | ## Decorators 341 | 342 | * [Draper](https://github.com/drapergem/draper) - Draper adds an object-oriented layer of presentation logic to your Rails application. 343 | * [ShowFor](https://github.com/plataformatec/show_for) - Quickly show a model information with I18n features. Like form_for for displaying model data. 344 | 345 | ## DevOps Tools 346 | 347 | * [Backup](https://github.com/meskyanichi/backup) - Provides an elegant DSL in Ruby for performing backups on UNIX-like systems. 348 | * [BOSH](https://github.com/cloudfoundry/bosh) - Cloud Foundry BOSH is an open source tool chain for release engineering, deployment and lifecycle management of large scale distributed services. 349 | * [Capistrano](http://capistranorb.com) - A remote server automation and deployment tool written in Ruby. 350 | * [Centurion](https://github.com/newrelic/centurion) - A mass deployment tool for Docker fleets. 351 | * [Chef](https://github.com/opscode/chef) - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure. 352 | * [Kochiku](https://github.com/square/kochiku) - Kochiku is a distributed platform for test automation. 353 | * [Lita](https://www.lita.io/) - ChatOps for Ruby: A pluggable chat bot framework usable with any chat service. 354 | * [Logstash](https://github.com/elasticsearch/logstash) - Logs/event transport, processing, management, search. 355 | * [Mina](https://github.com/mina-deploy/mina) - Really fast deployer and server automation tool. 356 | * [Puppet](https://github.com/puppetlabs/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. 357 | * [Request-log-analyzer](https://github.com/wvanbergen/request-log-analyzer) - Create reports based on your log files. Supports Rails, Apache, MySQL, Delayed::Job, and other formats. 358 | * [Rubber](https://github.com/rubber/rubber) - The rubber plugin enables relatively complex multi-instance deployments of RubyOnRails applications to Amazon's Elastic Compute Cloud (EC2). 359 | * [Vagrant](http://www.vagrantup.com) - Create and configure lightweight, reproducible, and portable development environments. 360 | 361 | ## Documentation 362 | 363 | * [Annotate](https://github.com/ctran/annotate_models) - Add a comment documenting the current schema to the top or bottom of each of your ActiveRecord models. 364 | * [Apipie](https://github.com/Apipie/apipie-rails) - Rails API documentation and display tool using Ruby syntax. 365 | * [Asciidoctor](http://asciidoctor.org) - A fast, Ruby-based text processor & publishing toolchain for converting AsciiDoc to HTML5, DocBook, EPUB3, PDF & more. 366 | * [Documentation](https://github.com/adamcooke/documentation) - A Rails engine to provider the ability to add documentation to a Rails application. 367 | * [grape-swagger](https://github.com/tim-vandecasteele/grape-swagger) - Add swagger compliant documentation to your Grape API. 368 | * [Inch](https://github.com/rrrene/inch) - Inch is a documentation measurement and evalutation tool for Ruby code, based on YARD. 369 | * [RDoc](https://github.com/rdoc/rdoc) - RDoc produces HTML and command-line documentation for Ruby projects. 370 | * [YARD](http://yardoc.org) - YARD enables the user to generate consistent, usable documentation that can be exported to a number of formats very easily. 371 | 372 | ## E-Commerce and Payments 373 | 374 | * [Active Merchant](https://github.com/Shopify/active_merchant) - A simple payment abstraction library extracted from Shopify. 375 | * [Koudoku](https://github.com/andrewculver/koudoku) - Robust subscription support for Ruby on Rails apps using Stripe, including out-of-the-box pricing pages, payment pages, and subscription management. 376 | * [Payola](https://github.com/peterkeen/payola) - Drop-in Rails engine for accepting payments with Stripe. 377 | * [Paypal Merchant SDK](https://github.com/paypal/merchant-sdk-ruby) - Official Paypal Merchant SDK for Ruby. 378 | * [Piggybak](https://github.com/piggybak/piggybak) - Modular, Extensible open-source ecommerce solution for Ruby on Rails. 379 | * [ROR Ecommerce](https://github.com/drhenner/ror_ecommerce) - A Rails e-commerce platform. 380 | * [Shoppe](http://tryshoppe.com) - A Rails-based e-commerce platform which allows you to easily introduce a catalogue-based store into your Rails 4 applications. 381 | * [Spree](https://github.com/spree/spree) - Spree is a complete open source e-commerce solution for Ruby on Rails. 382 | * [stripe-ruby](https://github.com/stripe/stripe-ruby) - Stripe Ruby bindings. 383 | 384 | ## Ebook 385 | 386 | * [Bookshop](https://github.com/blueheadpublishing/bookshop) - Bookshop is a an open-source agile book development and publishing framework for authors, editors. 387 | * [Eeepub](https://github.com/jugyo/eeepub) - EeePub is a Ruby ePub generator. 388 | * [Gepub](https://github.com/skoji/gepub) - A generic EPUB library for Ruby : supports EPUB 3. 389 | * [Git Scribe](https://github.com/schacon/git-scribe) - Basically the best way to write an ebook. 390 | * [Mobi](https://github.com/jkongie/mobi) - A Ruby way to read MOBI format metadata. 391 | * [Review](https://github.com/kmuto/review) - Re:VIEW is flexible document format/conversion system. 392 | 393 | ## Email 394 | 395 | * [Incoming](https://github.com/honeybadger-io/incoming) - Incoming! helps you receive email in your Rack apps. 396 | * [LetterOpener](https://github.com/ryanb/letter_opener) - Preview mail in the browser instead of sending. 397 | * [Mail](https://github.com/mikel/mail) - A Really Ruby Mail Library. 398 | * [MailCatcher](http://mailcatcher.me) - Catches mail and serves it through a dream. 399 | * [MailForm](https://github.com/plataformatec/mail_form) - Send e-mail straight from forms in Rails with I18n, validations, attachments and request information. 400 | * [Mailman](https://github.com/titanous/mailman) - An incoming mail processing microframework in Ruby. 401 | * [Markerb](https://github.com/plataformatec/markerb) - Allows you to render multipart e-mails from a single template written in Markdown. 402 | * [Pony](https://github.com/benprew/pony) - The express way to send mail from Ruby. 403 | * [premailer-rails](https://github.com/fphilipe/premailer-rails) - CSS styled emails without the hassle. 404 | * [Roadie](https://github.com/Mange/roadie) - Roadie tries to make sending HTML emails a little less painful by inlining stylesheets and rewriting relative URLs for you inside your emails. 405 | 406 | ## Environment Management 407 | 408 | * [chgems](https://github.com/postmodern/chgems) - Chroot for RubyGems. 409 | * [chruby](https://github.com/postmodern/chruby) - Change your current Ruby. No shims, no crazy options or features, ~90 LOC. 410 | * [fry](https://github.com/terlar/fry) - Simple ruby version manager for fish. 411 | * [gem_home](https://github.com/postmodern/gem_home) - A tool for changing your $GEM_HOME. 412 | * [rbenv](https://github.com/sstephenson/rbenv) - Use rbenv to pick a Ruby version for your application and guarantee that your development environment matches production. 413 | * [ruby-build](https://github.com/sstephenson/ruby-build) - Compile and install Ruby. 414 | * [ruby-install](https://github.com/postmodern/ruby-install) - Installs Ruby, JRuby, Rubinius, MagLev or MRuby. 415 | * [RVM](https://rvm.io) - 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. 416 | * [Tokaido](https://github.com/tokaido/tokaidoapp/releases) - Ruby, Rails, SQLite and Redis encapsulated in a single drag-and-drop OS X app, designed to make installing a working RoR environment easy for beginners. 417 | 418 | ## Error Handling 419 | 420 | * [Airbrake](https://github.com/airbrake/airbrake) - The official Airbrake library for Ruby on Rails (and other Rack based frameworks). 421 | * [Better Errors](https://github.com/charliesome/better_errors) - Better error page for Rack apps. 422 | * [Errbit](http://errbit.github.io/errbit) - The open source, self-hosted error catcher. 423 | * [Exception Notification](https://github.com/smartinez87/exception_notification) - A set of notifiers for sending notifications when errors occur in a Rack/Rails application. 424 | * [Nesty](https://github.com/skorks/nesty) - Nested exceptions for Ruby. 425 | * [Raven Ruby](https://github.com/getsentry/raven-ruby) - Raven is a Ruby client for Sentry. 426 | 427 | ## File Upload 428 | 429 | * [CarrierWave](https://github.com/carrierwaveuploader/carrierwave) - Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks. 430 | * [DragonFly](https://github.com/markevans/dragonfly) - A Ruby gem for on-the-fly processing - suitable for image uploading in Rails, Sinatra and much more!. 431 | * [PaperClip](https://github.com/thoughtbot/paperclip) - Easy file attachment management for ActiveRecord. 432 | * [rack-secure-upload](https://github.com/dtaniwaki/rack-secure-upload) - Upload files securely. 433 | * [Refile](https://github.com/elabs/refile) - A modern file upload library for Ruby applications, Refile is an attempt by CarrierWave's original author to fix the design mistakes and overengineering in CarrierWave. 434 | 435 | ## Form Builder 436 | 437 | * [Abracadabra](https://github.com/TrevorHinesley/abracadabra) - The gem that swaps out text with a fully-compliant Rails form in one click. 438 | * [Formtastic](https://github.com/justinfrench/formtastic) - A Rails form builder plugin with semantically rich and accessible markup. 439 | * [Rails Bootstrap Forms](https://github.com/bootstrap-ruby/rails-bootstrap-forms) - Rails form builder that makes it super easy to create beautiful-looking forms with Twitter Bootstrap 3+. 440 | * [Simple Form](https://github.com/plataformatec/simple_form) - Rails forms made easy. 441 | * Nested Forms: 442 | * [ActiveForm](https://github.com/rails/activeform) - Provides an object-oriented approach to represent your forms by building a Form Object which deals with create/update actions of nested objects in a more seamless way. 443 | * [Cocoon](https://github.com/nathanvda/cocoon) - Dynamic nested forms using jQuery made easy; works with formtastic, simple_form or default forms. 444 | * [Reform](https://github.com/apotonick/reform) - Gives you a form object with validations and nested setup of models. It is completely framework-agnostic and doesn't care about your database. 445 | 446 | ## Game Development 447 | 448 | * [Gosu](http://www.libgosu.org) - A 2D game development library for the Ruby and C++ programming languages. 449 | * [Yeah](https://github.com/yeahrb/yeah) - Practical Ruby video game framework. 450 | 451 | ## Geolocation 452 | 453 | * [Geocoder](https://github.com/alexreisner/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. 454 | * [geoip](https://github.com/cjheath/geoip) - Searches a GeoIP database for a given host or IP address, and returns information about the country where the IP address is allocated, and the city, ISP and other information. 455 | * [Geokit](https://github.com/geokit/geokit) - Geokit gem provides geocoding and distance/heading calculations. 456 | * [Google Maps for Rails](https://github.com/apneadiving/Google-Maps-for-Rails) - Enables easy Google map + overlays creation in Ruby apps. 457 | 458 | ## Git Tools 459 | * [ginatra](https://github.com/NARKOZ/ginatra) - A web frontend for Git repositories. 460 | * [git-auto-bisect](https://github.com/grosser/git-autobisect) - Find the commit that broke master. 461 | * [git-spelunk](https://github.com/osheroff/git-spelunk) - Dig through git blame history. 462 | * [git-up](https://github.com/aanand/git-up) - Fetch and rebase all locally-tracked remote branches. 463 | * [git-whence](https://github.com/grosser/git-whence) - Find which merge a commit came from. 464 | * [hub](https://github.com/github/hub) - A command line tool that wraps Git in order to extend it with extra features and commands that make working with GitHub easier. 465 | * [Rugged](https://github.com/libgit2/rugged) - Ruby bindings to libgit2. 466 | 467 | ## GUI 468 | 469 | * [qtbindings](https://github.com/ryanmelt/qtbindings) - Allows the QT Gui toolkit to be used from Ruby. 470 | * [RubyGnome2](http://ruby-gnome2.sourceforge.jp/) - Ruby language bindings for the GNOME 2.0 development environment. 471 | * [Shoes](http://shoesrb.com) - Shoes makes building little graphical programs for Mac, Windows, and Linux super simple. 472 | 473 | ## HTML/XML Parsing 474 | 475 | * [HappyMapper](https://github.com/dam5s/happymapper) - Object to XML mapping library, using Nokogiri. 476 | * [Nokogiri](http://nokogiri.org) - An HTML, XML, SAX, and Reader parser with XPath and CSS selector support. 477 | * [Oga](https://github.com/YorickPeterse/oga) - An XML/HTML parser written in Ruby. Oga does not require system libraries such as libxml, making it easier and faster to install on various platforms. 478 | * [ROXML](https://github.com/Empact/roxml) - Custom mapping and bidirectional marshalling between Ruby and XML using annotation-style class methods, via Nokogiri or LibXML. 479 | 480 | ## HTTP 481 | 482 | * [excon](https://github.com/excon/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. 483 | * [Faraday](https://github.com/lostisland/faraday) - an HTTP client lib that provides a common interface over many adapters (such as Net::HTTP) and embraces the concept of Rack middleware when processing the request/response cycle. 484 | * [Http Client](https://github.com/nahi/httpclient) - Gives something like the functionality of libwww-perl (LWP) in Ruby. 485 | * [http](https://github.com/tarcieri/http) - The HTTP Gem: a simple Ruby DSL for making HTTP requests. 486 | * [httparty](https://github.com/jnunemaker/httparty) - Makes http fun again! 487 | * [Patron](https://github.com/toland/patron) - Patron is a Ruby HTTP client library based on libcurl. 488 | * [RESTClient](https://github.com/rest-client/rest-client) - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions. 489 | * [Savon](https://github.com/savonrb/savon) - Savon is a SOAP client for the Ruby programming language. 490 | * [Sawyer](https://github.com/lostisland/sawyer) - Secret user agent of HTTP, built on top of Faraday. 491 | * [Spyke](https://github.com/balvig/spyke) - Interact with REST services in an ActiveRecord-like manner. 492 | * [Typhoeus](https://github.com/typhoeus/typhoeus) - Typhoeus wraps libcurl in order to make fast and reliable requests. 493 | 494 | ## Image Processing 495 | 496 | * [MiniMagick](https://github.com/minimagick/minimagick) - A ruby wrapper for ImageMagick or GraphicsMagick command line. 497 | * [Phasion](https://github.com/westonplatter/phashion) - Ruby wrapper around pHash, the perceptual hash library for detecting duplicate multimedia files. 498 | * [PSD.rb](https://github.com/layervault/psd.rb) - Parse Photoshop files in Ruby with ease. 499 | * [RMagick](https://github.com/rmagick/rmagick) - RMagick is an interface between Ruby and ImageMagick. 500 | * [Skeptick](https://github.com/maxim/skeptick) - Skeptick is an all-purpose DSL for building and running ImageMagick commands. 501 | 502 | ## Internationalization 503 | 504 | * [FastGettext](https://github.com/grosser/fast_gettext) - Ruby internationalization tool with less memory, simple, clean namespace and threadsafe. 505 | * [Globalize](https://github.com/globalize/globalize) - Globalize builds on the I18n API in Ruby on Rails to add model translations to ActiveRecord models. 506 | * [i18n-tasks](https://github.com/glebm/i18n-tasks) - Manage missing and unused translations with the awesome power of static analysis. 507 | * [i18n](https://github.com/svenfuchs/i18n) - Ruby Internationalization and localization solution. 508 | * [r18n](https://github.com/ai/r18n) - Advanced i18n library for Rails, Sinatra, desktop apps, models, works well with complex languages like Russian. 509 | * [twitter-cldr-rb](https://github.com/twitter/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. 510 | 511 | ## Logging 512 | 513 | * [Cabin](https://github.com/jordansissel/ruby-cabin) - Structured+contextual logging experiments in Ruby. 514 | * [Fluentd](https://github.com/fluent/fluentd) - Fluentd collects events from various data sources and writes them to files, database or other types of storages. 515 | * [HttpLog](https://github.com/trusche/httplog) - Log outgoing HTTP requests. 516 | * [Log4r](https://github.com/colbygk/log4r) - Log4r is a comprehensive and flexible logging library for use in Ruby programs. 517 | * [Logging](https://github.com/TwP/logging) - A flexible logging library for use in Ruby programs based on the design of Java's log4j library. 518 | * [Lograge](https://github.com/roidrage/lograge) - An attempt to tame Rails' default policy to log everything. 519 | * [MongoDB Logger](https://github.com/le0pard/mongodb_logger) - MongoDB logger for Rails. 520 | * [Scrolls](https://github.com/asenchi/scrolls) - Simple logging. 521 | * [Yell](https://github.com/rudionrails/yell) - Your Extensible Logging Library. 522 | 523 | ## Machine Learning 524 | 525 | * [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. 526 | * [rb-libsvm](https://github.com/febeling/rb-libsvm) - Ruby language bindings for LIBSVM. SVM is a machine learning and classification algorithm. 527 | * [ruby-band](https://github.com/arrigonialberto86/ruby-band) - Machine learning and data mining algorithms for JRuby. 528 | * [Ruby Datumbox Wrapper](https://github.com/marloncarvalho/ruby-datumbox) - 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. 529 | 530 | ## Markdown Processors 531 | 532 | * [kramdown](https://github.com/gettalong/kramdown) - Kramdown is yet-another-markdown-parser but fast, pure Ruby, using a strict syntax definition and supporting several common extensions. 533 | * [Maruku](https://github.com/bhollis/maruku) - A pure-Ruby Markdown-superset interpreter. 534 | * [Redcarpet](https://github.com/vmg/redcarpet) - A fast, safe and extensible Markdown to (X)HTML parser. 535 | 536 | ## Misc 537 | 538 | * [auto_html](https://github.com/dejan/auto_html) - Rails extension for transforming URLs to appropriate resource (image, link, YouTube, Vimeo video...) 539 | * [Betty](https://github.com/pickhardt/betty) - Friendly English-like interface for your command line. Don't remember a command? Ask Betty. 540 | * [Diffy](https://github.com/samg/diffy) - Easy Diffing With Ruby. 541 | * [Foreman](https://github.com/ddollar/foreman) - Manage Procfile-based applications. 542 | * [Gollum](https://github.com/gollum/gollum) - A simple, Git-powered wiki with a sweet API and local frontend. 543 | * [gon](https://github.com/gazay/gon) - If you need to send some data to your js files and you don't want to do this with long way through views and parsing - use gon. 544 | * [Guard](https://github.com/guard/guard) - A command line tool to easily handle events on file system modifications. 545 | * [JsonCompare](https://github.com/a2design-company/json-compare) - Returns the difference between two JSON files. 546 | * [play ►](https://github.com/play/play) - Your company's dj. 547 | * [Pry Debugger](https://github.com/nixme/pry-debugger) - Pry navigation commands via debugger (formerly ruby-debug). 548 | * [Pry](https://github.com/pry/pry) - A powerful alternative to the standard IRB shell for Ruby. 549 | * [pygments.rb](https://github.com/tmm1/pygments.rb) - A Ruby wrapper for the Python pygments syntax highlighter. 550 | * [RubyDNS](https://github.com/ioquatix/rubydns) - A high-performance DNS server which can be easily integrated into other projects or used as a stand-alone daemon. 551 | * [Ruby Operators](http://ruby-operators.herokuapp.com/) - A webpage showing awesome names for different Ruby operators. 552 | * [Termit](https://github.com/pawurb/termit) - Google Translate with speech synthesis in your terminal. 553 | * [Treetop](https://github.com/cjheath/treetop) - PEG (Parsing Expression Grammar) parser. 554 | 555 | ## Mobile Development 556 | 557 | * [fastlane](https://github.com/KrauseFx/fastlane) - Connect all iOS deployment tools into one streamlined workflow. 558 | * [Ruboto](http://ruboto.org) - A platform for developing full stand-alone apps for Android using the Ruby language and libraries. 559 | * [RubyMotion](http://www.rubymotion.com) - A revolutionary toolchain that lets you quickly develop and test full-fledged native iOS and OS X applications for iPhone, iPad, Mac and Android (beta). 560 | 561 | ## Money 562 | 563 | * [eu_central_bank](https://github.com/RubyMoney/eu_central_bank) - A gem that calculates the exchange rate using published rates from European Central Bank. 564 | * [Monetize](https://github.com/RubyMoney/monetize) - A library for converting various objects into Money objects. 565 | * [Money](https://github.com/RubyMoney/money) - A Ruby Library for dealing with money and currency conversion. 566 | 567 | ## Natural Language Processing 568 | 569 | * [Pragmatic Segmenter](https://github.com/diasks2/pragmatic_segmenter) - Pragmatic Segmenter is a rule-based sentence boundary detection gem that works out-of-the-box across many languages. 570 | * [Text](https://github.com/threedaymonk/text) - A collection of text algorithms including Levenshtein distance, Metaphone, Soundex 2, Porter stemming & White similarity. 571 | * [Treat](https://github.com/louismullie/treat) - Treat is a toolkit for natural language processing and computational linguistics in Ruby. 572 | 573 | ## Navigation 574 | 575 | * [Breadcrumbs on Rails](https://github.com/weppos/breadcrumbs_on_rails) - A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project. 576 | * [Gretel](https://github.com/lassebunk/gretel) - A Ruby on Rails plugin that makes it easy yet flexible to create breadcrumbs. 577 | * [loaf](https://github.com/peter-murach/loaf) - Manages and displays breadcrumb trails in Rails app - lean & mean. 578 | * [Simple Navigation](https://github.com/codeplant/simple-navigation) - A ruby gem for creating navigation (html list, link list or breadcrumbs with multiple levels) for your Rails 2, 3 & 4, Sinatra or Padrino. 579 | 580 | ## ORM/ODM 581 | 582 | * [ActiveRecord](https://github.com/rails/rails/tree/master/activerecord) - Object-relational mapping in Rails. 583 | * [DataMapper](https://github.com/datamapper/dm-core) - ORM which works well with legacy databases. Last release (1.2.0) was on 13 October 2011. 584 | * [Guacamole](https://github.com/triAGENS/guacamole) - An ODM for ArangoDB. 585 | * [Mongoid](https://github.com/mongoid/mongoid) - An ODM (Object-Document-Mapper) framework for MongoDB in Ruby. 586 | * [MongoMapper](https://github.com/mongomapper/mongomapper) - A Ruby Object Mapper for Mongo. 587 | * [MongoModel](https://github.com/spohlenz/mongomodel) - Ruby ODM for interfacing with MongoDB databases. 588 | * [Ohm](https://github.com/soveran/ohm) - Object-hash mapping library for Redis. 589 | * [Perpetuity](https://github.com/jgaskins/perpetuity) - Persistence gem for Ruby objects using the Data Mapper pattern. 590 | * [ROM](https://github.com/rom-rb/rom) - Ruby Object Mapper (ROM) is an experimental Ruby library with the goal to provide powerful object mapping capabilities without limiting the full power of your datastore. 591 | * [Sequel](https://github.com/jeremyevans/sequel) - Sequel is a simple, flexible, and powerful SQL database access toolkit for Ruby. 592 | 593 | ## ORM/ODM Extensions 594 | 595 | * Auditing 596 | * [ActsAsParanoid](https://github.com/ActsAsParanoid/acts_as_paranoid) - ActiveRecord plugin allowing you to hide and restore records without actually deleting them. 597 | * [Audited](https://github.com/collectiveidea/audited) - Audited is an ORM extension for ActiveRecord & MongoMapper that logs all changes to your models. 598 | * [Destroyed At](https://github.com/dockyard/destroyed_at) - Allows you to "destroy" an object without deleting the record or associated records. 599 | * [Espinita](https://github.com/continuum/espinita) - Audit activerecord models like a boss. 600 | * [mongoid-history](https://github.com/aq1018/mongoid-history) - Multi-user non-linear history tracking, auditing, undo, redo for mongoid. 601 | * [PaperTrail](https://github.com/airblade/paper_trail) - Track changes to your ActiveRecord models' data for auditing or versioning. 602 | * [Paranoia](https://github.com/radar/paranoia) - A re-implementation of acts_as_paranoid for Rails 3 and 4, using much, much, much less code. 603 | * [PermenantRecords](https://github.com/JackDanger/permanent_records) - Soft-delete your ActiveRecord records, like an explicit version of ActsAsParanoid. 604 | * Import 605 | * [ActiveImporter](https://github.com/continuum/active_importer) - Define importers that load tabular data from spreadsheets or CSV files into any ActiveRecord-like ORM. 606 | * [data_miner](https://github.com/seamusabshere/data_miner) - Download, pull out of a ZIP/TAR/GZ/BZ2 archive, parse, correct, and import XLS, ODS, XML, CSV, HTML, etc. into your ActiveRecord models. 607 | * [ferry](https://github.com/cmu-is-projects/ferry) - A ruby gem for easy data transfer. 608 | * Misc 609 | * [ActiveRecord::Turntable](https://github.com/drecom/activerecord-turntable) - A database sharding extension for ActiveRecord. 610 | * [ActiveValidators](https://github.com/franckverrot/activevalidators) - An exhaustive collection of off-the-shelf and tested ActiveModel/ActiveRecord validations. 611 | * [Enumerize](https://github.com/brainspec/enumerize) - Enumerated attributes with I18n and ActiveRecord/Mongoid/MongoMapper support. 612 | * [mini_record](https://github.com/DAddYE/mini_record) - ActiveRecord meets DataMapper, with MiniRecord you are be able to write schema inside your models. 613 | * Multi-tenancy 614 | * [Acts As Tennant](https://github.com/ErwinM/acts_as_tenant) - Add multi-tenancy to a Rails app through a shared database strategy. 615 | * [Apartment](https://github.com/influitive/apartment) - Multi-tenancy for Rails and ActiveRecord. 616 | * Social 617 | * [Acts As Commentable](https://github.com/jackdempsey/acts_as_commentable) - Provides a single Comment model that can be attached to any model(s) within your app. 618 | * [Acts As Commentable with Threading](https://github.com/elight/acts_as_commentable_with_threading) - Similar to acts_as_commentable; however, utilizes awesome_nested_set to provide threaded comments. 619 | * [acts_as_follower](https://github.com/tcocca/acts_as_follower) - Allow any ActiveRecord model to follow any other model. 620 | * [ActiveRecord Reputation System](https://github.com/twitter/activerecord-reputation-system) - An Active Record Reputation System for Rails. 621 | * [ActsAsTaggableOn](https://github.com/mbleigh/acts-as-taggable-on) - A tagging plugin for ActiveRecord that allows for custom tagging along dynamic contexts. 622 | * [Acts As Votable](https://github.com/ryanto/acts_as_votable) - Allow any ActiveRecord model to be voted on, like/dislike, upvote/downvote, etc. 623 | * [Merit](https://github.com/tute/merit) - Adds reputation behavior to Rails apps in the form of Badges, Points, and Rankings for ActiveRecord or Mongoid. 624 | * [Unread](https://github.com/ledermann/unread) - Manage read/unread status of ActiveRecord objects - and it's fast. 625 | * Sorting 626 | * [ActsAsList](https://github.com/swanandp/acts_as_list) - Provides the capabilities for sorting and reordering a number of objects in a list. 627 | * [ranked-model](https://github.com/mixonic/ranked-model) - A modern row sorting library for ActiveRecord. It uses ARel aggressively and is better optimized than most other libraries. 628 | * Tree 629 | * [ActsAsTree](https://github.com/amerine/acts_as_tree) - Extends ActiveRecord to add simple support for organizing items into parent–children relationships. 630 | * [Ancestry](https://github.com/stefankroes/ancestry) - Organise ActiveRecord model into a tree structure using a variation on the materialised path pattern. 631 | * [Awesome Nested Set](https://github.com/collectiveidea/awesome_nested_set) - Awesome Nested Set is an implementation of the nested set pattern for ActiveRecord models. 632 | * [Closure Tree](https://github.com/mceachen/closure_tree) - Easily and efficiently make your ActiveRecord models support hierarchies using a Closure Table. 633 | * [Mongoid Tree](https://github.com/benedikt/mongoid-tree) - A tree structure for Mongoid documents using the materialized path pattern. 634 | 635 | ## Package Management 636 | 637 | * Gems 638 | * [Bundler](http://bundler.io) - Manage your application's gem dependencies with less pain. 639 | * [RubyGems](https://rubygems.org) - Community's gem hosting service. 640 | * Packages and Applications 641 | * [Berkshelf](https://github.com/berkshelf/berkshelf) - A Chef Cookbook manager. 642 | * [CocoaPods](https://github.com/CocoaPods/CocoaPods) - The Objective-C dependency manager. 643 | * [fpm](https://github.com/jordansissel/fpm) - Effing package management! Build packages for multiple platforms (deb, rpm, etc) with great ease and sanity. 644 | * [Homebrew-cask](https://github.com/caskroom/homebrew-cask) - A CLI workflow for the administration of Mac applications distributed as binaries. 645 | * [Homebrew](https://github.com/Homebrew/homebrew) - The missing package manager for OS X. 646 | 647 | ## Pagination 648 | 649 | * [Kaminari](https://github.com/amatsuda/kaminari) - A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for modern web app frameworks and ORMs. 650 | * [order_query](https://github.com/glebm/order_query) - A keyset pagination library to find the next or previous record(s) relative to the current one efficiently, e.g. for infinite scroll. 651 | * [will_paginate](https://github.com/mislav/will_paginate) - A pagination library that integrates with Ruby on Rails, Sinatra, Merb, DataMapper and Sequel. 652 | 653 | ## PDF 654 | 655 | * [Gimli](https://github.com/walle/gimli) - Utility for converting markup files to pdf files. 656 | * [Kitabu](https://github.com/fnando/kitabu) - A framework for creating e-books from Markdown/Textile text markup using Ruby. 657 | * [Pdfkit](https://github.com/pdfkit/pdfkit) - HTML+CSS to PDF using wkhtmltopdf. 658 | * [Prawn](https://github.com/prawnpdf/prawn) - Fast, Nimble PDF Writer for Ruby. 659 | * [RGhost](https://github.com/shairontoledo/rghost) - RGhost is a document creation and conversion API. 660 | * [Shrimp](https://github.com/adjust/shrimp) - A phantomjs based pdf renderer. 661 | * [Wicked Pdf](https://github.com/mileszs/wicked_pdf) - PDF generator (from HTML) plugin for Ruby on Rails. 662 | * [Wisepdf](https://github.com/igor-alexandrov/wisepdf) - Wkhtmltopdf wrapper done right. 663 | 664 | ## Performance Monitoring 665 | 666 | * [New Relic](https://github.com/newrelic/rpm) - Find and fix Ruby errors with New Relic application monitoring and troubleshooting. 667 | * [Skylight](https://github.com/skylightio/skylight-ruby) - A smart profiler for your Rails apps that visualizes request performance. 668 | * [TraceView](https://github.com/appneta/oboe-ruby) - Full-stack application tracing and brilliant data visualization to build faster, more reliable web apps. 669 | 670 | ## Process Monitoring 671 | 672 | * [Bluepill](https://github.com/bluepill-rb/bluepill) - Simple process monitoring tool. 673 | * [Eye](https://github.com/kostya/eye) — Process monitoring tool. Inspired from Bluepill and God. 674 | * [God](https://github.com/mojombo/god) - An easy to configure, easy to extend monitoring framework written in Ruby. 675 | 676 | ## Processes and Threads 677 | 678 | * [childprocess](https://github.com/jarib/childprocess) - Cross-platform ruby library for managing child processes. 679 | * [forkoff](https://github.com/ahoward/forkoff) - brain-dead simple parallel processing for ruby. 680 | * [Parallel](https://github.com/grosser/parallel) - Run any code in parallel Processes (> use all CPUs) or Threads (> speedup blocking operations). 681 | Best suited for map-reduce or e.g. parallel downloads/uploads. 682 | * [posix-spawn](https://github.com/rtomayko/posix-spawn) - Fast Process::spawn for Rubys >= 1.8.7 based on the posix_spawn() system interfaces. 683 | 684 | ## Profiler 685 | 686 | * [benchmark-ips](https://github.com/evanphx/benchmark-ips) - Provides iteration per second benchmarking for Ruby. 687 | * [bullet](https://github.com/flyerhzm/bullet) - Help to kill N+1 queries and unused eager loading. 688 | * [Peek](https://github.com/peek/peek) - Visual status bar showing Rails performance. 689 | * [perftools.rb](https://github.com/tmm1/perftools.rb) - gperftools (formerly known as google-perftools) for Ruby code. 690 | * [rack-mini-profiler](https://github.com/MiniProfiler/rack-mini-profiler) - Profiler for your development and production Ruby rack apps. 691 | * [Rbkit](https://github.com/code-mancers/rbkit) - profiler for Ruby. With a GUI. 692 | * [ruby-prof](https://github.com/ruby-prof/ruby-prof) - A code profiler for MRI rubies. 693 | 694 | ## Queue 695 | 696 | * [active_job](https://github.com/rails/activejob) - Declare job classes that can be run by a variety of queueing backends. 697 | * [Backburner](https://github.com/nesquena/backburner) - Backburner is a beanstalkd-powered job queue that can handle a very high volume of jobs. 698 | * [Delayed::Job](https://github.com/collectiveidea/delayed_job) - Database backed asynchronous priority queue. 699 | * [Resque](https://github.com/resque/resque) - A Redis-backed Ruby library for creating background jobs. 700 | * [Que](https://github.com/chanks/que) - A Ruby job queue that uses PostgreSQL's advisory locks for speed and reliability. 701 | * [Sidekiq](http://sidekiq.org) - 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. 702 | * [Sucker Punch](https://github.com/brandonhilkert/sucker_punch) - A single process background processing library using Celluloid. Aimed to be Sidekiq's little brother. 703 | 704 | ## Rails Application Generators 705 | 706 | * [Bootstrappers](https://github.com/xdite/bootstrappers) - Bootstrappers generates a base Rails app using Bootstrap template and other goodies. 707 | * [Hobo](https://github.com/Hobo/hobo) - The web app builder for Rails. 708 | * [orats](https://github.com/nickjj/orats) - Opinionated rails application templates. 709 | * [Rails Composer](https://github.com/RailsApps/rails-composer) - The Rails generator on steroids for starter apps. 710 | * [RailsBricks](https://github.com/nicoschuele/railsbricks) - Boost your Rails development productivity. 711 | * [Raygun](https://github.com/carbonfive/raygun) - Builds applications with the common customization stuff already done. 712 | * [Suspenders](https://github.com/thoughtbot/suspenders) - Suspenders is the base Rails application used at thoughtbot. 713 | 714 | ## Robotics 715 | 716 | * [Artoo](http://artoo.io) - Next generation robotics framework with support for different platforms: Arduino, Leap Motion, Pebble, Raspberry Pi, etc. 717 | 718 | ## RSS 719 | 720 | * [Feed normalizer](https://github.com/aasmith/feed-normalizer) - Extensible Ruby wrapper for Atom and RSS parsers. 721 | * [Feedjira](https://github.com/feedjira/feedjira) - A feed fetching and parsing library. 722 | * [Ratom](https://github.com/seangeo/ratom) - A fast, libxml based, Ruby Atom library. 723 | * [Simple rss](https://github.com/cardmagic/simple-rss) - A simple, flexible, extensible, and liberal RSS and Atom reader. 724 | 725 | ## Scheduling 726 | 727 | * [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. 728 | * [minicron](https://github.com/jamesrwhite/minicron) - A system to manage and monitor cron jobs. 729 | * [resque-scheduler](https://github.com/resque/resque-scheduler) - A light-weight job scheduling system built on top of Resque. 730 | * [rufus-scheduler](https://github.com/jmettraux/rufus-scheduler) - Job scheduler for Ruby (at, cron, in and every jobs). 731 | * [Whenever](https://github.com/javan/whenever) - A Ruby gem that provides a clear syntax for writing and deploying cron jobs. 732 | 733 | ## Scientific 734 | 735 | * Artificial intelligence 736 | * [AI4R](https://github.com/sergiofierens/ai4r) - Algorithms covering several Artificial intelligence fields. 737 | * [ruby-fann](https://github.com/tangledpath/ruby-fann) - Ruby library for interfacing with FANN (Fast Artificial Neural Network). 738 | * Bindings 739 | * [ruby-opencv](https://github.com/ruby-opencv/ruby-opencv) - An OpenCV wrapper for Ruby. 740 | * Classifiers 741 | * [classifier-reborn](https://github.com/jekyll/classifier-reborn) - An active fork of Classifier, and general module to allow Bayesian and other types of classifications. 742 | * [stuff-classifier](https://github.com/alexandru/stuff-classifier) - A library for classifying text into multiple categories. 743 | * Numerical arrays 744 | * [NMatrix](https://github.com/sciruby/nmatrix) - Fast numerical linear algebra library for Ruby. 745 | * [NArray](https://github.com/masa16/narray) - N-dimensional Numerical Array for Ruby. 746 | * [mdarray](https://github.com/rbotafogo/mdarray) - Multi dimensional array implemented for JRuby inspired by NumPy. 747 | * [SciRuby](https://github.com/sciruby/sciruby) - Tools for scientific computation in Ruby/Rails. 748 | * [statsample](https://github.com/sciruby/statsample) - A suite for basic and advanced statistics on Ruby. 749 | * [statsample-timeseries](https://github.com/sciruby/statsample-timeseries) - Bioruby Statsample TimeSeries. 750 | * [statsample-glm](https://github.com/sciruby/statsample-glm) - Generalized Linear Models extension for Statsample. 751 | * [distribution](https://github.com/sciruby/distribution) - Statistical Distributions multi library wrapper. 752 | * [integration](https://github.com/sciruby/integration) - Numerical integration methods, based on original work by Beng. 753 | * [minimization](https://github.com/sciruby/minimization) - Minimization algorithms on pure Ruby. 754 | * [publisci](https://github.com/sciruby/publisci) - A toolkit for publishing scientific results to the semantic web. 755 | * [plotrb](https://github.com/sciruby/plotrb) - A plotting library in Ruby built on top of Vega and D3. 756 | * [rb-gsl](https://github.com/SciRuby/rb-gsl) - A ruby interface to GNU Scientific library, with NMatrix support. 757 | * Specific 758 | * [BioRuby](https://github.com/bioruby/bioruby) - Library for developing bioinformatics software. 759 | * [bloomfilter-rb](https://github.com/igrigorik/bloomfilter-rb) - BloomFilter(s) in Ruby: Native counting filter + Redis counting/non-counting filters. 760 | * [decisiontree](https://github.com/igrigorik/decisiontree) - A ruby library which implements ID3 (information gain) algorithm for decision tree learning. 761 | * Utilities 762 | * [smarter_csv](https://github.com/tilo/smarter_csv) - Ruby Gem for smarter importing of CSV Files as Array(s) of Hashes. 763 | * [algorithms](https://github.com/kanwei/algorithms) - Library with documentation on when to use a particular structure/algorithm. 764 | 765 | ## Search 766 | 767 | * [attr_searchable](https://github.com/mrkamel/attr_searchable) - Search engine like fulltext query support for ActiveRecord. 768 | * [elasticsearch-ruby](https://github.com/elasticsearch/elasticsearch-ruby) - Ruby integrations for Elasticsearch. 769 | * [has_scope](https://github.com/plataformatec/has_scope) - Has scope allows you to easily create controller filters based on your resources named scopes. 770 | * [Mongoid Search](https://github.com/mauriciozaffari/mongoid_search) - Simple full text search implementation for Mongoid. 771 | * [pg_search](https://github.com/Casecommons/pg_search) - Builds ActiveRecord named scopes that take advantage of PostgreSQL's full text search. 772 | * [ransack](https://github.com/activerecord-hackery/ransack/) - Object-based searching. 773 | * [Rroonga](https://github.com/ranguba/rroonga) - The Ruby bindings of Groonga. 774 | * [SearchCop](https://github.com/mrkamel/search_cop) - Extends your ActiveRecord models to support fulltext search engine like queries via simple query strings and hash-based queries. 775 | * [Searchkick](https://github.com/ankane/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. 776 | * [Searchlogic](https://github.com/binarylogic/searchlogic) - Object based searching, common named scopes, and other useful named scope tools for ActiveRecord. 777 | * [Sunspot](https://github.com/sunspot/sunspot) - A Ruby library for expressive, powerful interaction with the Solr search engine. 778 | * [textacular](https://github.com/textacular/textacular) - Exposes full text search capabilities from PostgreSQL, and allows you to declare full text indexes. Textacular extends ActiveRecord with named_scope methods making searching easy and fun! 779 | * [Thinking Sphinx](https://github.com/pat/thinking-sphinx) - A library for connecting ActiveRecord to the Sphinx full-text search tool. 780 | 781 | ## Security 782 | 783 | * [bundler-audit](https://github.com/rubysec/bundler-audit) - Patch-level security verification for Bundler. 784 | * [Gitrob](https://github.com/michenriksen/gitrob) - Reconnaissance tool for GitHub organizations. 785 | * [Metasploit](https://github.com/rapid7/metasploit-framework) - World's most used penetration testing software. 786 | * [RbNaCl](https://github.com/cryptosphere/rbnacl) - Ruby binding to the Networking and Cryptography (NaCl) library. 787 | * [SecureHeaders](https://github.com/twitter/secureheaders) - Automatically apply several headers that are related to security, including: Content Security Policy (CSP), HTTP Strict Transport Security (HSTS), X-Frame-Options (XFO), X-XSS-Protection, X-Content-Type-Options, X-Download-Options & X-Permitted-Cross-Domain-Policies. 788 | 789 | ## SEO 790 | 791 | * [FriendlyId](https://github.com/norman/friendly_id) - The "Swiss Army bulldozer" of slugging and permalink plugins for Active Record. 792 | * [MetaTags](https://github.com/kpumuk/meta-tags) - A gem to make your Rails application SEO-friendly. 793 | * [SitemapGenerator](https://github.com/kjvarga/sitemap_generator) - A framework-agnostic XML Sitemap generator written in Ruby. 794 | 795 | ## Social Networking 796 | 797 | * [Campo](https://github.com/chloerei/campo) - Campo is a lightweight forum application, base on Ruby on Rails. 798 | * [diaspora*](https://github.com/diaspora/diaspora) - A privacy aware, distributed, open source social network. 799 | * [Discourse](https://github.com/discourse/discourse) - A platform for community discussion. Free, open, simple. 800 | * [Forem](https://github.com/radar/forem) - Rails 3 and Rails 4 forum engine. 801 | * [Mailboxer](https://github.com/mailboxer/mailboxer) - A private message system for Rails applications. 802 | * [Social Shares](https://github.com/Timrael/social_shares) - A gem to check how many times url was shared in social networks. 803 | 804 | ## Spreadsheets and Documents 805 | 806 | * [AXLSX](https://github.com/randym/axlsx) - An excel xlsx generation library. 807 | * [Roo](https://github.com/roo-rb/roo) - Implements read access for all spreadsheet types and read/write access for Google spreadsheets. 808 | * [Yomu](https://github.com/Erol/yomu) - Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf). 809 | 810 | ## State Machines 811 | 812 | * [AASM](https://github.com/aasm/aasm) - State machines for Ruby classes (plain Ruby, Rails Active Record, Mongoid). 813 | * [FiniteMachine](https://github.com/peter-murach/finite_machine) - A plain Ruby state machine with a straightforward and expressive syntax. 814 | * [simple_states](https://github.com/svenfuchs/simple_states) - A super-slim statemachine-like support library. 815 | * [Statesman](https://github.com/gocardless/statesman) - A statesmanlike state machine library. 816 | * [transitions](https://github.com/troessner/transitions) — A ruby state machine implementatio. 817 | * [Workflow](https://github.com/geekq/workflow) - A finite-state-machine-inspired API for modeling and interacting with what we tend to refer to as 'workflow'. 818 | 819 | ## Static Site Generation 820 | 821 | * [High Voltage](https://github.com/thoughtbot/high_voltage) - Easily include static pages in your Rails app. 822 | * [Jekyll](http://jekyllrb.com) - Transform your plain text into static websites and blogs. 823 | * [Middleman](http://middlemanapp.com) - A static site generator using all the shortcuts and tools in modern web development. 824 | * [Nanoc](http://nanoc.ws/) - A static site generator, fit for building anything from a small personal blog to a large corporate web site. 825 | 826 | ## Template Engine 827 | 828 | * [Curly](https://github.com/zendesk/curly) - A template language that completely separates structure and logic. 829 | * [Haml](https://github.com/haml/haml) - HTML Abstraction Markup Language. 830 | * [Liquid](https://github.com/Shopify/liquid) - Safe, customer facing template language for flexible web apps. 831 | * [Mustache](https://github.com/mustache/mustache) - Logic-less Ruby templates. 832 | * [Slim](https://github.com/slim-template/slim) - A template language whose goal is reduce the syntax to the essential parts without becoming cryptic. 833 | * [Tilt](https://github.com/rtomayko/tilt) - Generic interface to multiple Ruby template engines. 834 | 835 | ## Testing 836 | 837 | * Frameworks 838 | * [RSpec](https://github.com/rspec/rspec) - Behaviour Driven Development for Ruby. 839 | * Formatters 840 | * [Emoji-RSpec](https://github.com/cupakromer/emoji-rspec) - Custom Emoji Formatters for RSpec. 841 | * [Fuubar](https://github.com/thekompanee/fuubar) - The instafailing RSpec progress bar formatter. 842 | * [Nyan Cat](https://github.com/mattsears/nyan-cat-formatter) - Nyan Cat inspired RSpec formatter! 843 | * [Bacon](https://github.com/chneukirchen/bacon) - A small RSpec clone. 844 | * [Capybara](http://jnicklas.github.io/capybara) - Acceptance test framework for web applications. 845 | * [Cucumber](https://github.com/cucumber/cucumber) - BDD that talks to domain experts first and code second. 846 | * [Cutest](https://github.com/djanowski/cutest) - Isolated tests in Ruby. 847 | * [Konacha](https://github.com/jfirebaugh/konacha) - Test your Rails application's JavaScript with the mocha test framework and chai assertion library. 848 | * [minitest](https://github.com/seattlerb/minitest) - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking. 849 | * [RR](https://github.com/rr/rr) - A test double framework that features a rich selection of double techniques and a terse syntax. 850 | * [shoulda-matchers](https://github.com/thoughtbot/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. 851 | * [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. 852 | * [Spork](https://github.com/sporkrb/spork) - A DRb server for testing frameworks (RSpec / Cucumber currently). 853 | * [Test::Unit](http://test-unit.github.io) - Test::Unit is a xUnit family unit testing framework for Ruby. 854 | * Fake Data 855 | * [Fabrication](http://fabricationgem.org/) - A simple and powerful object generation library. 856 | * [factory_girl](https://github.com/thoughtbot/factory_girl) - A library for setting up Ruby objects as test data. 857 | * [Fake Person](https://github.com/adamcooke/fake-person) - Uses some of the most popular given & surnames in the US & UK. 858 | * [faker](https://github.com/stympy/faker) - A library for generating fake data such as names, addresses, and phone numbers. 859 | * [ffaker](https://github.com/EmmanuelOga/ffaker) - A faster Faker, generates dummy data, rewrite of faker. 860 | * [Forgery](https://github.com/sevenwire/forgery) - Easy and customizable generation of forged data. 861 | * [Machinist](https://github.com/notahat/machinist) - Fixtures aren't fun. Machinist is. 862 | * Mock 863 | * [ActiveMocker](https://github.com/zeisler/active_mocker) - Generate mocks from ActiveRecord models for unit tests that run fast because they don’t need to load Rails or a database. 864 | * [TestXml](https://github.com/alovak/test_xml) - TestXml is a small extension for testing XML/HTML. 865 | * [WebMock](https://github.com/bblimke/webmock) - Library for stubbing and setting expectations on HTTP requests. 866 | * WebDrivers 867 | * [Selenium WebDriver](http://selenium.googlecode.com/git/docs/api/rb/index.html) - This gem provides Ruby bindings for WebDriver. 868 | * [API Taster](https://github.com/fredwu/api_taster) - A quick and easy way to visually test your Rails application's API. 869 | * [Watir](https://github.com/watir/watir/) - Web application testing in Ruby. 870 | * Extra 871 | * [Appraisal](https://github.com/thoughtbot/appraisal) - Appraisal integrates with bundler and rake to test your library against different versions of dependencies. 872 | * [Parallel Tests](https://github.com/grosser/parallel_tests) - Speedup Test::Unit + RSpec + Cucumber by running parallel on multiple CPUs (or cores). 873 | * [Ruby-JMeter](https://github.com/flood-io/ruby-jmeter) - A Ruby based DSL for building JMeter test plans. 874 | * [Spring](https://github.com/rails/spring) - Preloads your rails environment in the background for faster testing and Rake tasks. 875 | * [timecop](https://github.com/travisjeffery/timecop) - Provides "time travel" and "time freezing" capabilities, making it dead simple to test time-dependent code. 876 | * [vcr](https://github.com/vcr/vcr) - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests. 877 | * [Zapata](https://github.com/Nedomas/zapata) - Who has time to write tests? This is a revolutionary tool to make them write themselves. 878 | 879 | ## Third-party APIs 880 | 881 | * [databasedotcom](https://github.com/heroku/databasedotcom) - Ruby client for the Salesforce's Database.com and Chatter APIs. 882 | * [Dropbox](https://github.com/futuresimple/dropbox-api) - Dropbox API Ruby Client. 883 | * [facy](https://github.com/huydx/facy) - Command line power tool for facebook. 884 | * [fb_graph](https://github.com/nov/fb_graph) - A full-stack Facebook Graph API wrapper. 885 | * [flickr](https://github.com/RaVbaker/flickr) - A Ruby interface to the Flickr API. 886 | * [gitlab](https://github.com/NARKOZ/gitlab) - Ruby wrapper and CLI for the GitLab API. 887 | * [gmail](https://github.com/gmailgem/gmail) - A Rubyesque interface to Gmail, with all the tools you'll need. 888 | * [hipchat-rb](https://github.com/hipchat/hipchat-rb) - HipChat HTTP API Wrapper in Ruby with Capistrano hooks. 889 | * [instagram-ruby-gem](https://github.com/Instagram/instagram-ruby-gem) - The official gem for the Instagram REST and Search APIs. 890 | * [itunes_store_transporter](https://github.com/sshaw/itunes_store_transporter) - Ruby wrapper around Apple's iTMSTransporter program. 891 | * [linkedin](https://github.com/hexgnu/linkedin) - Provides an easy-to-use wrapper for LinkedIn's REST APIs. 892 | * [Octokit](http://octokit.github.io/octokit.rb) - Ruby toolkit for the GitHub API. 893 | * [Pusher](https://github.com/pusher/pusher-gem) - Ruby server library for the Pusher API. 894 | * [ruby-gmail](https://github.com/dcparker/ruby-gmail) - A Rubyesque interface to Gmail. 895 | * [ruby-trello](https://github.com/jeremytregunna/ruby-trello) - Implementation of the Trello API for Ruby. 896 | * [soundcloud-ruby](https://github.com/soundcloud/soundcloud-ruby) - Official SoundCloud API Wrapper for Ruby. 897 | * [t](https://github.com/sferik/t) - A command-line power tool for Twitter. 898 | * [tweetstream](https://github.com/tweetstream/tweetstream) - A simple library for consuming Twitter's Streaming API. 899 | * [twilio-ruby](https://github.com/twilio/twilio-ruby) - A module for using the Twilio REST API and generating valid TwiML. 900 | * [twitter](https://github.com/sferik/twitter) - A Ruby interface to the Twitter API. 901 | * [wikipedia](https://github.com/kenpratt/wikipedia-client) - Ruby client for the Wikipedia API. 902 | * [youtube_it](https://github.com/kylejginavan/youtube_it) - An object-oriented Ruby wrapper for the YouTube GData API. 903 | * [Yt](https://github.com/Fullscreen/yt) - An object-oriented Ruby client for YouTube API V3. 904 | 905 | ## Video 906 | 907 | * [Streamio FFMPEG](https://github.com/streamio/streamio-ffmpeg) - Simple yet powerful wrapper around the ffmpeg command for reading metadata and transcoding movies. 908 | 909 | ## Web Crawling 910 | 911 | * [anemone](https://github.com/chriskite/anemone) - Ruby library and CLI for crawling websites. 912 | * [LinkThumbnailer](https://github.com/gottfrois/link_thumbnailer) - Ruby gem that generates thumbnail images and videos from a given URL. Much like popular social website with link preview. 913 | * [Mechanize](https://github.com/sparklemotion/mechanize) - Mechanize is a ruby library that makes automated web interaction easy. 914 | * [MetaInspector](https://github.com/jaimeiniesta/metainspector) - Ruby gem for web scraping purposes. 915 | * [Upton](https://github.com/propublica/upton) - A batteries-included framework for easy web-scraping. 916 | * [Wombat](https://github.com/felipecsl/wombat) - Web scraper with an elegant DSL that parses structured data from web pages. 917 | 918 | ## Web Frameworks 919 | 920 | * [Camping](http://camping.io) - A web microframework which consistently stays at less than 4kB of code. 921 | * [Cuba](http://cuba.is) - A microframework for web development. 922 | * [Lotus](http://lotusrb.org) - It aims to bring back Object Oriented Programming to web development, leveraging on a stable API, a minimal DSL, and plain objects. 923 | * [Padrino](http://www.padrinorb.com) - A full-stack ruby framework built upon Sinatra. 924 | * [Pakyow](http://pakyow.com/) - 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. 925 | * [Ramaze](http://ramaze.net/) - A simple, light and modular open-source web application framework written in Ruby. 926 | * [Roda](http://roda.jeremyevans.net/) - A routing tree web framework. 927 | * [Ruby on Rails](http://rubyonrails.org) - A web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern. 928 | * [Sinatra](http://www.sinatrarb.com) - Classy web-development dressed in a DSL. 929 | * [Volt](https://github.com/voltrb/volt) - A Ruby web framework where your ruby code runs on both the server and the client. 930 | 931 | ## Web Servers 932 | 933 | * [Goliath](https://github.com/postrank-labs/goliath) - A non-blocking Ruby web server framework. 934 | * [Phusion Passenger](https://www.phusionpassenger.com) - Fast and robust web server and application server. 935 | * [Puma](https://github.com/puma/puma) - A modern, concurrent web server for Ruby. 936 | * [Rack](http://rack.github.io) - A common Ruby web server interface. By itself, it's just a specification and utility library, but all Ruby web servers implement this interface. 937 | * [Reel](https://github.com/celluloid/reel) - Celluloid::IO-powered web server. 938 | * [Thin](http://code.macournoyer.com/thin) - Tiny, fast & funny HTTP server. 939 | * [TorqueBox](https://github.com/torquebox/torquebox) - A Ruby application server built on JBoss AS7 and JRuby. 940 | * [Unicorn](http://unicorn.bogomips.org) - Rack HTTP server for fast clients and Unix. 941 | 942 | ## WebSocket 943 | 944 | * [Faye](http://faye.jcoglan.com/ruby.html) - A set of tools for simple publish-subscribe messaging between web clients. 945 | * [Firehose](https://github.com/polleverywhere/firehose) - Build realtime Ruby web applications. 946 | * [Rails Realtime](https://github.com/liamks/rails-realtime) - Adding Real-Time To Your RESTful Rails App. 947 | * [Slanger](https://github.com/stevegraham/slanger) - Open Pusher implementation compatible with Pusher libraries. 948 | * [Sync](https://github.com/chrismccord/sync) - Real-time Rails Partials. 949 | * [Websocket-Rails](https://github.com/websocket-rails/websocket-rails) - Creates a built in WebSocket server inside a Rails application with ease, and also support streaming HTTP. 950 | 951 | # Services and Apps 952 | 953 | * [AppSignal](https://appsignal.com) - Better monitoring for your Rails applications. 954 | * [CodeClimate](https://codeclimate.com) - Quality & security analysis for Ruby on Rails and Javascript. 955 | * [Gemnasium](https://gemnasium.com) - Monitor your project dependencies and alert you about updates and security vulnerabilities. 956 | * [GitHub](https://github.com) - Powerful collaboration, code review, and code management for open source and private projects. 957 | * [Gitlab CI](https://about.gitlab.com/gitlab-ci/) - Integrate with your GitLab to run tests for your projects. 958 | * [GitLab](https://about.gitlab.com) - Open source software to collaborate on code. 959 | * [Hakiri](https://hakiri.io) - Ship Secure Ruby Apps. 960 | * [Honeybadger](https://www.honeybadger.io/) - Exception, uptime, and performance monitoring for Ruby. 961 | * [HoundCI](https://houndci.com) - Review your Ruby code for style guide violations. 962 | * [HuBoard](https://huboard.com) - Kanban board for GitHub issues. 963 | * [Inch CI](http://inch-ci.org/) - Documentation badges for Ruby projects. 964 | * [Omniref](https://www.omniref.com) - A comprehensive Ruby documentation site. 965 | * [PullReview](https://pullreview.com) - Automated code review for Ruby and Rails - from style to security. 966 | * [SemaphoreCI](https://semaphoreapp.com/) - Hosted continuous integration and deployment service for open source and private projects. 967 | * [Traveling Ruby](http://phusion.github.io/traveling-ruby/) - Traveling Ruby lets you create self-contained Ruby app packages for Linux and OS X. 968 | * [Travis CI.com](https://travis-ci.com) - Take care of running your tests and deploying your private apps. 969 | * [Travis CI.org](https://travis-ci.org) - A distributed build system for the open source community. 970 | 971 | # Resources 972 | 973 | * [GemBundle](http://www.gembundle.com) - A place to discover new Ruby Gems. 974 | * [GitHub Trending](https://github.com/trending?l=ruby) - Find what repositories the GitHub community is most excited about today. 975 | * [Green Ruby News](http://greenruby.org) - A feed of fresh links of the week about ruby, javascript, webdev and devops. 976 | * [Practicing Ruby](https://practicingruby.com) - Delightful lessons for dedicated programmers. 977 | * [Ruby5](http://ruby5.envylabs.com) - The latest news in the Ruby and Rails community. 978 | * [Ruby Bookmarks](https://github.com/dreikanter/ruby-bookmarks) - Ruby and Ruby on Rails bookmarks collection. 979 | * [RubyDaily](http://rubydaily.org) - Community driven news. 980 | * [RubyFlow](http://www.rubyflow.com) - Ruby Programming Community Link Blog. 981 | * [Ruby Weekly](http://rubyweekly.com) - A free, once–weekly e-mail round-up of Ruby news and articles. 982 | * [The Ruby Toolbox](https://www.ruby-toolbox.com) - 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. 983 | 984 | # Other Awesome Lists 985 | 986 | Other amazingly awesome lists can be found in the [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) list. 987 | --------------------------------------------------------------------------------