2014-07-03 06:37:04 -04:00
# Awesome Ruby
2014-07-03 06:33:50 -04:00
2014-07-03 06:40:33 -04:00
A curated list of awesome Ruby frameworks, libraries and resources. Inspired by [awesome-php ](https://github.com/ziadoz/awesome-php ) & [awesome-python ](https://github.com/vinta/awesome-python ).
2014-07-03 06:37:04 -04:00
2014-07-03 06:38:38 -04:00
- [Awesome Ruby ](#awesome-ruby )
2014-07-03 06:37:04 -04:00
- [Environment Management ](#environment-management )
- [Package Management ](#package-management )
- [Distribution ](#distribution )
- [Files ](#files )
- [Date and Time ](#date-and-time )
- [Text Processing ](#text-processing )
- [Natural Language Processing ](#natural-language-processing )
- [Documentation ](#documentation )
- [Configuration ](#configuration )
- [Command-line Tools ](#command-line-tools )
- [Imagery ](#imagery )
- [Audio ](#audio )
- [Video ](#video )
- [Geolocation ](#geolocation )
- [HTTP ](#http )
- [Database ](#database )
- [Database Drivers ](#database-drivers )
- [ORM ](#orm )
- [Web Frameworks ](#web-frameworks )
- [CMS ](#cms )
- [RESTful API ](#restful-api )
- [Authentication and OAuth ](#authentication-and-oauth )
- [Template Engine ](#template-engine )
- [Queue ](#queue )
- [Search ](#search )
- [Asset Management ](#asset-management )
- [Caching ](#caching )
- [Email ](#email )
- [Internationalization ](#internationalization )
- [URL Manipulation ](#url-manipulation )
- [HTML Manipulation ](#html-manipulation )
- [Web Crawling ](#web-crawling )
- [Web Content Extracting ](#web-content-extracting )
- [Downloader ](#downloader )
- [Forms ](#forms )
- [Data Validation ](#data-validation )
- [Anti-spam ](#anti-spam )
- [Tagging ](#tagging )
- [Build Tools ](#build-tools )
- [Admin Panels ](#admin-panels )
- [Processes and Threads ](#processes-and-threads )
- [Networking ](#networking )
- [WebSocket ](#websocket )
- [Cryptography ](#cryptography )
- [GUI ](#gui )
- [Game Development ](#game-development )
- [Logging ](#logging )
- [Testing ](#testing )
- [Code Analysis and Linter ](#code-analysis-and-linter )
- [Debugging Tools ](#debugging-tools )
- [Science and Data Analysis ](#science-and-data-analysis )
- [Data Visualization ](#data-visualization )
- [Machine Learning ](#machine-learning )
- [Functional Programming ](#functional-programming )
- [MapReduce ](#mapreduce )
- [Third-party APIs ](#third-party-apis )
- [DevOps Tools ](#devops-tools )
- [Foreign Function Interface ](#foreign-function-interface )
- [High Performance ](#high-performance )
- [Algorithms and Design Patterns ](#algorithms-and-design-patterns )
- [Miscellaneous ](#miscellaneous )
- [Editor Plugins ](#editor-plugins )
- [Resources ](#resources )
- [Websites ](#websites )
- [Weekly ](#weekly )
- [Twitter ](#twitter )
2014-07-03 06:53:18 -04:00
## Environment Management
2014-07-03 06:54:50 -04:00
*Libraries for Ruby version and environment management.*
2014-07-03 06:59:43 -04:00
* [rvm ](https://rvm.io/ ) - Ruby Version Manager
* [rbenv ](http://rbenv.org/ ) - Groom your app’ s Ruby environment
2014-07-03 06:53:18 -04:00
## Package Management
*Libraries for package and dependency management.*
2014-07-03 07:06:54 -04:00
* [RubyGems ](https://rubygems.org/ ) - RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries
2014-07-03 06:53:18 -04:00
## 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.*
## 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.*
## Audio
*Libraries for manipulating audio.*
## Video
*Libraries for manipulating video and GIFs.*
## Geolocation
*Libraries for geocoding addresses and working with latitudes and longitudes.*
## HTTP
*Libraries for working with HTTP.*
## Database Drivers
*Libraties for connecting and operating databases.*
* Relational Databases
* NoSQL Databases
## ORM
*Libraries that implement Object-Relational Mapping or datamapping techniques.*
* Relational Databases
2014-07-03 07:40:42 -04:00
* [ActiveRecord ](https://www.ruby-toolbox.com/projects/activerecord ) - Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes
* [DataMapper ](http://datamapper.org/ ) - 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 ](http://sequel.jeremyevans.net/ ) - The Database Toolkit for Ruby
2014-07-03 06:53:18 -04:00
* NoSQL Databases
2014-07-03 07:40:42 -04:00
* [Mongoid ](http://mongoid.org ) - Mongoid (pronounced mann-goyd) is an Object-Document-Mapper (ODM) for MongoDB written in Ruby.
2014-07-03 06:53:18 -04:00
## Web Frameworks
*Web development frameworks.*
2014-07-03 07:06:54 -04:00
* [Ruby On Rails ](http://rubyonrails.org/ ) - Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity
* [Sinatra ](http://www.sinatrarb.com/ ) - Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort.
* [Padrino ](http://www.padrinorb.com/ ) - The Godfather of Sinatra provides a full-stack agnostic framework on top of Sinatra
* [Cramp ](http://cramp.in/ ) - Cramp is a fully asynchronous real-time web application framework in Ruby
2014-07-03 06:53:18 -04:00
## CMS
*Content management systems*
## RESTful API
*Libraries for developing RESTful APIs.*
## Authentication and OAuth
*Libraries for implementing authentications schemes.*
## Template Engine
*Libraries and tools for templating and lexing.*
## Queue
*Libraries for working with event and task queues.*
## Search
*Libraries and software for indexing and performing search queries on data.*
## Asset Management
*Tools for managing, compressing and minifying website assets.*
## Caching
*Libraries for caching data.*
## Email
*Libraries for sending and parsing email.*
## Internationalization
*Libraries for woking with i18n.*
## 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.*
## 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.*
## Processes and Threads
*Libraries for woking with processes or threads*
## Networking
*Libraries for network programming.*
## WebSocket
*Libraries for woking with WebSocket.*
## 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
2014-07-03 07:11:03 -04:00
* [RSpec ](http://rspec.info/ ) - BDD for Ruby
* [MiniTest ](https://github.com/seattlerb/minitest ) - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking
2014-07-03 06:53:18 -04:00
* Mock
2014-07-03 07:14:02 -04:00
* [RSpec-mocks ](https://github.com/rspec/rspec-mocks ) - RSpec's 'test double' framework, with support for stubbing and mocking
* [Mocha ](http://gofreerange.com/mocha/docs/ ) - Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.
* [FlexMock ](https://github.com/jimweirich/flexmock ) - Flexible mocking for Ruby testing
2014-07-03 06:53:18 -04:00
* Fake Data
2014-07-03 07:16:20 -04:00
* [Faker ](https://github.com/stympy/faker ) - A library for generating fake data such as names, addresses, and phone numbers
* [ffaker ](https://github.com/emmanueloga/ffaker ) - Faker Refactored.
* [Forgery ](https://github.com/sevenwire/forgery ) - Easy and customizable generation of forged data.
2014-07-03 06:53:18 -04:00
* Code Coverage
* Load Testing
* Error Handler
## Code Analysis and Linter
*Libraries and tools for analysing, parsing and manipulation codebases.*
2014-07-03 07:27:58 -04:00
* [Rubocop ](https://github.com/bbatsov/rubocop ) - A Ruby static code analyzer, based on the community Ruby style guide.
* [ruby-lint ](https://github.com/YorickPeterse/ruby-lint ) - ruby-lint is a static code analysis tool for Ruby
2014-07-03 06:53:18 -04:00
## Debugging Tools
*Libraries for debugging and developing.*
2014-07-03 07:29:59 -04:00
* [byebug ](https://github.com/deivid-rodriguez/byebug ) - Debugging in Ruby 2
* [debugger ](https://github.com/cldwalker/debugger ) - port of ruby-debug that works on 1.9.2 and 1.9.3
2014-07-03 06:53:18 -04:00
## Science and Data Analysis
*Libraries for scientific computing and data analyzing.*
## Data Visualization
*Libraries for visualizing data.*
## Machine Learning
*Libraries for Machine Learning.*
## Functional Programming
## MapReduce
*Framworks and libraries for MapReduce.*
## Third-party APIs
*Libraries for accessing third party APIs.*
## DevOps Tools
*Software and libraries for DevOps.*
2014-07-03 07:25:17 -04:00
* [Puppet ](https://github.com/puppetlabs/puppet ) - Server automation framework and application
* [Chef ](https://github.com/opscode/chef ) - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
* [Vagrant ](http://www.vagrantup.com ) - Vagrant is a tool for building and distributing development environments.
* [Capistrano ](http://www.capistranorb.com ) - Remote multi-server automation tool
2014-07-03 06:53:18 -04:00
## Foreign Function Interface
*Libraries for providing foreign function interface.*
## High Performance
*Libraries for making Ruby faster.*
## Algorithms and Design Patterns
*Collections of algorithms and design patterns.*
## Miscellaneous
*Useful libraries or tools that don't fit in the categories above.*
## Editor Plugins
*Plugins for various editors.*
# Resources
Where to discover new Ruby libraries.
2014-07-03 07:31:46 -04:00
* [The Ruby Toolbox ](https://www.ruby-toolbox.com/ )
* [RubyGems ](https://www.rubygems.org )
2014-07-03 07:40:42 -04:00
2014-07-03 06:53:18 -04:00
## Websites
## Weekly
## Twitter
# Contributing
Your contributions are always welcome!