Ruby
Contents
Admin Interface
ActiveScaffold provides quick and powerful user interfaces for CRUD (create, read, update, delete) operations for Rails applications. It's excellent for generating admin interfaces, managing Data-Heavy Applications, creating Widgets or for quick prototyping. ActiveScaffold is completly customizable and offers a bunch of additional features including searching, pagination, layout control and overrides of fields, forms and templates.
A Rails engine that helps you put together a super-flexible admin dashboard, by Thoughtbot.
Hot Glue takes a different approach to building both admin and user dashboards. It is a code generation tool like the Rails scaffold generator but with significantly more features. Instead of providing a lot of configuration options, Hot Glue can generate your code. Good for lists & CRUD views for both admin and user-facing dashboards.
A low-code Admin panel and Business Intelligence Rails engine. No DSL - configurable from the UI.
Analytics
First-party, privacy-focused traffic analytics for Ruby on Rails applications.
A solid foundation to track visits and events in Ruby, JavaScript, and native apps.
Model analytics reports and queries against the official Google Analytics Reporting API.
API Builder and Discovery
Define structured data models with a DSL that generates JSON Schema and ActiveModel validations from a single source of truth.
an ORM that maps REST resources to Ruby objects. Designed to build applications that are powered by a RESTful API instead of a database.
JSONAPI::Resources, or "JR", provides a framework for developing a server that complies with the JSON API specification.
Assets
Authentication and OAuth
Authorization
Automation
Breadcrumbs
Boilerplates & UI Kits
Business logic
Interactor provides a common interface for performing complex interactions in a single request.
Compose your business logic into commands that sanitize and validate input.
A set of tools for building reliable service objects of any complexity.
Encapsulated related objects in a single system to add behavior during runtime. Extensible implementation of DCI.
Caching
Captchas and anti-spam
Protection for Rails models with text-based logic question captchas (from Rob Tuley's textcaptcha.com)
CLI Builder
CLI Utilities
Pretty print your Ruby objects with style -- in full color and with proper indentation
Friendly English-like interface for your command line. Don't remember a command? Ask Betty.
Cloud
CMS
Code Analysis and Metrics
A static analysis security vulnerability scanner for Ruby on Rails applications.
Make your Rubies go faster with this command line tool highly inspired by fast-ruby and Sferik's talk at Baruco Conf.
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 reports the most tortured code in an easy to read pain report. The higher the score, the more pain the code is in.
A utility for finding suboptimal Ruby class API usage, focused on runtime analysis.
Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites.
Code Formatting
Rubocop Rails
Code Highlighting
Coding Style Guides
Concurrency and Parallelism
Modern concurrency tools including agents, futures, promises, thread pools, supervisors, and more. Inspired by Erlang, Clojure, Scala, Go, Java, JavaScript, and classic concurrency patterns.
Configuration
Configuration library for Ruby gems and applications, supporting multiple sources (yml, secrets) and environments.
Surprisingly customizable convention-based approach to managing your app's configuration.
Core Extensions
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.
Small, focused, incredibly useful methods added to core Ruby classes. Includes the endlessly useful nil_chain.
A tiny library that lets you map a DSL (domain specific language) to your Ruby objects in a snap.
Lightweight, non-monkey-patch class utilities for Hanami and Ruby app.
Memoize any instance/class/module method, including support for frozen objects - rigorously tested and benchmarked on all Rubies - fast performance of memoized reads.
Attributes
Hash
Country Data
All sorts of useful information about every country packaged as pretty little country objects.
country/language names and 2-letter-code pairs, in 85 languages, for country/language i18n.
Convert country names and codes to a standard, includes a conversion program for XMLs, CSVs and DBs.
Ruby gem for phone validation and formatting using Google libphonenumber library data.
CRM
Cryptocurrencies and Blockchains
Dashboards
Data Processing and ETL
A gem for creating workflows that "enhance" entities with extra attributes. At a high level, attr-gather provides a process to fetch information from many data sources (such as third party APIs, legacy databases, etc.) in a fully parallelized fashion.
Fast Ingestion of CSV files into hashes with automatic header handling, type conversion, clean-up, and protection against Ruby CSV's silent data corruption. Also exports CSV.
A modern tabular data (line-by-line records) reader supports "classic" CSV but also CSV Numerics, CSV <3 JSON, CSV <3 YAML, tab, space or fixed width fields (FWF) and many more flavors and dialects.
Stream JSON data based on various criteria (key, nesting level, etc).
Data Visualization
Create beautiful generative geometric background images from a string.
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.
Database Drivers
A pure ruby driver for Apache Cassandra with asynchronous io and configurable load balancing, reconnection and retry policies.
A modern, simple and very fast Mysql library for Ruby (binding to libmysql).
Database Tools
Generic connection pooling for Ruby, that can be used with anything, e.g. Redis, Dalli, etc.
Database Cleaner is a set of strategies for cleaning your database in Ruby.
An easy way to check that application constraints and database constraints are in sync.
Adds foreign key helpers to migrations and correctly dumps foreign keys to schema.rb.
Online MySQL schema migrations without locking the table.
Scan your models and displays a list of columns that probably should be indexed.
Catch unsafe PostgreSQL migrations in development and run them easier in production.
Creates sample database snapshots to work with real world data in development.
SchemaPlus provides a collection of enhancements and extensions to ActiveRecord
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
The simple tool to make work with date ranges in Ruby more enjoyable.
The simplest way to group temporal data in ActiveRecord, arrays and hashes.
A date recurrence library which allows easy creation of recurrence rules and fast querying.
A Ruby library to compute distance of dates in words, with localization support, alternative styles, CLI and Jekyll support.
a simple library for expressing, serializing, and enumerating recurring events in Ruby.
Format dates and times based on human-friendly examples, not arcane strftime directives.
Accurate current and historical timezones and transformations, with support for Geonames and Google latitude - longitude timezone lookups.
Provides daylight savings aware transformations between times in different timezones.
Date and time validation plugin for ActiveModel and Rails.
Debugging Tools
Avoid repeating yourself, use pry-rails instead of copying the initializer to every rails project. This is a small gem which causes rails console to open pry. It therefore depends on pry.
Decorators
DevOps Tools
Provides an elegant DSL in Ruby for performing backups on UNIX-like systems.
Cloud Foundry BOSH is an open source tool chain for release engineering, deployment and lifecycle management of large scale distributed services.
A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
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.
Kamal offers zero-downtime deploys, rolling restarts, asset bridging, remote builds, accessory service management, and everything else you need to deploy and manage your web app in production with Docker.
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.
Diff
Discover
Documentation
Adds database schema annotations for your ActiveRecord models as text comments as well as routes. An active and maintained hard fork of Annotate.
A Rails engine to provide the ability to add documentation to a Rails application.
Library add improve test log for RSpec and WebMock, validate its according to API Blueprint and Open API, show the documentation coverage with log.
Automatically generate change log from your tags, issues, labels and pull requests on GitHub.
An RDoc formatter built with simplicity, beauty and ease of browsing in mind.
A markdown based documentation system for style guides. It parses comments in your CSS and helps you turn them into a beautiful style guide.
E-Commerce and Payments
Ebook
Send e-mail straight from forms in Rails with I18n, validations, attachments and request information.
A Rails Engine to manage, test and navigate through all your email templates of your app, being able to preview them directly in your browser.
A fully featured open source mail delivery platform for incoming & outgoing e-mail.
Encryption
bcrypt-ruby is a Ruby binding for the OpenBSD bcrypt() password hashing algorithm.
Environment Management
Change your current Ruby. No shims, no crazy options or features, ~90 LOC.
Use rbenv to pick a Ruby version for your application and guarantee that your development environment matches production.
Error Handling
Event Sourcing
Feature Flippers and A/B Testing
A Rails Engine framework that helps safe and rapid feature prototyping.
Feature flipping for ANYTHING. Make turning features on/off so easy that everyone does it. Whatever your data store, throughput, or experience.
File Upload
Standalone image and file server to decouple your app from file management concerns.
Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks.
A Ruby gem for on-the-fly processing - suitable for image uploading in Rails, Sinatra and much more!.
Easy file attachment management for ActiveRecord. Deprecated as of May 14, 2018.
File System Listener
A command line tool to easily handle events on file system modifications.
Automatically reload your browser when 'view' files are modified.
The Listen gem listens to file modifications and notifies you about the changes.
Form Builder
Dynamic nested forms using jQuery made easy; works with formtastic, simple_form or default forms.
Rails form builder that makes it easy to create forms with Bootstrap 4 markup
A Rails form builder plugin with semantically rich and accessible markup.
Rails form builder that makes it super easy to create beautiful-looking forms with Twitter Bootstrap 3+.
Game Development and Graphics
Gem Servers
Geolocation
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.
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.
Git Tools
GraphQL
GUI
HTML/XML Parsing
HTTP Clients and tools
A tiny library for parsing the Accept-Language header from browsers (as defined in RFC 2616).
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.
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.
A precise and fast user agent parser and device detector, backed by the largest and most up-to-date user agent database.
Pure ruby HTTP client, supports HTTP/2 and HTTP/1, concurrent requests, plugin system for extended features (cookies, retries, following redirects, proxy, streaming...).
Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.
Cross-Origin Resource Sharing (CORS) middleware for Rack applications.
Image Processing
FastImage finds the size or type of an image given its uri by fetching as little as needed.
High-level image processing wrapper for libvips and ImageMagick/GraphicsMagick
Implementations/Compilers
Natalie is a Ruby compiler that provides an ahead-of-time compiler using C++ and gcc/clang as the backend.
Internationalization
Ruby internationalization tool with less memory, simple, clean namespace and threadsafe.
Globalize builds on the I18n API in Ruby on Rails to add model translations to ActiveRecord models.
Manage missing and unused translations with the awesome power of static analysis.
Minimalistic, flexible and fast Internationalization library. It supports localization, interpolations, pluralization, fallbacks, nested keys and more.
Repository for collecting Locale data for Rails I18n as well as other interesting, Rails related I18n stuff.
IRB
Logging
Fluentd collects events from various data sources and writes them to files, database or other types of storages.
Log4r is a comprehensive and flexible logging library for use in Ruby programs.
A flexible logging library for use in Ruby programs based on the design of Java's log4j library.
A structured logging system that is capable of handling a message, structured data, or an exception easily. It has JSON and human-readable formatters.
Machine Learning
A Curated List of Ruby Machine Learning Links and Resources.
A CLI tool to transpile trained classic ML models into a native Ruby code with zero dependencies.
The PredictionIO Ruby SDK provides a convenient API to quickly record your users' behavior and retrieve personalized predictions for them.
Ruby language bindings for LIBSVM. SVM is a machine learning and classification algorithm.
Markdown Processors
Measurements
Mobile Development
Money
Music and Sound
Natural Language Processing
Awesome List for Practical Natural Language Processing done in Ruby.
Pragmatic Segmenter is a rule-based sentence boundary detection gem that works out-of-the-box across many languages.
Collection of links to Ruby Natural Language Processing (NLP) libraries, tools and software.
A collection of text algorithms including Levenshtein distance, Metaphone, Soundex 2, Porter stemming & White similarity.
Ruby gem for text readability analysis. Calculate readability statistics using 13 proven formulas (Flesch, SMOG, Coleman-Liau, etc.) with support for 22 languages.
Networking
Notifications
iOS, Android and Windows Phone Push notifications made easy.
Optimizations
Quickly get a count estimation for large tables (>99% of accuracy for PostgreSQL).
Provides a C-optimized method for transforming a string from any capitalization into underscore-separated
ORM/ODM
A lean Repository-pattern based ORM framework for Hanami and modern Ruby applications.
Redis Objects provides a Rubyish interface to Redis, by mapping Redis data types to Ruby objects, via a thin layer over the redis gem.
ORM/ODM Extensions
Auditing and Versioning
Simplified snapshots and restoration for ActiveRecord models and associations with a transparent white-box implementation
ActiveRecord plugin allowing you to hide and restore records without actually deleting them.
Audited is an ORM extension for ActiveRecord & MongoMapper that logs all changes to your models.
Allows you to "destroy" an object without deleting the record or associated records.
A simple ActiveRecord mixin to add conventions for flagging records as discarded.
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.
Multi-user non-linear history tracking, auditing, undo, redo for mongoid.
Track changes to your ActiveRecord models' data for auditing or versioning.
Bit array
Import
Misc
Extending Arel: more "rubyish" syntax, functions for strings, dates, math... and add native extensions for some DBs.
An exhaustive collection of off-the-shelf and tested ActiveModel/ActiveRecord validations.
Allow you to pluck attributes from nested associations without loading a bunch of records.
Multi-tenancy
Social
Adds reputation behavior to Rails apps in the form of Badges, Points, and Rankings for ActiveRecord or Mongoid.
Provides easy activity tracking for your ActiveRecord, Mongoid 3 and MongoMapper models in Rails 3 and 4. Similar to Github's Public Activity.
Sorting
Tagging
Tree
Extends ActiveRecord to add simple support for organizing items into parent–children relationships.
Organise ActiveRecord model into a tree structure using a variation on the materialised path pattern.
Awesome Nested Set is an implementation of the nested set pattern for ActiveRecord models.
Package Management
Pagination
A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for modern web app frameworks and ORMs.
A keyset pagination library to find the next or previous record(s) relative to the current one efficiently, e.g. for infinite scroll.
A Pure ruby library to merge or stump PDF files, number pages and more.
Extract PDF pages as images and text. A simple Ruby API to ghostscript, imagemagick, and pdftotext.
Performance Monitoring
Presentation Programs
Process Management and Monitoring
Processes
Profiler and Optimization
QR
Queues and Messaging
Backburner is a beanstalkd-powered job queue that can handle a very high volume of jobs.
Bunny is a popular, easy to use, well-maintained Ruby client for RabbitMQ (3.3+).
GoodJob is a multithreaded, Postgres-based, ActiveJob backend for Ruby on Rails.
An ActiveJob extension to make long-running jobs interruptible and resumable.
Framework used to simplify Apache Kafka (a distributed streaming platform) based Ruby applications development.
A Ruby job queue that uses PostgreSQL's advisory locks for speed and reliability.
A Sidekiq extension to make long-running jobs interruptible and resumable.
A single process background processing library using Celluloid. Aimed to be Sidekiq's little brother.
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.
Rails Application Generators
Robotics
RSS
Serverless
Scheduling
Scientific
Bindings
Classifiers
Data analysis/structures
Numerical arrays
SciRuby
Specific
Utilities
Library with documentation on when to use a particular structure/algorithm.
Ruby & C implementation of Jaro-Winkler distance algorithm which supports UTF-8 string.
Search
High-level Elasticsearch Ruby framework based on the official elasticsearch-ruby client.
Simple ElasticSearch client with support for migrations and ActiveRecord integration.
Has scope allows you to easily create controller filters based on your resources named scopes.
Builds ActiveRecord named scopes that take advantage of PostgreSQL's full text search.
Adds a scope supporting search queries and autocompletion against existing fields on ActiveRecord models and associations.
Extends your ActiveRecord models to support fulltext search engine like queries via simple query strings and hash-based queries.
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.
A Ruby library for expressive, powerful interaction with the Solr search engine.
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!
Security
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.
Services and Apps
SEO
Social Networking
Spreadsheets and Documents
State Machines
State machines for Ruby classes (plain Ruby, Rails Active Record, Mongoid).
A plain Ruby state machine with a straightforward and expressive syntax.
A minimal finite state machine implementation in less than 50 lines of code.
Static Site Generation
Template Engine
Testing
minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking.
A test double framework that features a rich selection of double techniques and a terse syntax.
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.
Formatters
Fake Data
Mock
Generate mocks from ActiveRecord models for unit tests that run fast because they don’t need to load Rails or a database.
Ruby DNS mock. Mimic any DNS records for your test environment and even more.
WebDrivers
Extra
Appraisal integrates with bundler and rake to test your library against different versions of dependencies.
An modeling library for .feature files that is an abstration layer on top of the gherkin gem, providing a stable base upon which to build other Gherkin related tools.
Run, retrigger, handle all type and OS-independent tests against your GitHub Pull Requests.
Optimal test suite parallelisation across CI nodes for RSpec, Cucumber, Minitest, Spinach and Turnip.
Speedup Test::Unit + RSpec + Cucumber by running parallel on multiple CPUs (or cores).
Preloads your rails environment in the background for faster testing and Rake tasks.
Provides "time travel" and "time freezing" capabilities, making it dead simple to test time-dependent code.
Run RSpec tests on multiple cores. Like parallel_tests but with incremental summarized output.
Third-party APIs
Video
View components
View helpers
Rails extension for transforming URLs to appropriate resource (image, link, YouTube, Vimeo video...).
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.
Web Crawling
Ruby gem that generates thumbnail images and videos from a given URL. Much like popular social website with link preview.
A modern web scraping framework written in Ruby which works out of box with Headless Chromium/Firefox, PhantomJS, or simple HTTP requests and allows to scrape and interact with JavaScript rendered websites.
Mechanize is a ruby library that makes automated web interaction easy.
Web Frameworks
Web Servers
A high performance HTTP server for Ruby that includes GraphQL and WebSocket support.
A high-performance web server for Ruby, supporting HTTP/1, HTTP/2 and TLS.