A collection of awesome Ruby libraries, tools, frameworks and software http://awesome-ruby.com
Email
PDF
E-Mail
A categorized community-driven collection of awesome Ruby libraries, tools, frameworks and software. The essential Ruby to build modern Apps and Web Apps.
Sharing, suggestions and contributions are always welcome! Please take a look at the contribution guidelines and quality standard first.
Thanks to all contributors, you're awesome and this wouldn't be possible without you!
- Awesome Ruby
- Abstraction
- A/B Testing
- Admin Interface
- Analytics
- API Builder
- Assets
- Authentication and OAuth
- Authorization
- Automation
- Caching
- CLI Builder
- CLI Utilities
- Cloud
- CMS
- Code Analysis and Metrics
- Coding Style Guides
- Concurrency
- Configuration
- Core Extensions
- Country Data
- CRM
- Dashboards
- Data Processing and ETL
- Data Visualization
- Database Drivers
- Database Tools
- Date and Time Processing
- Debugging Tools
- Decorators
- DevOps Tools
- Documentation
- E-Commerce and Payments
- Ebook
- Encryption
- Environment Management
- Error Handling
- File Upload
- Form Builder
- Game Development
- Geolocation
- Git Tools
- GUI
- HTML/XML Parsing
- HTTP
- Image Processing
- Implementations/Compilers
- Internationalization
- IRB
- Logging
- Machine Learning
- Markdown Processors
- Misc
- Mobile Development
- Money
- Music and Sound
- Natural Language Processing
- Navigation
- ORM/ODM
- ORM/ODM Extensions
- Package Management
- Pagination
- Performance Monitoring
- Presentation Programs
- Process Monitoring
- Processes and Threads
- Profiler
- Queue
- Rails Application Generators
- Robotics
- RSS
- Scheduling
- Scientific
- Search
- Security
- SEO
- Social Networking
- Spreadsheets and Documents
- State Machines
- Static Site Generation
- Template Engine
- Testing
- Third-party APIs
- Video
- Web Crawling
- Web Frameworks
- Web Servers
- WebSocket
- Services and Apps
- Resources
- Other Awesome Lists
Abstraction
- ActiveInteraction - Manage application specific business logic.
- Apotomo - Based on Cells, Apotomo gives you widgets and encapsulation, bubbling events, AJAX page updates, rock-solid testing and more.
- Cells - View Components for Rails.
- Decent Exposure - A helper for creating declarative interfaces in controllers.
- dry-rb - dry-rb is a collection of next-generation Ruby libraries, each intended to encapsulate a common task.
- Interactor - Interactor provides a common interface for performing complex interactions in a single request.
- Light Service - Series of Actions with an emphasis on simplicity.
- Mutations - Compose your business logic into commands that sanitize and validate input.
- Responders - A set of Rails responders to dry up your application.
- Surrounded - Encapsulated related objects in a single system to add behavior during runtime. Extensible implementation of DCI.
- 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.
- wisper - A micro library providing Ruby objects with Publish-Subscribe capabilities.
A/B Testing
- Rollout - Feature flippers.
- Split - Rack Based AB testing framework.
- Vanity - an A/B testing framework for Rails that is datastore agnostic.
Admin Interface
- ActiveAdmin - A Ruby on Rails framework for creating elegant backends for website administration.
- Administrate - A Rails engine that helps you put together a super-flexible admin dashboard, by Thoughtbot.
- bhf - A simple to use Rails-Engine-Gem that offers an admin interface for trusted user.
- Faalis - A Rails engine which provides a robust platform to develop web applications. It contains a very simple yet powerful admin/dashboard interface too.
- RailsAdmin - A Rails engine that provides an easy-to-use interface for managing your data.
- Typus - Ruby on Rails control panel to allow trusted users edit structured content.
- Upmin Admin - A framework for creating powerful Ruby on Rails admin backends with minimal effort.
Analytics
- Ahoy - A solid foundation to track visits and events in Ruby, JavaScript, and native apps.
- Analytical - Gem for managing multiple analytics services in your rails app.
- Gabba - Simple way to send server-side notifications to Google Analytics.
- Impressionist - Rails Plugin that tracks impressions and page views.
- Legato - Model analytics reports and queries against the official Google Analytics Reporting API.
- Rack::Tracker - Rack middleware that can be hooked up to multiple services and exposing them in a unified fashion.
- Staccato - Track analytics into the official Google Analytics Collection API.
API Builder
- ActiveModel::Serializers - JSON serialization of objects.
- Blanket - A dead simple API wrapper.
- Crêpe - The thin API stack.
- Grape - An opinionated micro-framework for creating REST-like APIs in Ruby.
- Her - an ORM that maps REST resources to Ruby objects. Designed to build applications that are powered by a RESTful API instead of a database.
- jbuilder - Create JSON structures via a Builder-style DSL.
- JSONAPI::Resources - JSONAPI::Resources, or "JR", provides a framework for developing a server that complies with the JSON API specification.
- Jsonite - A tiny, HAL-compliant JSON presenter for your APIs.
- Pliny - Opinionated template Sinatra app for writing excellent APIs in Ruby.
- rabl - General ruby templating with json, bson, xml, plist and msgpack support.
- Rails::API - Rails for API only applications.
- Roar - Resource-Oriented Architectures in Ruby.
- Version Cake - An unobtrusive way to version APIs in your Rails app.
- versionist - A plugin for versioning Rails based RESTful APIs.
Assets
- Compass - Compass is a Stylesheet Authoring Environment that makes your website design simpler to implement and easier to maintain.
- Emoji - Exposes the Phantom Open Emoji library unicode/image assets and APIs for working with them.
- Less Rails - The dynamic stylesheet language for the Rails asset pipeline.
- Less - Leaner CSS, in your browser or Ruby.
- Sass - Sass makes CSS fun again.
- Management:
- Asset Sync - Synchronises Assets between Rails and S3.
- Autoprefixer - Parse CSS and add vendor prefixes to rules by Can I Use.
- bower-rails - Bower support for Rails projects.
- Rails Assets - Bundler to Bower proxy.
- Sprockets - Rack-based asset packaging system.
- Torba - Bower-less bundler for Sprockets.
- Development:
- Quiet Assets - Mute assets pipeline log messages.
Authentication and OAuth
- Authlogic - Authlogic is a clean, simple, and unobtrusive ruby authentication solution.
- Clearance - Small and simple email & password based authenticaton for Rails.
- Devise - A flexible authentication solution for Rails based on Warden.
- JWT - JSON Web Token implementation in Ruby.
- Knock - Seamless JWT authentication for Rails API.
- OmniAuth - A library that standardizes multi-provider authentication utilizing Rack middleware.
- Rodauth - Authentication and account management framework for Rack applications.
- Shield - Authentication protocol for use in your routing and model context.
- Sorcery - Magical Authentication for Rails 3 and 4.
- warden - General Rack Authentication Framework.
- OAuth:
- Doorkeeper - An OAuth2 provider for Rails.
- OAuth2 - A Ruby wrapper for the OAuth 2.0 protocol.
Authorization
- acl9 - Acl9 is a role-based authorization system that provides a concise DSL for securing your Rails application.
- AccessGranted - Multi-role and whitelist based authorization gem for Rails.
- Authority - ORM-neutral way to authorize actions in your Rails app.
- CanCanCan - Continuation of CanCan, an authorization Gem for Ruby on Rails.
- Declarative Authorization - An authorization Rails plugin using a declarative DSL for specifying authorization rules in one place.
- Pundit - Minimal authorization through OO design and pure Ruby classes.
Automation
- Huginn - Huginn is a system for building agents that perform automated tasks for you online.
Caching
- Action caching for Action Pack - Action caching for Action Pack.
- Dalli - A high performance pure Ruby client for accessing memcached servers.
- Garner - A set of Rack middleware and cache helpers that implement various caching strategies.
- Kashmir - Kashmir is a Ruby DSL that makes serializing and caching objects a snap.
- Readthis - High performance, pooled, ActiveSupport compliant caching with Redis.
- Record Cache - Cache Active Model Records in Rails 3.
- Second Level Cache - Write-Through and Read-Through caching library for ActiveRecord 4.
CLI Builder
- Clamp - A command-line application framework.
- Cocaine - A small library for doing (command) lines.
- Commander - The complete solution for Ruby command-line executables.
- formatador - STDOUT text formatting.
- GLI - Git-Like Interface Command Line Parser.
- Main - A class factory and DSL for generating command line programs real quick.
- Rake - A make-like build utility for Ruby.
- Ru - Ruby in your shell.
- Slop - Simple Lightweight Option Parsing.
- Thor - A toolkit for building powerful command-line interfaces.
- Trollop - A commandline option parser for Ruby that just gets out of your way.
- TTY - Toolbox for developing CLI clients.
CLI Utilities
- Paint - Simple and fast way to set ANSI terminal colors.
- Pastel - Terminal output styling with intuitive and clean API.
- Ruby/Progressbar - The most flexible text progress bar library for Ruby.
Cloud
- AWS SDK for Ruby - The official AWS SDK for Ruby.
- browse-everything - Multi-provider Rails engine providing access to files in cloud storage.
- Fog - The Ruby cloud services library.
CMS
- Alchemy CMS - A powerful, userfriendly and flexible Open Source Rails CMS.
- Camaleon CMS - A dynamic and advanced content management system based on Ruby on Rails 4.
- Comfortable Mexican Sofa - A powerful Rails 4 CMS Engine.
- LocomotiveCMS - A simple but powerful CMS based on Liquid templates and Mongodb database.
- Publify - A self hosted Web publishing platform on Rails.
- Radiant - A no-fluff, open source content management system designed for small teams.
- Refinery CMS - An open source Ruby on Rails content management system for Rails 3 and 4.
- Spina CMS - A beautiful CMS for Rails developers.
- Storytime - Rails 4+ CMS and bloging engine, with a core focus on content.
Code Analysis and Metrics
- Barkeep - Barkeep is a fast, fun way to review code. Engineering organizations can use it to keep the bar high.
- Brakeman - A static analysis security vulnerability scanner for Ruby on Rails applications.
- Cane - Code quality threshold checking as part of your build.
- Coverband - Rack middleware to help measure production code coverage.
- Fasterer - Make your Rubies go faster with this command line tool highly inspired by fast-ruby and Sferik's talk at Baruco Conf.
- Flay - Flay analyzes code for structural similarities. Differences in literal values, variable, class, method names, whitespace, programming style, braces vs do/end, etc are all ignored. Making this totally rad.
- Flog - Flog reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in.
- fukuzatsu - Complexity analysis tool with a rich web front-end.
- MetricFu - A fist full of code metrics.
- Pippi - A utility for finding suboptimal Ruby class API usage, focused on runtime analysis.
- Pronto - Quick automated code review of your changes.
- rails_best_practices - A code metric tool for rails projects.
- Reek - Code smell detector for Ruby.
- Rubocop - A static code analyzer, based on the community Ruby style guide.
- Rubycritic - A Ruby code quality reporter.
- Scientist - A Ruby library for carefully refactoring critical paths.
- SimpleCov - Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites.
- Traceroute - A Rake task gem that helps you find the dead routes and actions for your Rails 3+ app
Coding Style Guides
- Best-Ruby - Ruby Tricks, Idiomatic Ruby, Refactoring & Best Practices.
- fast-ruby - Writing Fast Ruby. Collect Common Ruby idioms.
- Rails style guide - Community-driven Rails best practices and style for Rails 3 and 4.
- RSpec style guide - Better Specs { rspec guidelines with ruby }.
- Ruby style guide - Community-driven Ruby coding style.
Concurrency
- Celluloid - Actor-based concurrent object framework for Ruby.
- Concurrent Ruby - Modern concurrency tools including agents, futures, promises, thread pools, supervisors, and more. Inspired by Erlang, Clojure, Scala, Go, Java, JavaScript, and classic concurrency patterns.
- EventMachine - An event-driven I/O and lightweight concurrency library for Ruby.
Configuration
- Configatron - Simple and feature rich configuration system for Ruby apps.
- Configus - Helps you easily manage environment specific settings.
- dotenv - Loads environment variables from
.env
. - Econfig - Flexible configuration for Rails applications.
- ENVied - ensure presence and type of your app's ENV-variables
- Figaro - Simple, Heroku-friendly Rails app configuration using
ENV
and a single YAML file. - Global - Provides accessor methods for your configuration data.
- RailsConfig - Multi-environment yaml settings for Rails3.
Core Extensions
- ActiveSupport - A collection of utility classes and standard library extensions.
- Addressable - Addressable is a replacement for the URI implementation that is part of Ruby's standard library. It more closely conforms to RFC 3986, RFC 3987, and RFC 6570 (level 4), providing support for IRIs and URI templates.
- Finishing Moves - Small, focused, incredibly useful methods added to core Ruby classes. Includes the endlessly useful
nil_chain
. - Hamster - Efficient, immutable, and thread-safe collection classes for Ruby.
- Hanami::Utils - Lightweight, non-monkey-patch class utilities for Hanami and Ruby app.
- Ruby Facets - The premiere collection of general purpose method extensions and standard additions for Ruby.
- Attributes
- ActiveAttr - What ActiveModel left out.
- FastAttributes - FastAttributes adds attributes with their types to the class.
- Virtus - Attributes on Steroids for Plain Old Ruby Objects.
- Hash
- Hashie - A collection of tools that extend Hashes and make them more useful.
Country Data
- Carmen - A repository of geographic regions.
- Countries - All sorts of useful information about every country packaged as pretty little country objects.
- GlobalPhone - Parse, validate, and format phone numbers in Ruby using Google's libphonenumber database.
- i18n_data - country/language names and 2-letter-code pairs, in 85 languages, for country/language i18n.
- normalize_country - Convert country names and codes to a standard, includes a conversion program for XMLs, CSVs and DBs.
CRM
- Fat Free CRM - An open source Ruby on Rails based customer relationship management platform.
Dashboards
- Dashing - A Sinatra based framework that lets you build beautiful dashboards.
- Dashing-Rails - The exceptionally handsome dashboard framework for Rails.
Data Processing and ETL
- Kiba - A lightweight data processing / ETL framework for Ruby.
Data Visualization
- Chartkick - Create beautiful Javascript charts with one line of Ruby. Works with Rails, Sinatra and most browsers (including IE 6).
- GeoPattern - Create beautiful generative geometric background images from a string.
- LazyHighCharts - 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.
- RailRoady - Ruby on Rails 3/4 model and controller UML class diagram generator.
- Rails Erd - Generate Entity-Relationship Diagrams for Rails applications.
- Ruby/GraphViz - Ruby interface to the GraphViz graphing tool.
Database Drivers
- Cassandra Driver - A pure ruby driver for Apache Cassandra with asynchronous io and configurable load balancing, reconnection and retry policies.
- DataObjects - An attempt to rewrite existing Ruby database drivers to conform to one, standard interface.
- mongo-ruby-driver - MongoDB Ruby driver.
- moped - A MongoDB driver for Ruby.
- mysql2 - A modern, simple and very fast Mysql library for Ruby (binding to libmysql).
- Neography - A thin Ruby wrapper to the Neo4j Rest API.
- Redic - Lightweight Redis Client.
- redis-rb - A Ruby client that tries to match Redis' API one-to-one, while still providing an idiomatic interface.
- ruby-pg - Ruby interface to PostgreSQL 8.3 and later.
- SQLite3 - Ruby bindings for the SQLite3 embedded database.
- SQL Server - The SQL Server adapter for ActiveRecord.
- TinyTDS - FreeTDS bindings for Ruby using DB-Library.
Database Tools
- Database Cleaner - Database Cleaner is a set of strategies for cleaning your database in Ruby.
- Foreigner - Adds foreign key helpers to migrations and correctly dumps foreign keys to schema.rb.
- Large Hadron Migrator - Online MySQL schema migrations without locking the table.
- Lol DBA - Scan your models and displays a list of columns that probably should be indexed.
- PgHero - Postgres insights made easy.
- Rails DB - Database Viewer and SQL Query Runner.
- Scenic - Versioned database views for Rails.
- SchemaPlus - SchemaPlus provides a collection of enhancements and extensions to ActiveRecord
- Seedbank - Seedbank allows you to structure your Rails seed data instead of having it all dumped into one large file.
- Seed dump - Rails 4 task to dump (parts) of your database to db/seeds.rb.
- Seed Fu - Advanced seed data handling for Rails.
- Upsert - Upsert on MySQL, PostgreSQL, and SQLite3. Transparently creates functions (UDF) for MySQL and PostgreSQL; on SQLite3, uses INSERT OR IGNORE.
- SecondBase - Seamless second database integration for Rails. SecondBase provides support for Rails to manage dual databases by extending ActiveRecord tasks that create, migrate, and test your application.
Date and Time Processing
- biz - Time calculations using business hours.
- business_time - Support for doing time math in business hours and days.
- ByStar - Find ActiveRecord objects by year, month, fortnight, week and more!
- Chronic - A natural language date/time parser written in pure Ruby.
- groupdate - The simplest way to group temporal data in ActiveRecord, arrays and hashes.
- ice_cube - A date recurrence library which allows easy creation of recurrence rules and fast querying.
- local_time - Rails Engine for cache-friendly, client-side local time.
- time-lord - Adds extra functionality to the time class.
- time_diff - Calculates the difference between two time.
- TZinfo - Provides daylight savings aware transformations between times in different timezones.
- validates_timeliness - Date and time validation plugin for ActiveModel and Rails.
- yymmdd - Tiny DSL for idiomatic date parsing and formatting.
Debugging Tools
- Byebug - A simple to use, feature rich debugger for Ruby 2.
- did_you_mean - Adds class, method & attributute suggestions to error messages.
- Pry Byebug - Pry navigation commands via byebug.
- Rails Footnotes - Rails footnotes displays footnotes in your application for easy debugging, such as sessions, request parameters, cookies, filter chain, routes, queries, etc.
- Xray - A development tool that reveals your UI's bones.
Decorators
- Draper - Draper adds an object-oriented layer of presentation logic to your Rails application.
- ShowFor - Quickly show a model information with I18n features. Like form_for for displaying model data.
DevOps Tools
- Backup - Provides an elegant DSL in Ruby for performing backups on UNIX-like systems.
- Blender - A modular system orchestration framework with pluggable driver and host discovery.
- BOSH - Cloud Foundry BOSH is an open source tool chain for release engineering, deployment and lifecycle management of large scale distributed services.
- Capistrano - A remote server automation and deployment tool written in Ruby.
- Centurion - A mass deployment tool for Docker fleets.
- Chef - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
- Deployinator - Deployinator is a deployment framework extracted from Etsy.
- Einhorn - Einhorn will open one or more shared sockets and run multiple copies of your process. You can seamlessly reload your code, dynamically reconfigure Einhorn, and more.
- Kochiku - Kochiku is a distributed platform for test automation.
- Lita - ChatOps for Ruby: A pluggable chat bot framework usable with any chat service.
- Logstash - Logs/event transport, processing, management, search.
- Mina - Really fast deployer and server automation tool.
- Puppet - An automated administrative engine for your Linux, Unix, and Windows systems, performs administrative tasks (such as adding users, installing packages, and updating server configurations) based on a centralized specification.
- Request-log-analyzer - Create reports based on your log files. Supports Rails, Apache, MySQL, Delayed::Job, and other formats.
- Rubber - The rubber plugin enables relatively complex multi-instance deployments of RubyOnRails applications to Amazon's Elastic Compute Cloud (EC2).
- SSHKey - SSH private and public key generator in pure Ruby (RSA & DSA).
- Ruby-LXC - Native ruby binding for Linux containers.
- Vagrant - Create and configure lightweight, reproducible, and portable development environments.
Documentation
- Annotate - Add a comment documenting the current schema to the top or bottom of each of your ActiveRecord models.
- Apipie - Rails API documentation and display tool using Ruby syntax.
- Asciidoctor - A fast, Ruby-based text processor & publishing toolchain for converting AsciiDoc to HTML5, DocBook, EPUB3, PDF & more.
- Documentation - A Rails engine to provider the ability to add documentation to a Rails application.
- GitHub Changelog Generator - Automatically generate change log from your tags, issues, labels and pull requests on GitHub.
- grape-swagger - Add swagger compliant documentation to your Grape API.
- Hanna - An RDoc formatter built with simplicity, beauty and ease of browsing in mind.
- Hologram - A markdown based documentation system for style guides. It parses comments in your CSS and helps you turn them into a beautiful style guide.
- Inch - Inch is a documentation measurement and evalutation tool for Ruby code, based on YARD.
- RDoc - RDoc produces HTML and command-line documentation for Ruby projects.
- rspec_api_documentation - Automatically generate API documentation from RSpec.
- YARD - YARD enables the user to generate consistent, usable documentation that can be exported to a number of formats very easily.
E-Commerce and Payments
- Active Merchant - A simple payment abstraction library extracted from Shopify.
- Braintree - Braintree Ruby bindings.
- credit_card_validations - A ruby gem for validating credit card numbers, generating valid numbers, Luhn checks.
- Koudoku - Robust subscription support for Ruby on Rails apps using Stripe, including out-of-the-box pricing pages, payment pages, and subscription management.
- Payola - Drop-in Rails engine for accepting payments with Stripe.
- Paypal Merchant SDK - Official Paypal Merchant SDK for Ruby.
- Piggybak - Modular, Extensible open-source ecommerce solution for Ruby on Rails.
- ROR Ecommerce - A Rails e-commerce platform.
- Shoppe - A Rails-based e-commerce platform which allows you to easily introduce a catalogue-based store into your Rails 4 applications.
- Solidus - An open source, eCommerce application for high volume retailers.
- Spree - Spree is a complete open source e-commerce solution for Ruby on Rails.
- stripe-ruby - Stripe Ruby bindings.
Ebook
- Bookshop - Bookshop is a an open-source agile book development and publishing framework for authors, editors.
- Eeepub - EeePub is a Ruby ePub generator.
- Gepub - A generic EPUB library for Ruby : supports EPUB 3.
- Git Scribe - Basically the best way to write an ebook.
- Mobi - A Ruby way to read MOBI format metadata.
- Review - Re:VIEW is flexible document format/conversion system.
- Griddler - Simplify receiving email in Rails
- Incoming - Incoming! helps you receive email in your Rack apps.
- LetterOpener - Preview mail in the browser instead of sending.
- Mail - A Really Ruby Mail Library.
- MailCatcher - Catches mail and serves it through a dream.
- MailForm - Send e-mail straight from forms in Rails with I18n, validations, attachments and request information.
- Mailman - An incoming mail processing microframework in Ruby.
- Markerb - Allows you to render multipart e-mails from a single template written in Markdown.
- Pony - The express way to send mail from Ruby.
- premailer-rails - CSS styled emails without the hassle.
- Roadie - Roadie tries to make sending HTML emails a little less painful by inlining stylesheets and rewriting relative URLs for you inside your emails.
- Sup - A curses threads-with-tags style email client.
Encryption
- Symmetric Encryption - Transparently encrypt ActiveRecord, Mongoid, and MongoMapper attributes. Encrypt passwords in configuration files. Encrypt entire files at rest.
Environment Management
- chruby - Change your current Ruby. No shims, no crazy options or features, ~90 LOC.
- fry - Simple ruby version manager for fish.
- gem_home - A tool for changing your $GEM_HOME.
- rbenv - Use rbenv to pick a Ruby version for your application and guarantee that your development environment matches production.
- ruby-build - Compile and install Ruby.
- ruby-install - Installs Ruby, JRuby, Rubinius, MagLev or MRuby.
- RVM - RVM is a command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems.
- Tokaido - 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.
Error Handling
- Airbrake - The official Airbrake library for Ruby on Rails (and other Rack based frameworks).
- Better Errors - Better error page for Rack apps.
- Bugsnag - Error monitoring for Rails, Sinatra, Rack, and plain Ruby apps.
- Errbit - The open source, self-hosted error catcher.
- Exception Handler - Custom error pages.
- Exception Notification - A set of notifiers for sending notifications when errors occur in a Rack/Rails application.
- Honeybadger - Exception, uptime, and performance monitoring for Ruby.
- Nesty - Nested exceptions for Ruby.
- Raven Ruby - Raven is a Ruby client for Sentry.
File Upload
- CarrierWave - Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks.
- DragonFly - A Ruby gem for on-the-fly processing - suitable for image uploading in Rails, Sinatra and much more!.
- PaperClip - Easy file attachment management for ActiveRecord.
- rack-secure-upload - Upload files securely.
- 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.
- Shrine - Toolkit for handling file uploads in Ruby
- attache - Standalone image and file server to decouple your app from file management concerns: https://attache-demo.herokuapp.com.
Form Builder
- Abracadabra - The gem that swaps out text with a fully-compliant Rails form in one click.
- Formtastic - A Rails form builder plugin with semantically rich and accessible markup.
- Rails Bootstrap Forms - Rails form builder that makes it super easy to create beautiful-looking forms with Twitter Bootstrap 3+.
- Simple Form - Rails forms made easy.
- Nested Forms:
- 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.
- Cocoon - Dynamic nested forms using jQuery made easy; works with formtastic, simple_form or default forms.
- 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.
Game Development
- Gosu - A 2D game development library for the Ruby and C++ programming languages.
- Yeah - Practical Ruby video game framework.
Geolocation
- Geocoder - A complete geocoding solution for Ruby. With Rails it adds geocoding (by street or IP address), reverse geocoding (find street address based on given coordinates), and distance queries.
- 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.
- Geokit - Geokit gem provides geocoding and distance/heading calculations.
- Google Maps for Rails - Enables easy Google map + overlays creation in Ruby apps.
- rgeo - Geospatial data library. Spatial data types, geometric and spherical calculations, and WKT/WKB serialization.
Git Tools
- ginatra - A web frontend for Git repositories.
- git-auto-bisect - Find the commit that broke master.
- git_reflow - An automated quality control workflow for Agile teams.
- git-spelunk - Dig through git blame history.
- git-up - Fetch and rebase all locally-tracked remote branches.
- git-whence - Find which merge a commit came from.
- Overcommit - A fully configurable and extendable Git hook manager.
- Rugged - Ruby bindings to libgit2.
GUI
- qtbindings - Allows the QT Gui toolkit to be used from Ruby.
- RubyGnome2 - Ruby language bindings for the GNOME 2.0 development environment.
- Shoes - Shoes makes building little graphical programs for Mac, Windows, and Linux super simple.
HTML/XML Parsing
- HappyMapper - Object to XML mapping library, using Nokogiri.
- HTML::Pipeline - HTML processing filters and utilities.
- Nokogiri - An HTML, XML, SAX, and Reader parser with XPath and CSS selector support.
- 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.
- Ox - A fast XML parser and Object marshaller.
- ROXML - Custom mapping and bidirectional marshalling between Ruby and XML using annotation-style class methods, via Nokogiri or LibXML.
HTTP
- excon - Usable, fast, simple Ruby HTTP 1.1. It works great as a general HTTP(s) client and is particularly well suited to usage in API clients.
- Faraday - 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.
- Http Client - Gives something like the functionality of libwww-perl (LWP) in Ruby.
- HTTP - The HTTP Gem: a simple Ruby DSL for making HTTP requests.
- httparty - Makes http fun again!
- Http-2 - Pure Ruby implementation of HTTP/2 protocol
- Patron - Patron is a Ruby HTTP client library based on libcurl.
- RESTClient - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.
- Savon - Savon is a SOAP client for the Ruby programming language.
- Sawyer - Secret user agent of HTTP, built on top of Faraday.
- Spyke - Interact with REST services in an ActiveRecord-like manner.
- Typhoeus - Typhoeus wraps libcurl in order to make fast and reliable requests.
Image Processing
- MiniMagick - A ruby wrapper for ImageMagick or GraphicsMagick command line.
- Phasion - Ruby wrapper around pHash, the perceptual hash library for detecting duplicate multimedia files.
- PSD.rb - Parse Photoshop files in Ruby with ease.
- RMagick - RMagick is an interface between Ruby and ImageMagick.
- Skeptick - Skeptick is an all-purpose DSL for building and running ImageMagick commands.
Implementations/Compilers
- JRuby - A Java implementation of the Ruby language.
- MRuby - Lightweight Ruby. Can be linked and embedded in your application.
- Opal - Ruby to Javascript compiler.
- Rubinius - An implementation of the Ruby programming language. Rubinius includes a bytecode virtual machine, Ruby syntax parser, bytecode compiler, generational garbage collector, just-in-time (JIT) native machine code compiler, and Ruby Core and Standard libraries.
Internationalization
- FastGettext - Ruby internationalization tool with less memory, simple, clean namespace and threadsafe.
- Globalize - Globalize builds on the I18n API in Ruby on Rails to add model translations to ActiveRecord models.
- i18n-tasks - Manage missing and unused translations with the awesome power of static analysis.
- i18n - Ruby Internationalization and localization solution.
- r18n - Advanced i18n library for Rails, Sinatra, desktop apps, models, works well with complex languages like Russian.
- twitter-cldr-rb - Ruby implementation of the ICU (International Components for Unicode) that uses the Common Locale Data Repository to format dates, plurals, and more.
IRB
- Hirb - A mini view framework for console/irb that's easy to use, even while under its influence. Console goodies include a no-wrap table, auto-pager, tree and menu.
- irbtools - Improvements for Ruby's IRB.
- Pry - A powerful alternative to the standard IRB shell for Ruby.
Logging
- Cabin - Structured+contextual logging experiments in Ruby.
- Fluentd - Fluentd collects events from various data sources and writes them to files, database or other types of storages.
- HttpLog - Log outgoing HTTP requests.
- Log4r - Log4r is a comprehensive and flexible logging library for use in Ruby programs.
- Logging - A flexible logging library for use in Ruby programs based on the design of Java's log4j library.
- Lograge - An attempt to tame Rails' default policy to log everything.
- MongoDB Logger - MongoDB logger for Rails.
- Scrolls - Simple logging.
- Semantic Logger - Scalable, next generation enterprise logging for Ruby.
- Yell - Your Extensible Logging Library.
Machine Learning
- PredictionIO Ruby SDK - The PredictionIO Ruby SDK provides a convenient API to quickly record your users' behavior and retrieve personalized predictions for them.
- rb-libsvm - Ruby language bindings for LIBSVM. SVM is a machine learning and classification algorithm.
- Ruby Datumbox Wrapper - It's a simple Ruby Datumbox Wrapper. At the moment the API currently allows you to build applications that make use of machine learning algorithms.
- weka - Machine learning and data mining algorithms for JRuby.
Markdown Processors
- kramdown - Kramdown is yet-another-markdown-parser but fast, pure Ruby, using a strict syntax definition and supporting several common extensions.
- Maruku - A pure-Ruby Markdown-superset interpreter.
- Redcarpet - A fast, safe and extensible Markdown to (X)HTML parser.
- word-to-markdown - Gem to convert Microsoft Word documents to Markdown.
Misc
- auto_html - Rails extension for transforming URLs to appropriate resource (image, link, YouTube, Vimeo video...)
- Betty - Friendly English-like interface for your command line. Don't remember a command? Ask Betty.
- Bh - Bootstrap Helpers for Ruby.
- Clipboard - Access to the system clipboard on Linux, MacOS and Windows.
- Device Detector - A precise and fast user agent parser and device detector, backed by the largest and most up-to-date user agent database.
- Diffy - Easy Diffing With Ruby.
- Foreman - Manage Procfile-based applications.
- Gollum - A simple, Git-powered wiki with a sweet API and local frontend.
- 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.
- Guard - A command line tool to easily handle events on file system modifications.
- JsonCompare - Returns the difference between two JSON files.
- play ► - Your company's dj.
- PluggableJs - Page-specific javascript for Rails applications with the ability of passing data from a controller.
- pygments.rb - A Ruby wrapper for the Python pygments syntax highlighter.
- QR-code - A Ruby library that encodes QR Codes
- Rouge - A pure Ruby code highlighter that is compatible with Pygments.
- RubyDNS - A high-performance DNS server which can be easily integrated into other projects or used as a stand-alone daemon.
- Ruby Operators - A webpage showing awesome names for different Ruby operators.
Mobile Development
- dryrun - Try any Android library on your smartphone directly from the command line.
- fastlane - Connect all iOS deployment tools into one streamlined workflow.
- Ruboto - A platform for developing full stand-alone apps for Android using the Ruby language and libraries.
- RubyMotion - A revolutionary toolchain that lets you quickly develop and test full-fledged native iOS and OS X applications for iPhone, iPad, Mac and Android.
- Ruby Push Notifications - iOS, Android and Windows Phone Push notifications made easy.
- Rpush - The push notification service for Ruby which supports Apple Push Notification Service, Google Cloud Messaging, Amazon Device Messaging and Windows Phone Push Notification Service.
Money
- eu_central_bank - A gem that calculates the exchange rate using published rates from European Central Bank.
- Monetize - A library for converting various objects into Money objects.
- Money - A Ruby Library for dealing with money and currency conversion.
Music and Sound
- Sonic Pi - A live coding synth for everyone originally designed to support computing and music lessons.
Natural Language Processing
- Parslet - A small Ruby library for constructing parsers in the PEG (Parsing Expression Grammar) fashion.
- pocketsphinx-ruby - Ruby speech recognition with Pocketsphinx.
- Pragmatic Segmenter - Pragmatic Segmenter is a rule-based sentence boundary detection gem that works out-of-the-box across many languages.
- Text - A collection of text algorithms including Levenshtein distance, Metaphone, Soundex 2, Porter stemming & White similarity.
- Treat - Treat is a toolkit for natural language processing and computational linguistics in Ruby.
- Treetop - PEG (Parsing Expression Grammar) parser.
- Words Counted - A highly customisable Ruby text analyser and word counter.
Navigation
- active_link_to - View helper to manage "active" state of a link.
- Breadcrumbs on Rails - A simple Ruby on Rails plugin for creating and managing a breadcrumb navigation for a Rails project.
- Gretel - A Ruby on Rails plugin that makes it easy yet flexible to create breadcrumbs.
- loaf - Manages and displays breadcrumb trails in Rails app - lean & mean.
- 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.
ORM/ODM
- ActiveRecord - Object-relational mapping in Rails.
- DataMapper - ORM which works well with legacy databases. Last release (1.2.0) was on 13 October 2011.
- Guacamole - An ODM for ArangoDB.
- Hanami::Model - A lean Repository-pattern based ORM framework for Hanami and modern Ruby applications.
- Mongoid - An ODM (Object-Document-Mapper) framework for MongoDB in Ruby.
- MongoMapper - A Ruby Object Mapper for Mongo.
- MongoModel - Ruby ODM for interfacing with MongoDB databases.
- Neo4j.rb - A Neo4j OGM (Object-Graph-Mapper) for use in Ruby on Rails and Rack frameworks heavily inspired by ActiveRecord.
- NoBrainer - A RethinkDB ORM for Ruby
- Ohm - Object-hash mapping library for Redis.
- Perpetuity - Persistence gem for Ruby objects using the Data Mapper pattern.
- Redis-Objects - Redis Objects provides a Rubyish interface to Redis, by mapping Redis data types to Ruby objects, via a thin layer over the redis gem.
- 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.
- Sequel - Sequel is a simple, flexible, and powerful SQL database access toolkit for Ruby.
ORM/ODM Extensions
- Auditing and Versioning
- ActsAsParanoid - ActiveRecord plugin allowing you to hide and restore records without actually deleting them.
- Audited - Audited is an ORM extension for ActiveRecord & MongoMapper that logs all changes to your models.
- Destroyed At - Allows you to "destroy" an object without deleting the record or associated records.
- Espinita - Audit activerecord models like a boss.
- marginalia - Attach comments to your ActiveRecord queries. By default, it adds the application, controller, and action names as a comment at the end of each query.
- mongoid-history - Multi-user non-linear history tracking, auditing, undo, redo for mongoid.
- PaperTrail - Track changes to your ActiveRecord models' data for auditing or versioning.
- Paranoia - A re-implementation of acts_as_paranoid for Rails 3 and 4, using much, much, much less code.
- PermenantRecords - Soft-delete your ActiveRecord records, like an explicit version of ActsAsParanoid.
- Import
- ActiveImporter - Define importers that load tabular data from spreadsheets or CSV files into any ActiveRecord-like ORM.
- ActiveRecord Import - a library for bulk inserting data using ActiveRecord.
- bulk_insert - A little ActiveRecord extension for helping to insert lots of rows in a single insert statement.
- 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.
- ferry - A ruby gem for easy data transfer.
- Misc
- ActiveRecord::Turntable - A database sharding extension for ActiveRecord.
- ActiveValidators - An exhaustive collection of off-the-shelf and tested ActiveModel/ActiveRecord validations.
- Enumerize - Enumerated attributes with I18n and ActiveRecord/Mongoid/MongoMapper support.
- Goldiloader - Automatic ActiveRecord eager loading.
- mini_record - ActiveRecord meets DataMapper, with MiniRecord you are be able to write schema inside your models.
- Multi-tenancy
- Acts As Tennant - Add multi-tenancy to a Rails app through a shared database strategy.
- Apartment - Multi-tenancy for Rails and ActiveRecord.
- Social
- Acts As Commentable - Provides a single Comment model that can be attached to any model(s) within your app.
- Acts As Commentable with Threading - Similar to acts_as_commentable; however, utilizes awesome_nested_set to provide threaded comments.
- acts_as_follower - Allow any ActiveRecord model to follow any other model.
- ActiveRecord Reputation System - An Active Record Reputation System for Rails.
- ActsAsTaggableOn - A tagging plugin for ActiveRecord that allows for custom tagging along dynamic contexts.
- Acts As Votable - Allow any ActiveRecord model to be voted on, like/dislike, upvote/downvote, etc.
- Merit - Adds reputation behavior to Rails apps in the form of Badges, Points, and Rankings for ActiveRecord or Mongoid.
- PublicActivity - Provides easy activity tracking for your ActiveRecord, Mongoid 3 and MongoMapper models in Rails 3 and 4. Similar to Github's Public Activity.
- Unread - Manage read/unread status of ActiveRecord objects - and it's fast.
- Sorting
- ActsAsList - Provides the capabilities for sorting and reordering a number of objects in a list.
- ranked-model - A modern row sorting library for ActiveRecord. It uses ARel aggressively and is better optimized than most other libraries.
- Tree
- ActsAsTree - Extends ActiveRecord to add simple support for organizing items into parent–children relationships.
- Ancestry - Organise ActiveRecord model into a tree structure using a variation on the materialised path pattern.
- Awesome Nested Set - Awesome Nested Set is an implementation of the nested set pattern for ActiveRecord models.
- Closure Tree - Easily and efficiently make your ActiveRecord models support hierarchies using a Closure Table.
- Mongoid Tree - A tree structure for Mongoid documents using the materialized path pattern.
Package Management
- Gems
- Packages and Applications
- Berkshelf - A Chef Cookbook manager.
- CocoaPods - The Objective-C dependency manager.
- fpm - Effing package management! Build packages for multiple platforms (deb, rpm, etc) with great ease and sanity.
- Linuxbrew - A fork of Homebrew for Linux.
- Homebrew-cask - A CLI workflow for the administration of Mac applications distributed as binaries.
- Homebrew - The missing package manager for OS X.
Pagination
- Kaminari - A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for modern web app frameworks and ORMs.
- 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.
- will_paginate - A pagination library that integrates with Ruby on Rails, Sinatra, Merb, DataMapper and Sequel.
- CombinePDF - A Pure ruby library to merge or stump PDF files, number pages and more.
- Gimli - Utility for converting markup files to pdf files.
- Kitabu - A framework for creating e-books from Markdown/Textile text markup using Ruby.
- Pdfkit - HTML+CSS to PDF using wkhtmltopdf.
- Prawn - Fast, Nimble PDF Writer for Ruby.
- RGhost - RGhost is a document creation and conversion API.
- Shrimp - A phantomjs based pdf renderer.
- Squid - Squid · A Ruby library to plot charts in PDF files
- Wicked Pdf - PDF generator (from HTML) plugin for Ruby on Rails.
- Wisepdf - Wkhtmltopdf wrapper done right.
Performance Monitoring
- Instrumental - Measure your application in real time with Instrumental.
- New Relic - Find and fix Ruby errors with New Relic application monitoring and troubleshooting.
- Skylight - A smart profiler for your Rails apps that visualizes request performance.
- TraceView - Full-stack application tracing and brilliant data visualization to build faster, more reliable web apps.
Presentation Programs
- Middleman Presentation - Build wonderful presentations based on HTML and JavaScript by using ruby.
Process Monitoring
- Bluepill - Simple process monitoring tool.
- Eye - Process monitoring tool. Inspired from Bluepill and God.
- God - An easy to configure, easy to extend monitoring framework written in Ruby.
Processes and Threads
- childprocess - Cross-platform ruby library for managing child processes.
- forkoff - brain-dead simple parallel processing for ruby.
- Parallel - Run any code in parallel Processes (> use all CPUs) or Threads (> speedup blocking operations). Best suited for map-reduce or e.g. parallel downloads/uploads.
- posix-spawn - Fast Process::spawn for Rubys >= 1.8.7 based on the posix_spawn() system interfaces.
Profiler
- benchmark-ips - Provides iteration per second benchmarking for Ruby.
- bullet - Help to kill N+1 queries and unused eager loading.
- Derailed Benchmarks - A series of things you can use to benchmark any Rack based app.
- Peek - Visual status bar showing Rails performance.
- perftools.rb - gperftools (formerly known as google-perftools) for Ruby code.
- rack-mini-profiler - Profiler for your development and production Ruby rack apps.
- Rbkit - profiler for Ruby. With a GUI.
- ruby-prof - A code profiler for MRI rubies.
Queue
- Backburner - Backburner is a beanstalkd-powered job queue that can handle a very high volume of jobs.
- Bunny - Bunny is a popular, easy to use, well-maintained Ruby client for RabbitMQ (3.3+).
- Delayed::Job - Database backed asynchronous priority queue.
- Gush - A parallel runner for complex workflows using only Redis and Sidekiq.
- March Hare - Idiomatic, fast and well-maintained JRuby client for RabbitMQ.
- Resque - A Redis-backed Ruby library for creating background jobs.
- Que - A Ruby job queue that uses PostgreSQL's advisory locks for speed and reliability.
- RocketJob - Enterprise Batch Processing System focused on performance, scalability, reliability, and visibility of every job in the system. Outgrown existing solutions? Or, start small and scale up later.
- Shoryuken - A super efficient AWS SQS thread based message processor for Ruby.
- Sidekiq - A full-featured background processing framework for Ruby. It aims to be simple to integrate with any modern Rails application and much higher performance than other existing solutions.
- Sneakers - A fast background processing framework for Ruby and RabbitMQ.
- Sucker Punch - A single process background processing library using Celluloid. Aimed to be Sidekiq's little brother.
Rails Application Generators
- Bootstrappers - Bootstrappers generates a base Rails app using Bootstrap template and other goodies.
- Hobo - The web app builder for Rails.
- orats - Opinionated rails application templates.
- Rails Composer - The Rails generator on steroids for starter apps.
- Raygun - Builds applications with the common customization stuff already done.
- Suspenders - Suspenders is the base Rails application used at thoughtbot.
Robotics
- Artoo - Next generation robotics framework with support for different platforms: Arduino, Leap Motion, Pebble, Raspberry Pi, etc.
RSS
- Feed normalizer - Extensible Ruby wrapper for Atom and RSS parsers.
- Feedjira - A feed fetching and parsing library.
- Ratom - A fast, libxml based, Ruby Atom library.
- Simple rss - A simple, flexible, extensible, and liberal RSS and Atom reader.
- Stringer - A self-hosted, anti-social RSS reader.
Scheduling
- Clockwork - Clockwork is a cron replacement. It runs as a lightweight, long-running Ruby process which sits alongside your web processes (Mongrel/Thin) and your worker processes (DJ/Resque/Minion/Stalker) to schedule recurring work at particular times or dates.
- minicron - A system to manage and monitor cron jobs.
- resque-scheduler - A light-weight job scheduling system built on top of Resque.
- rufus-scheduler - Job scheduler for Ruby (at, cron, in and every jobs).
- Whenever - A Ruby gem that provides a clear syntax for writing and deploying cron jobs.
Scientific
- Artificial intelligence
- Bindings
- ruby-opencv - An OpenCV wrapper for Ruby.
- Classifiers
- classifier-reborn - An active fork of Classifier, and general module to allow Bayesian and other types of classifications.
- stuff-classifier - A library for classifying text into multiple categories.
- Data analysis/structures
- Numerical arrays
- SciRuby - Tools for scientific computation in Ruby/Rails.
- statsample - A suite for basic and advanced statistics on Ruby.
- statsample-timeseries - Bioruby Statsample TimeSeries.
- statsample-glm - Generalized Linear Models extension for Statsample.
- distribution - Statistical Distributions multi library wrapper.
- integration - Numerical integration methods, based on original work by Beng.
- minimization - Minimization algorithms on pure Ruby.
- publisci - A toolkit for publishing scientific results to the semantic web.
- plotrb - A plotting library in Ruby built on top of Vega and D3.
- rb-gsl - A ruby interface to GNU Scientific library, with NMatrix support.
- Specific
- BioRuby - Library for developing bioinformatics software.
- bloomfilter-rb - BloomFilter(s) in Ruby: Native counting filter + Redis counting/non-counting filters.
- decisiontree - A ruby library which implements ID3 (information gain) algorithm for decision tree learning.
- Utilities
- smarter_csv - Ruby Gem for smarter importing of CSV Files as Array(s) of Hashes.
- algorithms - Library with documentation on when to use a particular structure/algorithm.
Search
- chewy - High-level Elasticsearch Ruby framework based on the official elasticsearch-ruby client.
- elasticsearch-ruby - Ruby integrations for Elasticsearch.
- elastics - Simple ElasticSearch client with support for migrations and ActiveRecord integration.
- has_scope - Has scope allows you to easily create controller filters based on your resources named scopes.
- Mongoid Search - Simple full text search implementation for Mongoid.
- pg_search - Builds ActiveRecord named scopes that take advantage of PostgreSQL's full text search.
- ransack - Object-based searching.
- Rroonga - The Ruby bindings of Groonga.
- SearchCop - Extends your ActiveRecord models to support fulltext search engine like queries via simple query strings and hash-based queries.
- Searchkick - Searchkick learns what your users are looking for. As more people search, it gets smarter and the results get better. It’s friendly for developers - and magical for your users.
- Searchlogic - Object based searching, common named scopes, and other useful named scope tools for ActiveRecord.
- Sunspot - A Ruby library for expressive, powerful interaction with the Solr search engine.
- 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!
- Thinking Sphinx - A library for connecting ActiveRecord to the Sphinx full-text search tool.
Security
- bundler-audit - Patch-level security verification for Bundler.
- Gitrob - Reconnaissance tool for GitHub organizations.
- Metasploit - World's most used penetration testing software.
- Rack::Attack - Rack middleware for blocking & throttling abusive requests.
- Rack::Protection - Rack middleware for protecting against typical Web attacks.
- RbNaCl - Ruby binding to the Networking and Cryptography (NaCl) library.
- 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.
SEO
- FriendlyId - The "Swiss Army bulldozer" of slugging and permalink plugins for Active Record.
- MetaTags - A gem to make your Rails application SEO-friendly.
- prerender_rails - Rails middleware gem for prerendering javascript-rendered pages on the fly for SEO.
- SitemapGenerator - A framework-agnostic XML Sitemap generator written in Ruby.
Social Networking
- diaspora* - A privacy aware, distributed, open source social network.
- Discourse - A platform for community discussion. Free, open, simple.
- Forem - Rails 3 and Rails 4 forum engine.
- Mailboxer - A private message system for Rails applications.
- Social Shares - A gem to check how many times url was shared in social networks.
- Thredded - Rails 4.2+ forum/messageboard engine. Its goal is to be as simple and feature rich as possible.
Spreadsheets and Documents
- AXLSX - An excel xlsx generation library.
- Docsplit - Gem to convert Microsoft Word (and other) documents into images, pdf, pages or text.
- Roo - Implements read access for all spreadsheet types and read/write access for Google spreadsheets.
- Yomu - Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf).
State Machines
- AASM - State machines for Ruby classes (plain Ruby, Rails Active Record, Mongoid).
- FiniteMachine - A plain Ruby state machine with a straightforward and expressive syntax.
- simple_states - A super-slim statemachine-like support library.
- Statesman - A statesmanlike state machine library.
- transitions - A ruby state machine implementation.
- Workflow - A finite-state-machine-inspired API for modeling and interacting with what we tend to refer to as 'workflow'.
Static Site Generation
- High Voltage - Easily include static pages in your Rails app.
- Jekyll - Transform your plain text into static websites and blogs.
- Awesome Jekyll - A collection of awesome Jekyll tools, plugins, themes, guides and much more.
- Middleman - A static site generator using all the shortcuts and tools in modern web development.
- Nanoc - A static site generator, fit for building anything from a small personal blog to a large corporate web site.
- Octopress - Octopress is an obsessively designed toolkit for writing and deploying Jekyll blogs.
- Photish - Generate a highly configurable static website from a photo collection.
- webgen - webgen is a fast, powerful and extensible static website generator.
Template Engine
- Curly - A template language that completely separates structure and logic.
- Haml - HTML Abstraction Markup Language.
- Liquid - Safe, customer facing template language for flexible web apps.
- Mustache - Logic-less Ruby templates.
- Slim - A template language whose goal is reduce the syntax to the essential parts without becoming cryptic.
- Tilt - Generic interface to multiple Ruby template engines.
Testing
- Frameworks
- RSpec - Behaviour Driven Development for Ruby.
- Formatters
- Emoji-RSpec - Custom Emoji Formatters for RSpec.
- Fuubar - The instafailing RSpec progress bar formatter.
- Nyan Cat - Nyan Cat inspired RSpec formatter!
- Formatters
- Aruba - Testing command line applications with cucumber and rspec.
- Bacon - A small RSpec clone.
- Capybara - Acceptance test framework for web applications.
- Cucumber - BDD that talks to domain experts first and code second.
- Cutest - Isolated tests in Ruby.
- Howitzer - Ruby based framework for acceptance testing
- Konacha - Test your Rails application's JavaScript with the mocha test framework and chai assertion library.
- minitest - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking.
- RR - A test double framework that features a rich selection of double techniques and a terse syntax.
- shoulda-matchers - Provides Test::Unit- and RSpec-compatible one-liners that test common Rails functionality. These tests would otherwise be much longer, more complex, and error-prone.
- Spinach - Spinach is a high-level BDD framework that leverages the expressive Gherkin language (used by Cucumber) to help you define executable specifications of your application or library's acceptance criteria.
- Spork - A DRb server for testing frameworks (RSpec / Cucumber currently).
- Test::Unit - Test::Unit is a xUnit family unit testing framework for Ruby.
- RSpec - Behaviour Driven Development for Ruby.
- Fake Data
- Fabrication - A simple and powerful object generation library.
- factory_girl - A library for setting up Ruby objects as test data.
- Fake Person - Uses some of the most popular given & surnames in the US & UK.
- faker - A library for generating fake data such as names, addresses, and phone numbers.
- ffaker - A faster Faker, generates dummy data, rewrite of faker.
- Forgery - Easy and customizable generation of forged data.
- Machinist - Fixtures aren't fun. Machinist is.
- Mock
- ActiveMocker - Generate mocks from ActiveRecord models for unit tests that run fast because they don’t need to load Rails or a database.
- DuckRails - Tool for mocking API endpoints quickly & dynamically.
- TestXml - TestXml is a small extension for testing XML/HTML.
- WebMock - Library for stubbing and setting expectations on HTTP requests.
- WebDrivers
- Selenium WebDriver - This gem provides Ruby bindings for WebDriver.
- API Taster - A quick and easy way to visually test your Rails application's API.
- Poltergeist - A PhantomJS driver for Capybara.
- Watir - Web application testing in Ruby.
- Extra
- Appraisal - Appraisal integrates with bundler and rake to test your library against different versions of dependencies.
- mutant - Mutant is a mutation testing tool for Ruby.
- Parallel Tests - Speedup Test::Unit + RSpec + Cucumber by running parallel on multiple CPUs (or cores).
- Ruby-JMeter - A Ruby based DSL for building JMeter test plans.
- Spring - Preloads your rails environment in the background for faster testing and Rake tasks.
- timecop - Provides "time travel" and "time freezing" capabilities, making it dead simple to test time-dependent code.
- vcr - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.
- Zapata - Who has time to write tests? This is a revolutionary tool to make them write themselves.
- Wrong - Wrong provides a general assert method that takes a predicate block. Assertion failure messages are rich in detail.
Third-party APIs
- databasedotcom - Ruby client for the Salesforce's Database.com and Chatter APIs.
- Dropbox - Dropbox API Ruby Client.
- facy - Command line power tool for facebook.
- fb_graph2 - A full-stack Facebook Graph API wrapper.
- flickr - A Ruby interface to the Flickr API.
- gitlab - Ruby wrapper and CLI for the GitLab API.
- google-api-ads-ruby - Google Adwords Ruby client
- gmail - A Rubyesque interface to Gmail, with all the tools you'll need.
- hipchat-rb - HipChat HTTP API Wrapper in Ruby with Capistrano hooks.
- instagram-ruby-gem - The official gem for the Instagram REST and Search APIs.
- itunes_store_transporter - Ruby wrapper around Apple's iTMSTransporter program.
- linkedin - Provides an easy-to-use wrapper for LinkedIn's REST APIs.
- Octokit - Ruby toolkit for the GitHub API.
- Pusher - Ruby server library for the Pusher API.
- ruby-gmail - A Rubyesque interface to Gmail.
- ruby-trello - Implementation of the Trello API for Ruby.
- simple-slack-bot - You can easily make Slack Bot.
- Slack Notifier - A simple wrapper for posting to Slack channels.
- Slack ruby gem - A Ruby wrapper for the Slack API.
- soundcloud-ruby - Official SoundCloud API Wrapper for Ruby.
- t - A command-line power tool for Twitter.
- tweetstream - A simple library for consuming Twitter's Streaming API.
- twilio-ruby - A module for using the Twilio REST API and generating valid TwiML.
- twitter - A Ruby interface to the Twitter API.
- wikipedia - Ruby client for the Wikipedia API.
- Yt - An object-oriented Ruby client for YouTube API V3.
Video
- Streamio FFMPEG - Simple yet powerful wrapper around the ffmpeg command for reading metadata and transcoding movies.
Web Crawling
- anemone - Ruby library and CLI for crawling websites.
- LinkThumbnailer - Ruby gem that generates thumbnail images and videos from a given URL. Much like popular social website with link preview.
- Mechanize - Mechanize is a ruby library that makes automated web interaction easy.
- MetaInspector - Ruby gem for web scraping purposes.
- Upton - A batteries-included framework for easy web-scraping.
- Wombat - Web scraper with an elegant DSL that parses structured data from web pages.
Web Frameworks
- Camping - A web microframework which consistently stays at less than 4kB of code.
- Cuba - A microframework for web development.
- Hobbit - A minimalistic microframework built on top of Rack.
- Hanami - It aims to bring back Object Oriented Programming to web development, leveraging on a stable API, a minimal DSL, and plain objects.
- Padrino - A full-stack ruby framework built upon Sinatra.
- Pakyow - A framework for building modern web-apps in Ruby. It helps you build working software faster with a development process that remains friendly to both designers and developers.
- Ramaze - A simple, light and modular open-source web application framework written in Ruby.
- Roda - A routing tree web framework.
- Ruby on Rails - A web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.
- Scorched - Light-weight, inheritable and composable web framework, inspired by Sinatra.
- Sinatra - Classy web-development dressed in a DSL.
- Volt - A Ruby web framework where your ruby code runs on both the server and the client.
Web Servers
- Goliath - A non-blocking Ruby web server framework.
- Phusion Passenger - Fast and robust web server and application server.
- Puma - A modern, concurrent web server for Ruby.
- Rack - A common Ruby web server interface. By itself, it's just a specification and utility library, but all Ruby web servers implement this interface.
- Reel - Celluloid::IO-powered web server.
- Thin - Tiny, fast & funny HTTP server.
- TorqueBox - A Ruby application server built on JBoss AS7 and JRuby.
- Unicorn - Rack HTTP server for fast clients and Unix.
WebSocket
- Faye - A set of tools for simple publish-subscribe messaging between web clients.
- Firehose - Build realtime Ruby web applications.
- Rails Realtime - Adding Real-Time To Your RESTful Rails App.
- Slanger - Open Pusher implementation compatible with Pusher libraries.
- Sync - Real-time Rails Partials.
- Websocket-Rails - Creates a built in WebSocket server inside a Rails application with ease, and also support streaming HTTP.
Services and Apps
Online tools, services and APIs to simplify development.
- AppSignal - Better monitoring for your Rails applications.
- Codacy - Automated Code Review for Ruby, Rails, JS, PHP, Python etc. Security, Coverage & Quality.
- CodeClimate - Quality & security analysis for Ruby on Rails and Javascript.
- deppbot - Automated Security and Dependency Updates.
- Gemnasium - Monitor your project dependencies and alert you about updates and security vulnerabilities.
- GitHub - Powerful collaboration, code review, and code management for open source and private projects.
- Gitlab CI - Integrate with your GitLab to run tests for your projects.
- GitLab - Open source software to collaborate on code.
- Hakiri - Ship Secure Ruby Apps.
- HoundCI - Review your Ruby code for style guide violations.
- HuBoard - Kanban board for GitHub issues.
- Inch CI - Documentation badges for Ruby projects.
- Omniref - A comprehensive Ruby documentation site.
- PR Dashboard - Review open Pull Requests from your organizations and leave a "LGTM" comment.
- PullReview - Automated code review for Ruby and Rails - from style to security.
- ProfileIt - Live production profiling for Ruby on Rails (always FREE for development).
- SemaphoreCI - Hosted continuous integration and deployment service for open source and private projects.
- SideCI - Automated Code Review with GitHub PR. - Monitoring Style Violations, Quality, Security, Dependencies.
- Traveling Ruby - Traveling Ruby lets you create self-contained Ruby app packages for Linux and OS X.
- Travis CI.com - Take care of running your tests and deploying your private apps.
- Travis CI.org - A distributed build system for the open source community.
- Vexor CI - A distributed cloud web-service for building and testing software, a continuous integration tool for private apps with pay-per-minute billing model.
Resources
Where to discover new Ruby libraries, projects and trends.
- Awesome Ruby @LibHunt - Your go-to Ruby Toolbox. The Awesome Ruby collection + ordering by popularity, additional metadata and comparisons.
- GitHub Trending - Find what repositories the GitHub community is most excited about today.
- Green Ruby News - A feed of fresh links of the week about ruby, javascript, webdev and devops.
- Open Source Rails - A gallery of the best open source rack and Ruby on Rails web applications.
- Ruby5 - The latest news in the Ruby and Rails community.
- Ruby Bookmarks - Ruby and Ruby on Rails bookmarks collection.
- RubyDaily - Community driven news.
- RubyFlow - Ruby Programming Community Link Blog.
- Ruby Rogues - Weekly panel discussion about programming, primarily in Ruby.
- Ruby Weekly - A free, once–weekly e-mail round-up of Ruby news and articles.
- The Ruby Toolbox - A comprehensive catalog of Ruby and Rails plug-ins, gems, tools and resources for Ruby developers with popularity ratings based on GitHub watchers and Gem downloads.
Other Awesome Lists
from https://github.com/markets/awesome-ruby
----------
A curated list of awesome Ruby frameworks, libraries and resources. Inspired by awesome-php & awesome-python.
Awesome Ruby
A curated list of awesome Ruby frameworks, libraries and resources. Inspired by awesome-php & awesome-python.
Contribution
Your Pull requests are welcome! Let's make this the awesomest resource for Ruby 💜
- Awesome Ruby
- Admin Panels
- Anti-spam
- Asset Management
- Audio
- Authentication and OAuth
- Build Tools
- Caching
- Cloud Services
- CMS
- Code Analysis and Linter
- Command-line Tools
- Configuration
- CSS and Styling
- Data Validation
- Data Visualization
- Database Drivers
- Date and Time
- Debugging Tools
- DevOps Tools
- Distribution
- Documentation
- Downloader
- E-Commerce & Online Paying
- Environment Management
- File Uploading
- Feature Flipping
- Foreign Function Interface
- Forms
- Game Development
- Geolocation
- GUI
- High Performance
- HTML/XML/CSS Manipulation
- HTTP
- Imagery
- Internationalization
- Logging
- Machine Learning
- MapReduce
- Natural Language Processing
- Networking
- ORM
- Package Management
- Presentation Tools
- Processes and Threads
- Push Notification
- Queue
- Spreadsheets
- RESTful API
- Science and Data Analysis
- Search
- Site Monitoring
- Starter Apps
- Tagging
- Template Engine
- Testing
- Text Processing
- Third-party APIs
- URL Manipulation
- Video
- Web Content Extracting
- Web Crawling
- Web Frameworks
- Web Servers
- WebSocket
- Miscellaneous
- Resources
- Other Awesome Lists
- Contributing
Admin Panels
Libraries for administrative interfaces.
- active_admin The administration framework for Ruby on Rails applications
- rails_admin A Rails engine that provides an easy-to-use interface for managing your data
- administrate A framework for creating flexible, powerful admin dashboards in Rails.
Anti-spam
Libraries for fighting spam.
- RubySpamAssassin Kills Spam Dead. Perhaps before it's sent!
Asset Management
Tools for managing, compressing and minifying website assets.
- sprockets Rack-based asset packaging system
- rails-assets is the frictionless proxy between Bundler and Bower
Audio
- seal A C library (with Ruby binding) for 3D audio rendering
Authentication and OAuth
Libraries for implementing authentications schemes.
- Devise - Devise is a flexible authentication solution for Rails based on Warden
- Omniauth - OmniAuth is a flexible authentication system utilizing Rack middleware
- Warden - General Rack Authentication Framework
- AuthLogic - A simple ruby authentication solution
- Sorcery - Magical authentication for Rails 3 & 4
- CanCanCan Authorization gem for Rails (continued version of CanCan from ryanb)
- pundit - Minimal authorization using object oriented design.
- authority - ORM neutral authorization.
- doorkeeper An OAuth 2 provider for Rails
Build Tools
Compile software from source code.
- teapot A decentralised build tool for managing complex cross-platform projects
Caching
Libraries for caching data.
- rack-cache HTTP Caching for Ruby Web Apps
- Dalli - a high performance pure Ruby client for accessing memcached servers.
Cloud Services
- fog The Ruby cloud services library
- aws-sdk-ruby The official AWS SDK for Ruby
CMS
Content management systems
- Refinery CMS An extendable Ruby on Rails CMS that supports Rails 3.2 and 4.2
- Comfortable Mexican Sofa A powerful Rails 4 CMS Engine
- Browser Humane Content Management for Rails
- Locomotive a brand new CMS system with super sexy UI and cool features
- Radiant A no-fluff, open source content management system
- Nesta A lightweight CMS, implemented in Sinatra
- alchemy_cms the most powerful, user friendly and flexible Rails CMS
- weby Newbie CMS in Ruby on Rails
Code Analysis and Linter
Libraries and tools for analyzing, parsing and manipulation codebases.
- Rubocop - A Ruby static code analyzer, based on the community Ruby style guide.
- ruby-lint - ruby-lint is a static code analysis tool for Ruby
- brakeman - Static analysis tool which checks Ruby on Rails applications for security vulnerabilities
Command-line Tools
Libraries for building command-line application.
- Commander - The complete solution for Ruby command-line executables
- Thor - Thor is a toolkit for building powerful command-line interfaces
Configuration
Libraries for storing configuration options.
CSS and Styling
- sass A CSS preproccessor
- sass-rails Rails stylesheet engine for Sass
- less-rails The dynamic stylesheet language for the Rails
- compass A a Stylesheet Authoring Environment
- bootstrap-sass Official Sass port of Bootstrap
- foundation-rails Foundation for Rails
- bootswatch-rails Bootswatches converted to SCSS ready to use in Rails
- bourbon A lightweight mixin library for Sass
Data Validation
Libraries for validating data. Used for forms in many cases.
- kangal - Extended validation gem for email, subdomain, credit card, tax number etc
- bin_checker - BIN validator for Turkish Banks
Data Visualization
Libraries for visualizing data.
- prosperity The easiest way to graph data from your Rails models
Database Drivers
Libraries for connecting and operating databases.
- Relational Databases
- ruby-pg Ruby interface to the PostgreSQL >= 8.4
- mysql2 A modern, simple and very fast Mysql library for Ruby
- sqlite3-ruby Ruby bindings for the SQLite3 embedded database
- NoSQL Databases
Date and Time
Libraries for working with dates and times.
- stamp Date and time formatting for humans
Debugging Tools
Libraries for debugging and developing.
DevOps Tools
Software and libraries for DevOps.
- Puppet - Server automation framework and application
- Chef - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
- Vagrant - Vagrant is a tool for building and distributing development environments.
- Capistrano - Remote multi-server automation tool
- Mina Really fast deployer and server automation tool
Distribution
Libraries to create packaged executables for release distribution.
- fpm Building packages for multiple platforms (deb, rpm, etc) with great ease and sanity.
Documentation
Libraries for generating project documentation.
Downloader
Libraries for downloading.
E-Commerce & Online Paying
- Active Merchant - A simple payment abstraction library extracted from Shopify.
- Spree - A complete open source e-commerce solution for Ruby on Rails.
- PayPal Merchant SDK - Provides Ruby APIs for processing payments, recurring payments, subscriptions and transactions using PayPal's Merchant APIs.
Libraries for sending and parsing email.
Environment Management
Libraries for Ruby version and environment management.
- chruby - Changes the current Ruby
- chgems - Chroot for RubyGems
- rvm - Ruby Version Manager
- rbenv - Groom your app’s Ruby environment
- ruby-install - Installs Ruby, JRuby, Rubinius, MagLev or MRuby
- ruby-build - Compile and install Ruby
Error Handling
Libraries for exception and error handling.
- Exception Notification - A set of notifiers for sending notifications when errors occur in a Rack/Rails application
- Errbit - The open source, self-hosted error catcher
- Airbrake - The official Airbrake library for Ruby on Rails (and other Rack based frameworks)
- Better Errors - Better error page for Rack apps
File Uploading
Libraries for handling file uploads.
- paperclip Easy file attachment management for ActiveRecord
- dragonfly On-the-fly processing - suitable for image uploading in Rails, Sinatra and much more
- carrierwave Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks
- attache - Yet another approach to file upload https://attache-demo.herokuapp.com
Feature flipping
Libraries for flipping features
- helioth Manage feature flipping and rollout
- flipper feature flipping for ANYTHING
- flip Flip lets you declare and manage feature flags, backed by cookies (private testing) and database (site-wide)
- rollout Feature flippers.
Foreign Function Interface
Libraries for providing foreign function interface.
Forms
Libraries for working with forms.
- simple_form Forms made easy for Rails
- formtastic A Rails form builder plugin with semantically rich and accessible markup
Game Development
Awesome game development libraries.
- Gosu - A 2D game development library for the Ruby and C++ programming languages
Geolocation
Libraries for geocoding addresses and working with latitudes and longitudes.
- geocoder Complete Ruby geocoding solution
- Geokit - Geokit gem provides geocoding and distance/heading calculations.
Git Tools
Libraries for working with Git VCS
- katip - Change logger for Git initialized projects
GUI
Libraries for working with graphical user interface applications.
High Performance
Libraries for making Ruby faster.
- EventMachine - EventMachine: fast, simple event-processing library for Ruby programs
- Celluloid - Actor-based concurrent object framework for Ruby. It has its own awesomeness.
HTML/XML/CSS Manipulation
Libraries for working with HTML, XML & CSS.
- Nokogiri
- loofah A general library for manipulating and transforming HTML/XML documents and fragments
HTTP
Libraries for working with HTTP.
- httparty Makes http fun again!
- faraday Simple, but flexible HTTP client library, with support for multiple backends.
- http A simple Ruby DSL for making HTTP requests
- excon Usable, fast, simple HTTP(S) 1.1 for Ruby
- nestful Simple Ruby HTTP/REST client with a sane API
Imagery
Libraries for manipulating images.
- rmagick An interface to the ImageMagick and GraphicsMagick image processing libraries
- minimagick Minified version of rmagick
- chunky_png Read/write access to PNG images in pure Ruby
- image_optim Optimize images using multiple utilities
- magickly image manipulation as a (plugin-able) service
Internationalization
Libraries for woking with i18n.
- i18n - Basic internationalization(i18n) library for Ruby
- globalize Rails I18n de-facto standard library for ActiveRecord model/data translation
- i18n-tasks Manage translations in ruby applications with the awesome power of static analysis
Logging
Libraries for generating and working with log files.
- Logstash Logstash is a tool for managing events and logs.
Machine Learning
Libraries for Machine Learning.
- PredictionIO Ruby SDK - The PredictionIO Ruby SDK provides a convenient API to quickly record your users' behavior and retrieve personalized predictions for them
MapReduce
Frameworks and libraries for MapReduce.
Natural Language Processing
Libraries for working with human languages.
- 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 - Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes
- DataMapper - 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 - The Database Toolkit for Ruby
- NoSQL Databases
Package Management
Libraries for package and dependency management.
- RubyGems - RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries
- Bundler - Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed
- Homebrew - Homebrew installs the stuff you need that Apple didn’t
- Homebrew Cask - Cask provides a friendly homebrew-style CLI workflow for the administration of Mac applications distributed as binaries
Pagination
- kaminari A Scope & Engine based, clean, powerful, customizable and sophisticated paginator
- will_paginate Pagination library for Rails 3, Sinatra, Merb, DataMapper, and more
- 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
- wicked_pdf PDF generator (from HTML) plugin for Ruby on Rails
- pdfkit HTML+CSS to PDF using wkhtmltopdf
- prawn Fast, Nimble PDF Writer for Ruby
Presentation Tools
Processes and Threads
Libraries for woking with processes or threads
- Parallel - Ruby parallel processing made simple and fast
Profiling
- bullet - help to kill N+1 queries and unused eager loading
Push Notification
- Rpush - The push notification service for Ruby.
- apn_sender - Background worker to send Apple Push Notifications over a persistent TCP socket.
- Houston - A simple gem for sending Apple Push Notifications.
Queue
Libraries for working with event and task queues.
- Resque A Redis-backed Ruby library for creating background jobs, placing them on multiple queues.
- Delayed::Job — Database backed asynchronous priority queue.
- Qu A Ruby library for queuing and processing background jobs.
- Sidekiq Simple, efficient background processing for Ruby
RESTful API
Libraries for developing RESTful APIs.
- Grape - An opinionated micro-framework for creating REST-like APIs in Ruby.
- Rails::API - Rails for API only applications
- jbuilder - Create JSON structures via a Builder-style DSL
- rabl - General Ruby templating with json, bson, xml, plist and msgpack support
- active_model_serializers - ActiveModel::Serializer implementation and Rails hooks
- oat - Adapters-based API serializers with Hypermedia support for Ruby apps (HAL, Siren, JSONAPI).
Spreadsheets
Libraries for manipulating Excel, Google Spreadsheets, Numbers, OpenOffice and LibreOffice files
- spreadsheet - The Spreadsheet Library is designed to read and write Spreadsheet Documents.
- axlsx - Axlsx excels at helping you generate beautiful Office Open XML Spreadsheet documents.
- axlsx_rails - Axlsx_Rails provides an Axlsx renderer so you can move all your spreadsheet code from your controller into view files.
- roo - Roo implements read access for all spreadsheet types and read/write access for Google spreadsheets.
- google-spreadsheet-ruby - This is a library to read/write Google Spreadsheet.
- rubyXL - rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents
- Odf-report - Generates ODF files, given a template (.odt) and data, replacing tags
- simple_xlsx_writer - Just as the name says, simple writter for Office 2007+ Excel files
- 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_xlsx - acts_as_xlsx lets you turn any ActiveRecord::Base inheriting class into an excel spreadsheet.
- activeadmin-axlsx - This gem uses axlsx to provide excel/xlsx downloads for resources in Active Admin.
- to_spreadsheet - Render XLSX from Rails using existing views
- write_xlsx - write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format.
- excel_rails - Allows you to program spreadsheets using .rxls views
- sheets - Work with spreadsheets easily in a native ruby format.
- workbook - Workbook contains workbooks, as in a table, contains rows, contains cells, reads/writes excel, ods and csv and tab separated files...
- Spreadsheet report - Simple tool for running queries against ActiveRecord and putting them into a Google Spreadsheet.
- oxcelix - A fast Excel 2007/2010 (.xlsx) file parser that returns a collection of Matrix objects
- 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 - xlsx renderer for Rails base on write_xlsx gem
Scheduling
- whenever Cron jobs in Ruby
- resque-scheduler A light-weight job scheduling system built on top of resque
- rufus-scheduler Scheduler for Ruby
- 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 - Sphinx plugin for ActiveRecord/Rails
- elasticsearch-ruby - Ruby integrations for Elasticsearch
- Searchkick - Intelligent search made easy
- PgSearch - PostgreSQL's full text search
- Rroonga - The Ruby bindings of Groonga
- Sunspot - Solr-powered search for Ruby objects
Site Monitoring
Libs for analytics, monitoring
- rack-google-analytics Simple Rack middleware for implementing google analytics tracking
- DataDog A monitoring service for IT, operations and development teams
- Keen IO Build analytics features directly into your Ruby apps
Static Page Generation
Starter Apps
App templates for creating apps quickly
- suspenders A Rails template with our standard defaults, ready to deploy to Heroku
- ruby2-rails4-bootstrap-heroku A starter application based on Ruby 2, Rails 4 and Bootstrap for Sass, deployable on Heroku
- rails-bootstrap Rails 4.1 starter app with the Bootstrap front-end framework
- rails4-starterkit Rails 4.1 starter app with production ready performance, security, and authentication
- 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 - Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf)
Tagging
Libraries for tagging items.
- 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 A templating lang that reduce the syntax to the essential parts without becoming cryptic.
- slim-rails Rails port of Slim lang
- Haml HTML Abstraction Markup Language - A Markup Haiku
- haml-rails Rails port of Haml lang
- Tilt
- Liquid
Testing
Libraries for testing codebases and generating test data.
- Testing Frameworks
- RSpec - BDD for Ruby
- MiniTest - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking
- [Cucumber]
- Cucumber Github - Cucumber is a tool that executes plain-text functional descriptions as automated tests
- Cucumber Site - Behaviour Driven Development with elegacy and joy
- 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 - Rubytest is a testing meta-framework useful for creating highly customize test suites or building whole new test frameworks.
- shoulda-matchers - Collection of testing matchers extracted from Shoulda
- capybara - Acceptance test framework for web applications
- Mock
- RSpec-mocks - RSpec's 'test double' framework, with support for stubbing and mocking
- Mocha - Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.
- FlexMock - Flexible mocking for Ruby testing
- Fake Data
- Code Coverage
- 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 A lightweight, flexible library for Facebook
- fb_graph A full-stack Facebook Graph API wrapper
- twitter A Ruby interface to the Twitter API
- tweetstream A simple library for consuming Twitter's Streaming API
- gitlab Ruby wrapper and CLI for the GitLab API
- octokit.rb Ruby toolkit for the GitHub API
- instagram The official gem for the Instagram API
- linkedin Ruby wrapper for the LinkedIn API
- twilio-ruby A Ruby gem for communicating with the Twilio API and generating TwiML
- viewpoint-spws A Microsoft Sharepoint Web Services library for Ruby.
- youtube_it An object-oriented Ruby wrapper for the YouTube GData API
- flickraw Flickraw is a library to access flickr api
- f00px Official 500px api ruby gem
- rspotify Ruby wrapper for the Spotify Web API
URL Manipulation
Libraries for parsing URLs.
Video
Libraries for manipulating video and GIFs.
- 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 A batteries-included framework for easy web-scraping
- metainspector
Web Frameworks
Web development frameworks.
- Ruby On Rails - Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity
- Sinatra - Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.
- Padrino - The Godfather of Sinatra provides a full-stack agnostic framework on top of Sinatra
- Cramp - Cramp is a fully asynchronous real-time web application framework in Ruby
- Lotus - A newborn complete Ruby web framework that is simple, fast and lightweight.
- Cuba - Cuba is a microframework for web development originally inspired by Rum, a tiny but powerful mapper for Rack applications.
- Pakyow - 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.
Web Servers
App server interface
- puma A simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications.
- thin A thin and fast web server
- trinidad Run Rails or Rack applications within an embedded Apache Tomcat container.
- unicorn An HTTP server for Rack applications designed to only serve fast clients.
- passenger A modern web server and application server for Ruby, Python, and Node.js.
- pow Pow treats files and directories as ruby objects giving you more power and flexibility.
- goliath is a non-blocking Ruby web server framework.
WebSocket
Libraries for woking with WebSocket.
- Faye - Simple pub/sub messaging for the web
- 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 A mid-level packet manipulation library for Ruby.
- chatterbot A straightforward ruby-based Twitter Bot Framework, using OAuth to authenticate
- sneakers A fast background processing framework for Ruby and RabbitMQ
- ransack Object-based searching.
- cinch The IRC Bot Building Framework
- pry An IRB alternative and runtime developer console
- friendly_id Slugging and permalink plugins for ActiveRecord
- backup An elegant DSL in Ruby for performing backups on UNIX-like systems
- kss Documenting CSS and generating styleguides
- AASM - A library for adding finite state machines to Ruby classes
- JsonCompare - Returns the difference between two JSON files
- blankable - Adds blank slates to index view in Rails
- tcmb_currency - T.C.M.B. currencies for Money Gem
- enumerize - Enumerated attributes with I18n and ActiveRecord/Mongoid support
- 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 - Annotate ActiveRecord models
- fast_attributes - FastAttributes adds attributes with their types to the class
- Github Changelog Generator — automatically generate change log from your tags, issues, labels and pull requests on GitHub.
- Letter Opener — Preview email in the default browser instead of sending it.
- Auto HTML — Transforming URLs to appropriate resource (image, link, YouTube, Vimeo video,...).
Editor Plugins
Plugins for various editors.
Resources
Where to discover things (libraries, news e.g) about Ruby.
- The Ruby Toolbox
- RubyGems
- RubyDaily - Community driven news
- Ruby Weekly - A free, once–weekly e-mail round-up of Ruby news and articles.
- Ruby5 - The latest news in the Ruby and Rails community
- RubyFlow - Ruby Programming Community Link Blog
- GemBundle - A place to discover new Ruby Gems
People to Follow
People in Ruby World
- Yukihiro "Matz" Matsumoto - Creator of Ruby lang
- David Heinemeier Hansson - Creator of Rails framework
- Koichi Sasada - Ruby core committer and the developer of YARV
- Aaron Patterson - Committer to Nokogiri, Ruby, and Ruby on Rails
- Avdi Grimm - Host of Ruby Tapas webcasts
- Aman Gupta- Ruby core committer
from https://github.com/Sdogruyol/awesome-ruby