1
0
Fork 0
mirror of https://github.com/sdogruyol/awesome-ruby.git synced 2024-11-20 11:06:15 -05:00
A curated list of awesome Ruby frameworks, libraries and resources. Inspired by awesome-php & awesome-python.
Find a file
2014-07-04 12:36:40 +03:00
.gitignore First Commit 2014-07-03 13:33:50 +03:00
README.md Added more to High Performance 2014-07-04 12:36:40 +03:00

Awesome Ruby

A curated list of awesome Ruby frameworks, libraries and resources. Inspired by awesome-php & awesome-python.

Environment Management

Libraries for Ruby version and environment management.

  • rvm - Ruby Version Manager
  • rbenv - Groom your apps Ruby environment

Package Management

Libraries for package and dependency management.

  • RubyGems - RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries

Distribution

Libraries to create packaged executables for release distribution.

Files

Libraries for file manipulation and MIME type detection.

Date and Time

Libraries for working with dates and times.

Text Processing

Libraries for parsing and manipulating texts.

  • General

  • Specific Formats

  • Parser

Natural Language Processing

Libraries for working with human languages.

Documentation

Libraries for generating project documentation.

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

Configuration

Libraries for storing configuration options.

Command-line Tools

Libraries for building command-line application.

  • Command-line Application Development

  • Workflow Tools

Imagery

Libraries for manipulating images.

  • MiniMagick - a ruby wrapper for ImageMagick or GraphicsMagick command line.

Audio

Libraries for manipulating audio.

Video

Libraries for manipulating video and GIFs.

  • streamio-ffmpeg Simple yet powerful ruby ffmpeg wrapper for reading metadata and transcoding movies

Geolocation

Libraries for geocoding addresses and working with latitudes and longitudes.

  • geocoder Complete Ruby geocoding solution
  • Geokit - Geokit gem provides geocoding and distance/heading calculations.

HTTP

Libraries for working with HTTP.

  • httparty Makes http fun again!
  • faraday Simple, but flexible HTTP client library, with support for multiple backends.
  • http A simple Ruby DSL for making HTTP requests
  • excon Usable, fast, simple HTTP(S) 1.1 for Ruby
  • nestful Simple Ruby HTTP/REST client with a sane API

Database Drivers

Libraties for connecting and operating databases.

  • Relational Databases

    • ruby-pg Ruby interface to the PostgreSQL >= 8.4
    • mysql2 A modern, simple and very fast Mysql library for Ruby
    • sqlite3-ruby Ruby bindings for the SQLite3 embedded database
  • NoSQL Databases

ORM

Libraries that implement Object-Relational Mapping or datamapping techniques.

  • Relational Databases

    • ActiveRecord - Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes
    • DataMapper - DataMapper is an Object Relational Mapper written in Ruby. The goal is to create an ORM which is fast, thread-safe and feature rich.
    • Sequel - The Database Toolkit for Ruby
  • NoSQL Databases

    • Mongoid - Mongoid (pronounced mann-goyd) is an Object-Document-Mapper (ODM) for MongoDB written in Ruby.

Web Frameworks

Web development frameworks.

  • Ruby On Rails - Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity
  • Sinatra - Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.
  • Padrino - The Godfather of Sinatra provides a full-stack agnostic framework on top of Sinatra
  • Cramp - Cramp is a fully asynchronous real-time web application framework in Ruby
  • Lotus - A newborn complete Ruby web framework that is simple, fast and lightweight.

CMS

Content management systems

RESTful API

Libraries for developing RESTful APIs.

  • Grape - An opinionated micro-framework for creating REST-like APIs in Ruby.
  • Rails::API - Rails for API only applications
  • jbuilder - Create JSON structures via a Builder-style DSL
  • rabl - General Ruby templating with json, bson, xml, plist and msgpack support

Authentication and OAuth

Libraries for implementing authentications schemes.

  • Devise - Devise is a flexible authentication solution for Rails based on Warden
  • Omniauth - OmniAuth is a flexible authentication system utilizing Rack middleware
  • Warden - General Rack Authentication Framework
  • AuthLogic - A simple ruby authentication solution
  • Sorcery - Magical authentication for Rails 3 & 4
  • CanCanCan Authorization gem for Rails (continued version of CanCan from ryanb)
  • doorkeeper An OAuth 2 provider for Rails

Template Engine

Libraries and tools for templating and lexing.

  • Slim A templating lang that reduce the syntax to the essential parts without becoming cryptic.
  • Haml HTML Abstraction Markup Language - A Markup Haiku
  • Tilt
  • Liquid

Queue

Libraries for working with event and task queues.

  • Resque A Redis-backed Ruby library for creating background jobs, placing them on multiple queues.
  • 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.
  • Delayed::Job — Database backed asynchronous priority queue.
  • Qu A Ruby library for queuing and processing background jobs.
  • Sidekiq Simple, efficient background processing for Ruby

Site Monitoring

Libs for analytics, monitoring

*rack-google-analytics Simple Rack middleware for implementing google analytics tracking *DataDog A monitoring service for IT, operations and development teams *Keen IO Build analytics features directly into your Ruby apps

Libraries and software for indexing and performing search queries on data.

Asset Management

Tools for managing, compressing and minifying website assets.

  • sprockets Rack-based asset packaging system

Caching

Libraries for caching data.

  • rack-cache HTTP Caching for Ruby Web Apps
  • Dalli - a high performance pure Ruby client for accessing memcached servers.

Email

Libraries for sending and parsing email.

Internationalization

Libraries for woking with i18n.

  • i18n - Basic internationalization(i18n) library for Ruby

URL Manipulation

Libraries for parsing URLs.

HTML Manipulation

Libraries for working with HTML and XML.

Web Crawling

Libraries for scraping websites.

Web Content Extracting

Libraries for extracting web contents.

Downloader

Libraries for downloading.

Forms

Libraries for working with forms.

  • simple_form Forms made easy for Rails
  • formtastic A Rails form builder plugin with semantically rich and accessible markup

Data Validation

Libraries for validating data. Used for forms in many cases.

Anti-spam

Libraries for fighting spam.

Tagging

Libraries for tagging items.

Build Tools

Compile software from source code.

Admin Panels

Libraries for administrative interfaces.

  • active_admin The administration framework for Ruby on Rails applications
  • rails_admin A Rails engine that provides an easy-to-use interface for managing your data

Processes and Threads

Libraries for woking with processes or threads

  • Parallel - Ruby parallel processing made simple and fast

Networking

Libraries for network programming.

WebSocket

Libraries for woking with WebSocket.

  • Faye - Simple pub/sub messaging for the web
  • websocket-rails - Plug and play websocket support for ruby on rails.

Cryptography

GUI

Libraries for working with graphical user interface applications.

Game Development

Awesome game development libraries.

Logging

Libraries for generating and working with log files.

Testing

Libraries for testing codebases and generating test data.

  • Testing Frameworks

    • RSpec - BDD for Ruby
    • MiniTest - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking
  • Mock

    • RSpec-mocks - RSpec's 'test double' framework, with support for stubbing and mocking
    • Mocha - Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.
    • FlexMock - Flexible mocking for Ruby testing
  • Fake Data

    • Faker - A library for generating fake data such as names, addresses, and phone numbers
    • ffaker - Faker Refactored.
    • Forgery - Easy and customizable generation of forged data.
  • Code Coverage

  • Load Testing

  • Error Handler

Code Analysis and Linter

Libraries and tools for analysing, parsing and manipulation codebases.

  • Rubocop - A Ruby static code analyzer, based on the community Ruby style guide.
  • ruby-lint - ruby-lint is a static code analysis tool for Ruby

Debugging Tools

Libraries for debugging and developing.

  • byebug - Debugging in Ruby 2
  • debugger - port of ruby-debug that works on 1.9.2 and 1.9.3

Science and Data Analysis

Libraries for scientific computing and data analyzing.

Data Visualization

Libraries for visualizing data.

Machine Learning

Libraries for Machine Learning.

MapReduce

Framworks and libraries for MapReduce.

Third-party APIs

Libraries for accessing third party APIs.

  • koala A lightweight, flexible library for Facebook
  • fb_graph A full-stack Facebook Graph API wrapper
  • twitter A Ruby interface to the Twitter API
  • tweetstream A simple library for consuming Twitter's Streaming API
  • octokit.rb Ruby toolkit for the GitHub API

DevOps Tools

Software and libraries for DevOps.

  • Puppet - Server automation framework and application
  • Chef - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
  • Vagrant - Vagrant is a tool for building and distributing development environments.
  • Capistrano - Remote multi-server automation tool
  • Mina Really fast deployer and server automation tool

Foreign Function Interface

Libraries for providing foreign function interface.

High Performance

Libraries for making Ruby faster.

  • EventMachine - EventMachine: fast, simple event-processing library for Ruby programs
  • Celluloid - Actor-based concurrent object framework for Ruby

Algorithms and Design Patterns

Collections of algorithms and design patterns.

Style Guide

Miscellaneous

Useful libraries or tools that don't fit in the categories above.

Editor Plugins

Plugins for various editors.

Starter Apps

App templates for creating apps quickly

Resources

Where to discover new Ruby libraries.

People to Follow

People in Ruby World

Weekly

  • Ruby Weekly A free, onceweekly e-mail round-up of Ruby news and articles.

Twitter

Contributing

Your Pull requests are welcome! Let's make this the awesomest resource for Ruby <3