.gitignore | ||
README.md |
Awesome Ruby
A curated list of awesome Ruby frameworks, libraries and resources. Inspired by awesome-php & awesome-python.
Your Pull requests are welcome! Let's make this the awesomest resource for Ruby 💜
- Awesome Ruby
- Admin Panels
- Anti-spam
- Asset Management
- Audio
- Authentication and OAuth
- Build Tools
- Caching
- Cloud Services
- CMS
- Code Analysis and Linter
- Command-line Tools
- Configuration
- CSS & Styling
- Data Validation
- Data Visualization
- Database Drivers
- Date and Time
- Debugging Tools
- DevOps Tools
- Distribution
- Documentation
- Downloader
- E-Commerce & Online Paying
- Environment Management
- File Uploading
- Foreign Function Interface
- Forms
- Game Development
- Geolocation
- GUI
- High Performance
- HTML/XML/CSS Manipulation
- HTTP
- Imagery
- Internationalization
- Logging
- Machine Learning
- MapReduce
- Natural Language Processing
- Networking
- ORM
- Package Management
- Presentation Tools
- Processes and Threads
- Push Notification
- Queue
- RESTful API
- Science and Data Analysis
- Search
- Site Monitoring
- Starter Apps
- Tagging
- Template Engine
- Testing
- Text Processing
- Third-party APIs
- URL Manipulation
- Video
- Web Content Extracting
- Web Crawling
- Web Frameworks
- Web Servers
- WebSocket
- Miscellaneous
- Resources
- Other Awesome Lists
- Contributing
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
Anti-spam
Libraries for fighting spam.
- RubySpamAssassin Kills Spam Dead. Perhaps before it's sent!
Asset Management
Tools for managing, compressing and minifying website assets.
- sprockets Rack-based asset packaging system
Audio
- seal A C library (with Ruby binding) for 3D audio rendering
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)
- pundit - Minimal authorization using object oriented design.
- authority - ORM neutral authorization.
- doorkeeper An OAuth 2 provider for Rails
Build Tools
Compile software from source code.
- teapot A decentralised build tool for managing complex cross-platform projects
Caching
Libraries for caching data.
- rack-cache HTTP Caching for Ruby Web Apps
- Dalli - a high performance pure Ruby client for accessing memcached servers.
Cloud Services
- fog The Ruby cloud services library
- aws-sdk-ruby The official AWS SDK for Ruby
CMS
Content management systems
- Refinery An extendable Ruby on Rails CMS that supports Rails 3.2 and 4
- Comfortable Mexican Sofa A powerful Rails 4 CMS Engine
- Browser Humane Content Management for Rails
- Locomotive a brand new CMS system with super sexy UI and cool features
- Radiant A no-fluff, open source content management system
- Nesta A lightweight CMS, implemented in Sinatra
- alchemy_cms the most powerful, user friendly and flexible Rails CMS
- weby Newbie CMS in Ruby on Rails
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
Command-line Tools
Libraries for building command-line application.
- Commander - The complete solution for Ruby command-line executables
- Thor - Thor is a toolkit for building powerful command-line interfaces
Configuration
Libraries for storing configuration options.
CSS & Styling
- sass A CSS preproccessor
- sass-rails Rails stylesheet engine for Sass
- less-rails The dynamic stylesheet language for the Rails
- compass A a Stylesheet Authoring Environment
- bootstrap-sass Official Sass port of Bootstrap
- foundation-rails Foundation for Rails
- bootswatch-rails Bootswatches converted to SCSS ready to use in Rails
- bourbon A lightweight mixin library for Sass
Data Validation
Libraries for validating data. Used for forms in many cases.
Data Visualization
Libraries for visualizing data.
- prosperity The easiest way to graph data from your Rails models
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
Date and Time
Libraries for working with dates and times.
Debugging Tools
Libraries for debugging and developing.
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
Distribution
Libraries to create packaged executables for release distribution.
- fpm Building packages for multiple platforms (deb, rpm, etc) with great ease and sanity.
Documentation
Libraries for generating project documentation.
Downloader
Libraries for downloading.
E-Commerce & Online Paying
- Active Merchant - A simple payment abstraction library extracted from Shopify.
- Spree - A complete open source e-commerce solution for Ruby on Rails.
- PayPal Merchant SDK - Provides Ruby APIs for processing payments, recurring payments, subscriptions and transactions using PayPal's Merchant APIs.
Libraries for sending and parsing email.
Environment Management
Libraries for Ruby version and environment management.
File Uploading
Libraries for handling file uploads.
- paperclip Easy file attachment management for ActiveRecord
- dragonfly On-the-fly processing - suitable for image uploading in Rails, Sinatra and much more
- carrierwave Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks
Foreign Function Interface
Libraries for providing foreign function interface.
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
Game Development
Awesome game development libraries.
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.
GUI
Libraries for working with graphical user interface applications.
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
HTML/XML/CSS Manipulation
Libraries for working with HTML, XML & CSS.
- Nokogiri
- loofah A general library for manipulating and transforming HTML/XML documents and fragments
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
Imagery
Libraries for manipulating images.
- rmagick An interface to the ImageMagick and GraphicsMagick image processing libraries
- minimagick Minified version of rmagick
- chunky_png Read/write access to PNG images in pure Ruby
- image_optim Optimize images using multiple utilities
- magickly image manipulation as a (plugin-able) service
Internationalization
Libraries for woking with i18n.
- i18n - Basic internationalization(i18n) library for Ruby
- globalize Rails I18n de-facto standard library for ActiveRecord model/data translation
- i18n-tasks Manage translations in ruby applications with the awesome power of static analysis
Logging
Libraries for generating and working with log files.
- Logstash Logstash is a tool for managing events and logs.
Machine Learning
Libraries for Machine Learning.
MapReduce
Framworks and libraries for MapReduce.
Natural Language Processing
Libraries for working with human languages.
Networking
Libraries for network programming.
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
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
Pagination
- kaminari A Scope & Engine based, clean, powerful, customizable and sophisticated paginator
- will_paginate Pagination library for Rails 3, Sinatra, Merb, DataMapper, and more
PDF Processing
- wicked_pdf PDF generator (from HTML) plugin for Ruby on Rails
- pdfkit HTML+CSS to PDF using wkhtmltopdf
- prawn Fast, Nimble PDF Writer for Ruby
Presentation Tools
Processes and Threads
Libraries for woking with processes or threads
- Parallel - Ruby parallel processing made simple and fast
Push Notification
- Rpush - The push notification service for Ruby.
- apn_sender - Background worker to send Apple Push Notifications over a persistent TCP socket.
- Houston - A simple gem for sending Apple Push Notifications.
Queue
Libraries for working with event and task queues.
- Resque A Redis-backed Ruby library for creating background jobs, placing them on multiple queues.
- Delayed::Job — Database backed asynchronous priority queue.
- Qu A Ruby library for queuing and processing background jobs.
- Sidekiq Simple, efficient background processing for Ruby
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
Scheduling
- whenever Cron jobs in Ruby
- resque-scheduler A light-weight job scheduling system built on top of resque
- rufus-scheduler Scheduler for Ruby
Science and Data Analysis
Libraries for scientific computing and data analyzing.
Search
Libraries and software for indexing and performing search queries on data.
- Thinking Sphinx - Sphinx plugin for ActiveRecord/Rails
- elasticsearch-ruby - Ruby integrations for Elasticsearch
- Searchkick - Intelligent search made easy
- PgSearch - PostgreSQL's full text search
- Rroonga - The Ruby bindings of Groonga
- Sunspot - Solr-powered search for Ruby objects
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
Static Page Generation
Starter Apps
App templates for creating apps quickly
- suspenders A Rails template with our standard defaults, ready to deploy to Heroku
- ruby2-rails4-bootstrap-heroku A starter application based on Ruby 2, Rails 4 and Bootstrap for Sass, deployable on Heroku
- rails-bootstrap Rails 4.1 starter app with the Bootstrap front-end framework
- rails4-starterkit Rails 4.1 starter app with production ready performance, security, and authentication
Text Processing
Libraries for parsing and manipulating texts.
-
General
-
Specific Formats
-
Parser
Tagging
Libraries for tagging items.
- acts-as-taggable-on - A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts.
Template Engine
Libraries and tools for templating and lexing.
- Slim A templating lang that reduce the syntax to the essential parts without becoming cryptic.
- slim-rails Rails port of Slim lang
- Haml HTML Abstraction Markup Language - A Markup Haiku
- haml-rails Rails port of Haml lang
- Tilt
- Liquid
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
- [Cucumber]
- Cucumber Github - Cucumber is a tool that executes plain-text functional descriptions as automated tests
- Cucumber Site - Behaviour Driven Development with elegacy and joy
-
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
-
Code Coverage
- simplecov Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage
-
Load Testing
-
Error Handler
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
- instagram The official gem for the Instagram API
- linkedin Ruby wrapper for the LinkedIn API
- twilio-ruby A Ruby gem for communicating with the Twilio API and generating TwiML
- youtube_it An object-oriented Ruby wrapper for the YouTube GData API
- flickraw Flickraw is a library to access flickr api
- f00px Official 500px api ruby gem
URL Manipulation
Libraries for parsing URLs.
Video
Libraries for manipulating video and GIFs.
- streamio-ffmpeg Simple yet powerful ruby ffmpeg wrapper for reading metadata and transcoding movies
Web Content Extracting
Libraries for extracting web contents.
Web Crawling
Libraries for scraping websites.
- upton A batteries-included framework for easy web-scraping
- metainspector
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.
Web Servers
App server interface
- puma A simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications.
- thin A thin and fast web server
- trinidad Run Rails or Rack applications within an embedded Apache Tomcat container.
- unicorn An HTTP server for Rack applications designed to only serve fast clients.
- passenger A modern web server and application server for Ruby, Python and Node.js.
- pow Pow treats files and directories as ruby objects giving you more power and flexibility.
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.
Miscellaneous
Useful libraries or tools that don't fit in the categories above.
- packetfu A mid-level packet manipulation library for Ruby.
- chatterbot A straightforward ruby-based Twitter Bot Framework, using OAuth to authenticate
- sneakers A fast background processing framework for Ruby and RabbitMQ
- ransack Object-based searching.
- cinch The IRC Bot Building Framework
- pry An IRB alternative and runtime developer console
- friendly_id Slugging and permalink plugins for ActiveRecord
- backup An elegant DSL in Ruby for performing backups on UNIX-like systems
- kss Documenting CSS and generating styleguides
Editor Plugins
Plugins for various editors.
Resources
Where to discover things (libraries, news e.g) about Ruby.
- The Ruby Toolbox
- RubyGems
- RubyDaily - Community driven news
- Ruby Weekly - A free, once–weekly e-mail round-up of Ruby news and articles.
- Ruby5 - The latest news in the Ruby and Rails community
- RubyFlow - Ruby Programming Community Link Blog
People to Follow
People in Ruby World
- Yukihiro "Matz" Matsumoto - Creator of Ruby lang
- David Heinemeier Hansson - Creator of Rails framework
- Koichi Sasada - Ruby core committer and the developer of YARV
- Aaron Patterson - Committer to Nokogiri, Ruby, and Ruby on Rails
- Avdi Grimm - Host of Ruby Tapas webcasts
- Aman Gupta- Ruby core committer
Other Awesome Lists
Other amazingly awesome lists can be found in the awesome-awesomeness list.
Contributing
Your Pull requests are welcome! Let's make this the awesomest resource for Ruby <3