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! 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
  • 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.

API Builder

  • Grape - An opinionated micro-framework for creating REST-like APIs in Ruby
  • Rails::API
  • 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
  • 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
  • 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

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

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.

awesome-ruby's People

Contributors

abom avatar alexlarra avatar andycox avatar bayandin avatar brandonhilkert avatar datanoob avatar edelpero avatar fleveque avatar geemus avatar majjoha avatar markets avatar matfiz avatar miharekar avatar rmoriz avatar shime avatar wconrad avatar

Watchers

 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.