Ruby

repo: markets/awesome-ruby
category: Programming Languages related: Rails · Gems · Perl · Python · Lua


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!

<div align="center"> <hr> <sup><b>Sponsored by:</b></sup> <br> <br> <a href="https://betterstack.com"> <div> <img src="https://raw.githubusercontent.com/markets/awesome-ruby/master/media/sponsors/betterstack.png" width="200" alt="Better Stack"> </div> <div> Better Stack lets you see inside any stack,<br> debug any issue, and resolve any incident. </div> </a> <br> <hr> </div>

Admin Interface

  • ActiveAdmin - A Ruby on Rails framework for creating elegant backends for website administration.
  • ActiveScaffold - 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.
  • Administrate - A Rails engine that helps you put together a super-flexible admin dashboard, by Thoughtbot.
  • Avo Admin for Rails - Avo is the modern approach to building an advanced admin panel that can be used by the entire organization. It has all the tools an admin panel needs and more. We have carefully made sure that you have all the escape hatches you need to ensure you can build your next admin panel for Ruby on Rails incredibly fast and easily.
  • bhf - A simple to use Rails-Engine-Gem that offers an admin interface for trusted user.
  • Hot Glue - 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.
  • Madmin - A robust Admin Interface for Ruby on Rails apps
  • MotorAdmin - A low-code Admin panel and Business Intelligence Rails engine. No DSL - configurable from the UI.
  • RailsAdmin - A Rails engine that provides an easy-to-use interface for managing your data.
  • Trestle - A modern, responsive admin framework for Rails. Build a back-end in minutes that will grow with the needs of your application.

Analytics

API Builder and Discovery

  • ActiveModel::Serializers - JSON serialization of objects.
  • Acts_As_Api - Easy And Fun, in creating XML/JSON responses in Rails 3,4,5 and 6.
  • Alba - A JSON serializer for Ruby, JRuby and TruffleRuby.
  • Blanket - A dead simple API wrapper.
  • Blueprinter - Simple, Fast, and Declarative Serialization Library for Ruby.
  • cache_crispies - Speedy Rails JSON serialization with built-in caching.
  • Crepe - The thin API stack.
  • EasyTalk - Define structured data models with a DSL that generates JSON Schema and ActiveModel validations from a single source of truth.
  • 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-rb – Efficient and convenient JSON API (de)serialization library.
  • jsonapi-serializer - A fast JSON:API serializer for Ruby Objects.
  • JSONAPI::Resources - JSONAPI::Resources, or "JR", provides a framework for developing a server that complies with the JSON API specification.
  • JSONAPI::Utils - JSONAPI::Utils is built on top of JSONAPI::Resources taking advantage of its resource-driven style and bringing an easy way to build modern JSON APIs with no or less learning curve.
  • 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.
  • Roar - Resource-Oriented Architectures in Ruby.
  • Spyke - Interact with REST services in an ActiveRecord-like manner.
  • Version Cake - An unobtrusive way to version APIs in your Rails app.
  • versionist - A plugin for versioning Rails based RESTful APIs.

Assets

Authentication and OAuth

  • API Guard - JWT authentication solution for Rails APIs.
  • Authentication Zero - An authentication system generator for Rails applications.
  • Authlogic - Authlogic is a clean, simple, and unobtrusive ruby authentication solution.
  • Clearance - Small and simple email & password based authentication for Rails.
  • Devise - A flexible authentication solution for Rails based on Warden.
  • JWT - JSON Web Token implementation in Ruby.
  • Monban - A very simple and extensible user authentication library for rails.
  • OmniAuth - A library that standardizes multi-provider authentication utilizing Rack middleware.
  • Rodauth - Authentication and account management framework for Rack applications.
  • Sorcery - A stripped-down, bare-bones authentication library for Rails.
  • warden - General Rack Authentication Framework.
  • OAuth:

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.
  • ActionPolicy - Authorization framework for Ruby and Rails applications. Composable, extensible and performant.
  • CanCanCan - Continuation of CanCan, an authorization Gem for Ruby on Rails.
  • Consul - A scope-based authorization solution for Ruby on Rails.
  • Petergate - Easy to use and read action and content based authorizations.
  • Pundit - Minimal authorization through OO design and pure Ruby classes.
  • Rabarber - Simple role-based authorization for Rails with multi-tenancy support.

Automation

  • ActiveWorkflow - An intelligent process and workflow automation platform based on software agents.
  • Danger - Automate your team's conventions surrounding code review.
  • Huginn - Huginn is a system for building agents that perform automated tasks for you online.
  • Neovim - Ruby bindings for Neovim to make your own neovim editor plugins in Ruby.
  • Runbook - A framework and Ruby DSL for progressive system automation.
  • 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.

Boilerplates & UI Kits

Business logic

  • ActiveInteraction - Manage application specific business logic.
  • 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.
  • Servactory - A set of tools for building reliable service objects of any complexity.
  • Surrounded - Encapsulated related objects in a single system to add behavior during runtime. Extensible implementation of DCI.
  • Waterfall - A slice of functional programming to chain ruby services and blocks, thus providing a new approach to flow control.
  • wisper - A micro library providing Ruby objects with Publish-Subscribe capabilities.

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.
  • IdentityCache - A blob level caching solution to plug into ActiveRecord.
  • 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.
  • redis-store - Redis Store provides a full set of stores (Cache, I18n, Session, HTTP Cache) for modern Ruby frameworks like: Ruby on Rails, Sinatra, Rack, Rack::Cache and I18n. It supports object marshalling, timeouts, single or multiple nodes, and namespaces.
  • Second Level Cache - Write-Through and Read-Through caching library for ActiveRecord 4.

Captchas and anti-spam

  • ActsAsTextcaptcha - Protection for Rails models with text-based logic question captchas (from Rob Tuley's textcaptcha.com)
  • Invisible Captcha - Unobtrusive and flexible spam protection based on the honeypot strategy. It also provides a time-sensitive form submission.
  • Rakismet - Easy Akismet and TypePad AntiSpam integration for Rails.
  • reCAPTCHA - reCaptcha API helpers for ruby apps.
  • Voight-Kampff - A Ruby gem that detects bots, spiders, crawlers and replicants.

CLI Builder

  • Clamp - A command-line application framework.
  • cmdparse - An advanced command line parser supporting nested commands.
  • Commander - The complete solution for Ruby command-line executables.
  • dry-cli - General purpose Command Line Interface (CLI) framework for Ruby.
  • GLI - Git-Like Interface Command Line Parser.
  • Main - A class factory and DSL for generating command line programs real quick.
  • Optimist - A commandline option parser for Ruby that just gets out of your way.
  • Rake - A make-like build utility for Ruby.
  • Runfile - Build command line applications per project with ease. Rake-inspired, Docopt inside.
  • Slop - Simple Lightweight Option Parsing.
  • Terrapin - A small command line library (Formerly Cocaine).
  • Thor - A toolkit for building powerful command-line interfaces.
  • TTY - Toolbox for developing CLI clients.

CLI Utilities

  • Awesome Print - Pretty print your Ruby objects with style -- in full color and with proper indentation
  • Betty - Friendly English-like interface for your command line. Don't remember a command? Ask Betty.
  • colorize - Extends String class or add a ColorizedString with methods to set text color, background color and text effects.
  • colorls - Beautifies the ls command, with color and font-awesome icons.
  • formatador - STDOUT text formatting.
  • Paint - Simple and fast way to set ANSI terminal colors.
  • Pastel - Terminal output styling with intuitive and clean API.
  • Ru - Ruby in your shell.
  • Ruby/Progressbar - The most flexible text progress bar library for Ruby.
  • Tabulo - Plain text table generator with a DRY, column-based API.
  • TablePrint - Slice your data from multiple DB tables into a single CLI view.
  • Terminal Table - Ruby ASCII Table Generator, simple and feature rich.
  • Tmuxinator - Create and manage complex tmux sessions easily.
  • Whirly - A simple, colorful and customizable terminal spinner 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.
  • humidifier - Programmatically generate and manage AWS CloudFormation templates, stacks, and change sets.

CMS

  • Alchemy CMS - A powerful, userfriendly and flexible Open Source Rails CMS.
  • Avo CMS for Rails - Avo is a very custom Content Management System for Ruby on Rails that saves engineers and teams months of development time. It's designed to use your app's database structure, uses configuration instead of traditional methods, and when configuration isn't enough, it falls back to writing regular Rails code that you're used to.
  • Camaleon CMS - A dynamic and advanced content management system based on Ruby on Rails 4.
  • ComfortableMexicanSofa - Powerful Rails 5.2+ CMS Engine.
  • Fae - Flexible, open source, Rails CMS engine.
  • MaglevCMS - An open source page builder with an sleek UI.
  • LocomotiveCMS - A simple but powerful CMS based on Liquid templates and Mongodb database.
  • Publify - A self hosted Web publishing platform on Rails.
  • PushType - A next generation, open source content management system for Ruby 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 5.2+.
  • Sitepress - Manage content files in Rails with the same features you'd expect from static site generators like Jekyll, Middleman, and Bridgetown.
  • Spina CMS - A beautiful CMS for Rails developers.
  • Storytime - Rails 4+ CMS and blogging engine, with a core focus on content.

Code Analysis and Metrics

  • Brakeman - A static analysis security vulnerability scanner for Ruby on Rails applications.
  • 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.
  • 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.
  • Sorbet - A static type checker for Ruby.
  • Suture - A Ruby gem that helps you refactor your legacy code.
  • Traceroute - A Rake task gem that helps you find the dead routes and actions for your Rails 3+ app

Code Formatting

  • niceql - A dependentless SQL and SQL errors formatting and colorizing. ActiveRecord seemless integration.
  • prettier - A prettier plugin for the Ruby language.
  • RuboCop - A static code analyzer, based on the community Ruby style guide.
  • Standard - Ruby Style Guide, with linter & automatic code fixer

Code Highlighting

  • CodeRay - Fast and easy syntax highlighting for selected languages.
  • pygments.rb - A Ruby wrapper for the Python pygments syntax highlighter.
  • Rouge - A pure Ruby code highlighter that is compatible with Pygments.

Code Loaders

  • Zeitwerk - An efficient and thread-safe Ruby code loader.

Coding Style Guides

Concurrency and Parallelism

  • 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.
  • 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.
  • Polyphony - Fine-grained concurrency for Ruby.

Configuration

  • AnywayConfig - Configuration library for Ruby gems and applications, supporting multiple sources (yml, secrets) and environments.
  • Chamber - Surprisingly customizable convention-based approach to managing your app's 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
  • Envyable - The simplest YAML to ENV config loader.
  • 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.
  • Sail - A lightweight Rails engine that brings an admin panel for managing configuration settings on a live Rails app.

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.
  • Bitwise - Fast, memory efficient bitwise operations on large binary strings
  • Finishing Moves - Small, focused, incredibly useful methods added to core Ruby classes. Includes the endlessly useful nil_chain.
  • Docile - A tiny library that lets you map a DSL (domain specific language) to your Ruby objects in a snap.
  • dry-rb - dry-rb is a collection of next-generation Ruby libraries, each intended to encapsulate a common task.
  • Hamster - Efficient, immutable, and thread-safe collection classes for Ruby.
  • Hanami::Utils - Lightweight, non-monkey-patch class utilities for Hanami and Ruby app.
  • MemoWise - Memoize any instance/class/module method, including support for frozen objects - rigorously tested and benchmarked on all Rubies - fast performance of memoized reads.
  • Ruby Facets - The premiere collection of general purpose method extensions and standard additions for Ruby.
  • Trick Bag - Assorted Ruby classes and methods to simplify and enhance your code.
  • Attributes
    • ActiveAttr - What ActiveModel left out.
    • Virtus - Attributes on Steroids for Plain Old Ruby Objects.
    • AttrExtras - Takes some boilerplate out of Ruby with methods like attr_initialize.
  • Hash
    • Hashie - A collection of tools that extend Hashes and make them more useful.
  • String

Country Data

  • Carmen - A repository of geographic regions.
  • Countries - All sorts of useful information about every country packaged as pretty little country objects.
  • i18n_data - country/language names and 2-letter-code pairs, in 85 languages, for country/language i18n.
  • normalize_country - Convert country names and codes to a standard, includes a conversion program for XMLs, CSVs and DBs.
  • Phonelib - Ruby gem for phone validation and formatting using Google libphonenumber library data.
  • Phony - Fast international phone number (E164 standard) normalizing, splitting and formatting.
  • validates_zipcode - Postal code / zipcode validation for Rails, supporting 233 country codes.

CRM

  • Fat Free CRM - An open source Ruby on Rails based customer relationship management platform.
  • Hitobito - An open source Ruby on Rails based community management solution.

Cryptocurrencies and Blockchains

  • Blockchain Lite - Build your own blockchains with crypto hashes; revolutionize the world with blockchains, blockchains, blockchains one block at a time.
  • Ciri - Ruby implementation of Ethereum.
  • MoneyTree - A Ruby implementation of Bitcoin HD Wallets (Hierarchical Deterministic) BIP32.
  • Peatio - Most Advanced Cryptocurrency open-source assets exchange.

Dashboards

  • Blazer - Simple data viewer using only SQL. Output to table, chart, and maps.
  • Smashing - Smashing is a Sinatra based framework that lets you build beautiful dashboards. This project is the maintained spiritual successor to the Dashing framework.
  • Dashing-Rails - The exceptionally handsome dashboard framework for Rails.

Data Processing and ETL

  • attr-gather - 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.
  • smarter_csv - 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.
  • CSV Reader - A modern tabular data (line-by-line records) reader supports "classic" CSV but also CSV Numerics, CSV <3 [JSON](/@harrisonqian/awesome/wiki/miscellaneous/json), CSV <3 YAML, tab, space or fixed width fields (FWF) and many more flavors and dialects.
  • json-streamer - Stream JSON data based on various criteria (key, nesting level, etc).
  • Kiba - A lightweight data processing / ETL framework for Ruby.
  • Multiwoven - The open-source reverse ETL, data activation platform developed using Ruby and Ruby on Rails.
  • ruby-stemmer - It Provides Snowball algorithm for stemming purposes.

Data Visualization

  • Chartkick - Create beautiful Javascript charts with one line of Ruby.
  • 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.
  • ApexCharts.rb - Awesome charts for your ruby app. Works on any ruby app, including Rails app. It even works on plain HTML+ERB files.
  • 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.
  • mongo-ruby-driver - MongoDB Ruby driver.
  • 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.
  • Trilogy - A performance-oriented C library for MySQL-compatible databases.

Database Tools

  • connection_pool - Generic connection pooling for Ruby, that can be used with anything, e.g. Redis, Dalli, etc.
  • Database Cleaner - Database Cleaner is a set of strategies for cleaning your database in Ruby.
  • Database Consistency - An easy way to check that application constraints and database constraints are in sync.
  • 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.

truncated — full list on GitHub

[[curator]]
I'm the Curator. I can help you navigate, organize, and curate this wiki. What would you like to do?