Skip to content

A collection of awesome Ruby libraries, tools, frameworks and software

Notifications You must be signed in to change notification settings

viniborges/awesome-ruby

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 

Repository files navigation

Awesome Ruby

ruby-rocks!

A collection of awesome Ruby libraries, tools, frameworks and software 💎

Inspired by awesome-php, awesome-python, frontend-dev-bookmarks and ruby-bookmarks.

Contributions are always welcome! Thanks to all contributors, you're awesome! The idea is to build a categorized community-driven collection.

Style Guide

Package Management

  • Gems

    • RubyGems - Community's gem hosting service
    • Bundler - Manage your application's gem dependencies with less pain
  • Packages and Applications

    • Homebrew - The missing package manager for OS X
    • Homebrew-cask - a CLI workflow for the administration of Mac applications distributed as binaries
    • CocoaPods - The Objective-C dependency manager

Environment Management

  • rbenv — Use rbenv to pick a Ruby version for your application and guarantee that your development environment matches production
  • 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
  • dotenv
  • chruby - Change your current Ruby. No shims, no crazy options or features, ~90 LOC
  • ruby-install - Installs Ruby, JRuby, Rubinius, MagLev or MRuby

Documentation

  • RDoc - RDoc produces HTML and command-line documentation for Ruby projects
  • YARD - YARD enables the user to generate consistent, usable documentation that can be exported to a number of formats very easily

Testing

  • RSpec - Behaviour Driven Development for Ruby
  • minitest - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking
  • Test::Unit - Test::Unit is a xUnit family unit testing framework for Ruby
  • Cucumber - BDD that talks to domain experts first and code second
  • Capybara - Acceptance test framework for web applications
  • Appraisal - Appraisal integrates with bundler and rake to test your library against different versions of dependencies
  • factory_girl - A library for setting up Ruby objects as test data
  • 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.
  • vcr - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests

Web Frameworks

Web Servers

  • Rack - A Ruby Webserver Interface
  • Unicorn - Rack HTTP server for fast clients and Unix
  • Thin - Tiny, fast & funny HTTP server
  • Puma - A modern, concurrent web server for Ruby

Database Drivers

  • ruby-pg - Ruby interface to PostgreSQL 8.3 and later
  • mysql2 - A modern, simple and very fast Mysql library for Ruby (binding to libmysql)
  • SQLite3
  • redis-rb - A Ruby client that tries to match Redis' API one-to-one, while still providing an idiomatic interface

ORM

  • ActiveRecord
  • Sequel - Sequel is a simple, flexible, and powerful SQL database access toolkit for Ruby
  • Mongoid - An ODM (Object-Document-Mapper) framework for MongoDB in Ruby

Http

  • RESTClient - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions
  • httparty
  • Faraday
  • Sawyer - Secret user agent of HTTP, built on top of Faraday
  • 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.
  • Patron - Patron is a Ruby HTTP client library based on libcurl.

API Builder

  • Grape - An opinionated micro-framework for creating REST-like APIs in Ruby
  • Rails::API
  • Crêpe - The thin API stack
  • jbuilder - Create JSON structures via a Builder-style DSL
  • rabl - General ruby templating with json, bson, xml, plist and msgpack support
  • Pliny - Opinionated template Sinatra app for writing excellent APIs in Ruby
  • Roar - Resource-Oriented Architectures in Ruby

CLI

  • Rake - A make-like build utility for Ruby
  • Thor - A toolkit for building powerful command-line interfaces
  • Commander - The complete solution for Ruby command-line executables
  • Slop - Simple Lightweight Option Parsing

Authentication

  • Devise - A flexible authentication solution for Rails based on Warden
  • Authlogic
  • OmniAuth - A library that standardizes multi-provider authentication utilizing Rack middleware
  • Sorcery
  • Clearance - Small and simple email & password based authenticaton for Rails

OAuth

  • OAuth2 - A Ruby wrapper for the OAuth 2.0 protocol
  • Doorkeeper - An OAuth2 provider for Rails

Authorization

  • CanCanCan
  • Pundit - Minimal authorization through OO design and pure Ruby classes

Queue

  • Resque — A Redis-backed Ruby library for creating background jobs
  • 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.
  • Sucker Punch — A single process background processing library using Celluloid. Aimed to be Sidekiq's little brother.
  • Delayed::Job — Database backed asynchronous priority queue

Scheduling

  • Whenever - A Ruby gem that provides a clear syntax for writing and deploying cron jobs
  • rufus-scheduler - Job scheduler for Ruby (at, cron, in and every jobs)
  • resque-scheduler - A light-weight job scheduling system built on top of Resque

Template Engine

  • Tilt - Generic interface to multiple Ruby template engines
  • Haml - HTML Abstraction Markup Language
  • Slim
  • Liquid
  • Curly

Assets

  • Sass - Sass makes CSS fun again
  • Management:

Markdown Processors

  • kramdown — Kramdown is yet-another-markdown-parser but fast, pure Ruby, using a strict syntax definition and supporting several common extensions
  • Redcarpet — A fast, safe and extensible Markdown to (X)HTML parser
  • Maruku — A pure-Ruby Markdown-superset interpreter

Search

  • Thinking Sphinx - A library for connecting ActiveRecord to the Sphinx full-text search tool
  • elasticsearch-ruby
  • Sunspot - A Ruby library for expressive, powerful interaction with the Solr search engine
  • 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.
  • pg_search - Builds ActiveRecord named scopes that take advantage of PostgreSQL's full text search
  • has_scope - Has scope allows you to easily create controller filters based on your resources named scopes.

Internationalization

  • i18n - Ruby Internationalization and localization solution
  • i18n-tasks - Manage missing and unused translations with the awesome power of static analysis
  • 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

Geolocation

Caching

  • Dalli - A high performance pure Ruby client for accessing memcached servers

File Upload

  • CarrierWave - Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks
  • PaperClip - Easy file attachment management for ActiveRecord
  • DragonFly - A Ruby gem for on-the-fly processing - suitable for image uploading in Rails, Sinatra and much more!

Email

  • Mail - A Really Ruby Mail Library
  • Pony
  • Mailman - An incoming mail processing microframework in Ruby
  • MailCatcher - Catches mail and serves it through a dream

Form Builder

  • Simple Form - Rails forms made easy
  • Formtastic - A Rails form builder plugin with semantically rich and accessible markup

Imagery

  • MiniMagick - A ruby wrapper for ImageMagick or GraphicsMagick command line
  • RMagick - RMagick is an interface between Ruby and ImageMagick

Video

  • Streamio FFMPEG - Simple yet powerful wrapper around the ffmpeg command for reading metadata and transcoding movies

WebSocket

  • Faye - A set of tools for simple publish-subscribe messaging between web clients. It ships with easy-to-use message routing servers for Node.js and Rack applications, and clients that can be used on the server and in the browser.

HTML Parsing

  • Nokogiri - An HTML, XML, SAX, and Reader parser with XPath and CSS selector support

Web Crawling

  • MetaInspector - Ruby gem for web scraping purposes. It scrapes a given URL, and returns you its title, meta description, meta keywords, an array with all the links, all the images in it, etc.

Processes and Threads

  • Parallel
  • posix-spawn - Fast Process::spawn for Rubys >= 1.8.7 based on the posix_spawn() system interfaces

Concurrency

  • EventMachine - An event-driven I/O and lightweight concurrency library for Ruby
  • 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.

Core Extensions

  • ActiveSupport - A collection of utility classes and standard library extensions.
  • Ruby Facets - The premiere collection of general purpose method extensions and standard additions for Ruby.

Error Handling and Monitoring

  • 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

Code Analysis and Metrics

  • SimpleCov - Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites.
  • Rubocop - A static code analyzer, based on the community Ruby style guide.
  • rails_best_practices - A code metric tool for rails projects
  • 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.
  • Brakeman - A static analysis security vulnerability scanner for Ruby on Rails applications.

Debugging Tools

  • debugger - A port of ruby-debug that works on 1.9.2 and 1.9.3.
  • Byebug - A simple to use, feature rich debugger for Ruby 2.

Profiler

  • ruby-prof - A code profiler for MRI rubies
  • rack-mini-profiler - Profiler for your development and production Ruby rack apps
  • perftools.rb - gperftools (formerly known as google-perftools) for Ruby code

Third-party APIs

  • Octokit - Ruby toolkit for the GitHub API
  • fb_graph - A full-stack Facebook Graph API wrapper
  • twitter - A Ruby interface to the Twitter API
    • t - A command-line power tool for Twitter
  • tweetstream - A simple library for consuming Twitter's Streaming API
  • ruby-gmail - A Rubyesque interface to Gmail
  • instagram-ruby-gem - The official gem for the Instagram REST and Search APIs
  • soundcloud-ruby - Official SoundCloud API Wrapper for Ruby
  • linkedin - Provides an easy-to-use wrapper for LinkedIn's REST APIs
  • Yt - An object-oriented Ruby client for YouTube API V3
  • youtube_it - An object-oriented Ruby wrapper for the YouTube GData API
  • ruby-trello - Implementation of the Trello API for Ruby
  • hipchat-rb - HipChat HTTP API Wrapper in Ruby with Capistrano hooks

CMS

Admin Interface

Static Site Generation

  • Jekyll - Transform your plain text into static websites and blogs
  • 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.

Forum Engine

  • Forem
  • discourse - A platform for community discussion. Free, open, simple

E-Commerce and Payments

Analytics

  • Gabba
  • Ahoy - A solid foundation to track visits and events in Ruby, JavaScript, and native apps

DevOps Tools

  • Capistrano - A remote server automation and deployment tool written in Ruby
  • Backup - Provides an elegant DSL in Ruby for performing backups on UNIX-like systems
  • 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
  • Vagrant - Create and configure lightweight, reproducible, and portable development environments
  • Chef - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure

Git Tools

  • hub - a command line tool that wraps Git in order to extend it with extra features and commands that make working with GitHub easier
  • Rugged - Ruby bindings to libgit2

GUI

Game Development

  • Gosu - A 2D game development library for the Ruby and C++ programming languages

Mobile Development

  • RubyMotion - A revolutionary toolchain that lets you quickly develop and test native iOS and OS X applications for iPhone, iPad and Mac
  • Ruboto - A platform for developing full stand-alone apps for Android using the Ruby language and libraries

Robotics

  • Artoo - Next generation robotics framework with support for different platforms: Arduino, Leap Motion, Pebble, Raspberry Pi, etc.

Misc

  • Betty - Friendly English-like interface for your command line. Don't remember a command? Ask Betty
  • Foreman - Manage Procfile-based applications
  • Prawn - Fast, Nimble PDF Writer for Ruby
  • Pry - A powerful alternative to the standard IRB shell for Ruby
  • Guard - A command line tool to easily handle events on file system modifications
  • play ► - Your company's dj
  • Treetop - PEG (Parsing Expression Grammar) parser
  • Kaminari - A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for modern web app frameworks and ORMs

Resources

  • GitHub Explore
  • Ruby5 - The latest news in the Ruby and Rails community
  • 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
  • RubyFlow - Ruby Programming Community Link Blog
  • RubyDaily - Community driven news

Other Awesome Lists

Other amazingly awesome lists can be found in the awesome-awesomeness list.

About

A collection of awesome Ruby libraries, tools, frameworks and software

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published