awesome-ruby
A collection of awesome Ruby libraries, tools, frameworks and software
https://github.com/eric-erki/awesome-ruby
Last synced: about 8 hours ago
JSON representation
-
ORM/ODM Extensions
- Closure Tree - Easily and efficiently make your ActiveRecord models support hierarchies using a Closure Table.
- Destroyed At - Allows you to "destroy" an object without deleting the record or associated records.
- mongoid-history - Multi-user non-linear history tracking, auditing, undo, redo for mongoid.
- Paranoia - A re-implementation of acts_as_paranoid for Rails 3 and 4, using much, much, much less code.
- ActsAsList - Provides the capabilities for sorting and reordering a number of objects in a list.
- Espinita - Audit activerecord models like a boss.
-
Package Management
- 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 - The missing package manager for OS X.
- Traveling Ruby - Traveling Ruby lets you create self-contained Ruby app packages for Linux and OS X.
- Traveling Ruby - Traveling Ruby lets you create self-contained Ruby app packages for Linux and OS X.
- Homebrew-cask - A CLI workflow for the administration of Mac applications distributed as binaries.
- RubyGems - Community's gem hosting service.
- Linuxbrew - A fork of Homebrew for Linux.
-
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.
- Pagy - Pagy is the ultimate pagination gem that outperforms the others in each and every benchmark and comparison. More details can be found on [Pagy Wiki](https://ddnexus.github.io/pagy/index).
- will_paginate - A pagination library that integrates with Ruby on Rails, Sinatra, Merb, DataMapper and Sequel.
-
PDF
- CombinePDF - A Pure ruby library to merge or stump PDF files, number pages and more.
- Gimli - Utility for converting markup files to pdf files.
- HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby.
- InvoicePrinter - Super simple PDF invoicing in Ruby (built on top of Prawn).
- 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.
- Wicked Pdf - PDF generator (from HTML) plugin for Ruby on Rails.
- Wisepdf - Wkhtmltopdf wrapper done right.
- Squid - Squid · A Ruby library to plot charts in PDF files
-
Performance Monitoring
- TraceView - Full-stack application tracing and brilliant data visualization to build faster, more reliable web apps.
- Instrumental - Measure your application in real time with [Instrumental](http://instrumentalapp.com).
- Scout - Scout Ruby Application Monitoring Agent.
- Skylight - A smart profiler for your Rails apps that visualizes request performance.
- Instrumental - Measure your application in real time with [Instrumental](http://instrumentalapp.com).
- New Relic - Find and fix Ruby errors with New Relic application monitoring and troubleshooting.
-
Presentation Programs
- Slide Show (S9) - Write your slides / talks / presentations in plain text with markdown formatting conventions and generate (static) web pages; template packs incl. deck.js, impress.js, reveal.js, shower, s6, s5 and more.
-
Processes
- childprocess - Cross-platform ruby library for managing child processes.
- posix-spawn - Fast Process::spawn for Rubys >= 1.8.7 based on the posix_spawn() system interfaces.
- childprocess - Cross-platform ruby library for managing child processes.
-
Process Management and Monitoring
- Bluepill - Simple process monitoring tool.
- Eye - Process monitoring tool. Inspired from Bluepill and God.
- Foreman - Manage Procfile-based applications.
- God - An easy to configure, easy to extend monitoring framework written in Ruby.
- Health Monitor Rails - A mountable Rails plug-in to check health of services (Database, Cache, Sidekiq, Redis, e.t.c.) used by the Rails app.
- Procodile - Run processes in the background (and foreground) on Mac & Linux from a Procfile.
-
Profiler and Optimization
- batch-loader
- benchmark-ips - Provides iteration per second benchmarking for Ruby.
- bullet - Help to kill N+1 queries and unused eager loading.
- 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.
- rbspy - Sampling profiler for any Ruby process.
- ruby-prof - A code profiler for MRI rubies.
- Derailed Benchmarks - A series of things you can use to benchmark any Rack based app.
- Rbkit - profiler for Ruby. With a GUI.
-
QR
- RQRCode - RQRCode is a library for creating and rendering QR codes into various formats.
-
Queues and Messaging
- 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.
- Karafka - Framework used to simplify Apache Kafka (a distributed streaming platform) based Ruby applications development.
- March Hare - Idiomatic, fast and well-maintained JRuby client for RabbitMQ.
- Resque - A Redis-backed Ruby library for creating background jobs.
- 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.
- Shoryuken - A super efficient AWS SQS thread based message processor for Ruby.
- 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.
-
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
-
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.
- feedparser - A feed parser and normalizer (Atom, RSS, JSON, etc) library.
-
Scheduling
- 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.
- Sidekiq-Cron - A scheduling add-on for Sidekiq.
-
Scientific
- Red Data Tools - Data processing tools for Ruby.
- PyCall - Calling Python functions from the Ruby language.
- ruby-opencv - An OpenCV wrapper for Ruby.
- 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.
- daru - A library for storage, analysis, manipulation and visualization of data in pure Ruby.
- Daru::View - A library for easy and interactive plotting on Jupyter Notebooks and web applications.
- Rgl - A framework for graph data structures and algorithms.
- NMatrix - Fast numerical linear algebra library for Ruby.
- Numo::NArray - N-dimensional Numerical Array for Ruby.
- mdarray - Multi dimensional array implemented for JRuby inspired by NumPy.
- SciRuby - Tools for scientific computation in Ruby/Rails.
- IRuby - A Ruby kernel for Jupyter.
- 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.
- minimization - Minimization algorithms on pure Ruby.
- rb-gsl - A ruby interface to GNU Scientific library, with NMatrix support.
- 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.
- algorithms - Library with documentation on when to use a particular structure/algorithm.
- jaro_winkler - Ruby & C implementation of Jaro-Winkler distance algorithm which supports UTF-8 string.
- primes-utils - A Rubygem which provides a suite of extremely fast utility methods for testing and generating primes.
- Roots - A Rubygem which provides utilities to find all the nth roots of real and complex values.
- smarter_csv - Ruby Gem for smarter importing of CSV Files as Array(s) of Hashes.
-
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.
- Mongoid Search - Simple full text search implementation for Mongoid.
- pg_search - Builds ActiveRecord named scopes that take advantage of PostgreSQL's full text search.
- Rroonga - The Ruby bindings of Groonga.
- scoped_search - Adds a scope supporting search queries and autocompletion against existing fields on ActiveRecord models and associations.
- 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.
- 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.
- ransack - Object-based searching.
-
Security
- bundler-audit - Patch-level security verification for Bundler.
- Metasploit - World's most used penetration testing software.
- Rack::Protection - Rack middleware for protecting against typical Web attacks.
- Rack::Attack - Rack middleware for blocking & throttling abusive requests.
- 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.
- BeEF - BeEF is short for The Browser Exploitation Framework. It is a penetration testing tool that focuses on the web browser.
-
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.
-
Serverless
-
Social Networking
- Thredded - Rails 4.2+ forums/messageboards engine. Its goal is to be as simple and feature rich as possible.
- Decidim - free open-source participatory democracy for cities and organizations
- diaspora* - A privacy aware, distributed, open source social network.
- Discourse - A platform for community discussion. Free, open, simple.
- Mailboxer - A private message system for Rails applications.
- Mastodon - A GNU Social-compatible microblogging server.
- Social Shares - A gem to check how many times url was shared in social networks.
-
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.
- Spreadsheet Architect - Turn any activerecord relation or ruby object collection into a XLSX, ODS, or CSV spreadsheet.
- Yomu - Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf).
- Docsplit - Gem to convert Microsoft Word (and other) documents into images, pdf, pages or text.
- 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.
- MicroMachine - A minimal finite state machine implementation in less than 50 lines of code.
- simple_states - A super-slim statemachine-like support library.
- Statesman - A statesmanlike state machine library.
- state_machines - Adds support for creating state machines for attributes on any Ruby class.
- 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'.
- FiniteMachine - A plain Ruby state machine with a straightforward and expressive syntax.
-
Static Site Generation
- High Voltage - Easily include static pages in your Rails app.
- Awesome Jekyll - A collection of awesome Jekyll tools, plugins, themes, guides and much more.
- Octopress - Octopress is an obsessively designed toolkit for writing and deploying Jekyll blogs.
- Photish - Generate a highly configurable static website from a photo collection.
- Nanoc - A static site generator, fit for building anything from a small personal blog to a large corporate web site.
- 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
- RSpec - Behaviour Driven Development for Ruby.
- Emoji-RSpec - Custom Emoji Formatters for RSpec.
- Fuubar - The instafailing RSpec progress bar formatter.
- Nyan Cat - Nyan Cat inspired RSpec formatter!
- Aruba - Testing command line applications with cucumber and rspec.
- Capybara - Acceptance test framework for web applications.
- 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.
- Mocha - Mocha is a mocking and stubbing library for Ruby.
- 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).
- factory_bot - A library for setting up Ruby objects as test data.
- Fake Person - Uses some of the most popular given & surnames in the US & UK.
- 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.
Programming Languages
Categories
ORM/ODM Extensions
45
Testing
41
Third-party APIs
30
WebSocket
29
Scientific
27
Code Analysis and Metrics
19
DevOps Tools
19
API Builder and Discovery
18
Database Tools
18
Search
16
Email
15
CLI Utilities
15
Date and Time Processing
15
ORM/ODM
15
Authentication and OAuth
15
E-Commerce and Payments
15
Documentation
15
Abstraction
15
HTTP Clients and tools
14
CLI Builder
14
Web Frameworks
14
Logging
13
PDF
12
CMS
12
Queues and Messaging
12
Core Extensions
12
Database Drivers
11
Assets
11
Natural Language Processing
11
Caching
11
Profiler and Optimization
11
Configuration
11
Internationalization
10
Package Management
10
Git Tools
10
State Machines
9
Error Handling
9
Country Data
9
Form Builder
8
Authorization
8
Code Formatting
8
Web Servers
8
Environment Management
8
Mobile Development
8
Machine Learning
8
Spreadsheets and Documents
7
Admin Interface
7
Analytics
7
File Upload
7
Coding Style Guides
7
Image Processing
7
Data Visualization
7
Social Networking
7
Debugging Tools
7
IRB
7
Web Crawling
7
HTML/XML Parsing
6
Cloud
6
Navigation
6
Static Site Generation
6
Template Engine
6
Performance Monitoring
6
Security
6
RSS
6
Rails Application Generators
6
Ebook
6
Process Management and Monitoring
6
View helpers
6
Concurrency and Parallelism
5
Geolocation
5
Encryption
5
Implementations/Compilers
5
Scheduling
5
Feature Flippers and A/B Testing
5
Pagination
4
GUI
4
GraphQL
4
Captchas and anti-spam
4
SEO
4
Music and Sound
4
Markdown Processors
4
File System Listener
4
Money
3
Optimizations
3
Networking
3
Processes
3
Dashboards
3
Diff
3
Automation
2
Measurements
2
Code Highlighting
2
Robotics
2
Data Processing and ETL
2
Video
2
Decorators
2
Cryptocurrencies and Blockchains
2
Gem Generators
2
Serverless
2
Code Loaders
1
Game Development
1
CRM
1
QR
1
Presentation Programs
1
Sub Categories
Keywords
ruby
243
rails
86
activerecord
26
ruby-on-rails
16
gem
13
api
11
http
10
rack
9
sinatra
9
ruby-gem
9
rubygems
8
rubyml
8
database
8
terminal
7
testing
7
machine-learning
7
redis
7
jruby
6
static-analysis
6
rspec
6
authorization
6
automation
6
security
5
postgresql
5
logging
5
markdown
5
orm
5
graphql
5
sql
5
elasticsearch
5
rubygem
4
cli
4
performance
4
background-jobs
4
events
4
pdf
4
state-machine
4
server
4
monitoring
4
scheduler
4
javascript
4
rubynlp
4
ios
4
dsl
4
postgres
4
search
4
authentication
4
productivity
3
fast
3
mongodb
3