Giter Site home page Giter Site logo

awesome-ruby's Introduction

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! Please take a look at the contribution guidelines first.

Thanks to all contributors, you're awesome and wouldn't be possible without you! The goal is to build a categorized community-driven collection of very well-known resources.

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
    • Berkshelf - A Chef Cookbook 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 - Loads environment variables from .env
  • ruby-build - Compile and install Ruby
  • 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
  • Spring - Preloads your rails environment in the background for faster testing and Rake tasks

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
  • Goliath - A non-blocking Ruby web server framework

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
  • DataMapper - ORM which works well with legacy databases. Last release (1.2.0) was on 13 October 2011.
  • MongoMapper
  • Ohm - Object-hash mapping library for Redis

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.
  • Typhoeus - Typhoeus wraps libcurl in order to make fast and reliable requests

API Builder

  • Grape - An opinionated micro-framework for creating REST-like APIs in Ruby
  • Rails::API
  • ActiveModel::Serializers - JSON serialization of objects
  • 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
  • Termit - Google Translate with speech synthesis in your terminal

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
  • r18n - Advanced i18n library for Rails, Sinatra, desktop apps, models, works well with complex languages like Russian.

Geolocation

Caching

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- The express way to send mail from Ruby
  • Mailman - An incoming mail processing microframework in Ruby
  • Incoming - Incoming! helps you receive email in your Rack apps
  • MailCatcher - Catches mail and serves it through a dream
  • LetterOpener - Preview mail in the browser instead of sending.

Form Builder

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

Pagination

  • Kaminari - A Scope & Engine based, clean, powerful, customizable and sophisticated paginator for modern web app frameworks and ORMs
  • will_paginate - A pagination library that integrates with Ruby on Rails, Sinatra, Merb, DataMapper and Sequel

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.
  • LinkThumbnailer - Ruby gem that generates thumbnail images and videos from a given URL. Much like popular social website with link preview.
  • anemone - Ruby library and CLI for carwling websites.

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.

Dashboards

  • Dashing-Rails - The exceptionally handsome dashboard framework for Rails.

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
  • bullet - help to kill N+1 queries and unused eager loading

Third-party APIs

  • Octokit - Ruby toolkit for the GitHub API
  • gitlab - Ruby wrapper and CLI for the GitLab 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
  • flickr - A Ruby interface to the Flickr API

CMS

Admin Interface

  • ActiveAdmin - a Ruby on Rails framework for creating elegant backends for website administration
  • RailsAdmin
  • bhf - A simple to use Rails-Engine-Gem that offers an admin interface for trusted user

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.

SEO

  • FriendlyId - The "Swiss Army bulldozer" of slugging and permalink plugins for Active Record
  • MetaTags - A gem to make your Rails application SEO-friendly
  • 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

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
  • Mina - Really fast deployer and server automation tool.
  • Lita - ChatOps for Ruby: A pluggable chat bot framework usable with any chat service.

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
  • git-auto-bisect - Find the commit that broke master
  • git-whence - Find which merge a commit came from
  • git-spelunk - Dig through git blame history

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
  • Yomu - Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf)

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
  • Ruby Weekly - A free, once–weekly e-mail round-up of Ruby news and articles

Other Awesome Lists

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

awesome-ruby's People

Contributors

markets avatar erol avatar viktorsr avatar majjoha avatar alexlarra avatar gottfrois avatar tony612 avatar datanoob avatar rajeshreddym avatar abom avatar acrogenesis avatar bayandin avatar andycox avatar brandonhilkert avatar carloslcervantes avatar davidcelis avatar edelpero avatar fleveque avatar matfiz avatar shime avatar jimmycuadra avatar kdabir avatar miharekar avatar narkoz avatar rmoriz avatar shidel-dev avatar snkashis avatar wconrad avatar geemus avatar zhanghandong avatar

Watchers

James Cloos avatar Walter Skyrim avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.