├── .gitignore └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | Release.key 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Ruby 2 | 3 | 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). 4 | 5 | ## Contribution 6 | 7 | Your Pull requests are welcome! Let's make this the awesomest resource for Ruby :purple_heart: 8 | 9 | - [Awesome Ruby](#awesome-ruby) 10 | - [Admin Panels](#admin-panels) 11 | - [Anti-spam](#anti-spam) 12 | - [Asset Management](#asset-management) 13 | - [Audio](#audio) 14 | - [Authentication and OAuth](#authentication-and-oauth) 15 | - [Build Tools](#build-tools) 16 | - [Caching](#caching) 17 | - [Cloud Services](#cloud-services) 18 | - [CMS](#cms) 19 | - [Code Analysis and Linter](#code-analysis-and-linter) 20 | - [Command-line Tools](#command-line-tools) 21 | - [Configuration](#configuration) 22 | - [CSS and Styling](#css-and-styling) 23 | - [Data Validation](#data-validation) 24 | - [Data Visualization](#data-visualization) 25 | - [Database Drivers](#database-drivers) 26 | - [Date and Time](#date-and-time) 27 | - [Debugging Tools](#debugging-tools) 28 | - [DevOps Tools](#devops-tools) 29 | - [Distribution](#distribution) 30 | - [Documentation](#documentation) 31 | - [Downloader](#downloader) 32 | - [E-Commerce & Online Paying](#e-commerce-&-online-paying) 33 | - [E-Mail](#email) 34 | - [Environment Management](#environment-management) 35 | - [File Uploading](#file-uploading) 36 | - [Feature Flipping] (#feature-flipping) 37 | - [Foreign Function Interface](#foreign-function-interface) 38 | - [Forms](#forms) 39 | - [Game Development](#game-development) 40 | - [Geolocation](#geolocation) 41 | - [GUI](#gui) 42 | - [High Performance](#high-performance) 43 | - [HTML/XML/CSS Manipulation](#htmlxmlcss-manipulation) 44 | - [HTTP](#http) 45 | - [Imagery](#imagery) 46 | - [Internationalization](#internationalization) 47 | - [Logging](#logging) 48 | - [Machine Learning](#machine-learning) 49 | - [MapReduce](#mapreduce) 50 | - [Natural Language Processing](#natural-language-processing) 51 | - [Networking](#networking) 52 | - [ORM](#orm) 53 | - [Package Management](#package-management) 54 | - [Presentation Tools](#presentation-tools) 55 | - [Processes and Threads](#processes-and-threads) 56 | - [Push Notification](#push-notification) 57 | - [Queue](#queue) 58 | - [Spreadsheets](#spreadsheets) 59 | - [RESTful API](#restful-api) 60 | - [Science and Data Analysis](#science-and-data-analysis) 61 | - [Search](#search) 62 | - [Site Monitoring](#site-monitoring) 63 | - [Starter Apps](#starter-apps) 64 | - [Tagging](#tagging) 65 | - [Template Engine](#template-engine) 66 | - [Testing](#testing) 67 | - [Text Processing](#text-processing) 68 | - [Third-party APIs](#third-party-apis) 69 | - [URL Manipulation](#url-manipulation) 70 | - [Video](#video) 71 | - [Web Content Extracting](#web-content-extracting) 72 | - [Web Crawling](#web-crawling) 73 | - [Web Frameworks](#web-frameworks) 74 | - [Web Servers](#web-servers) 75 | - [WebSocket](#websocket) 76 | - [Miscellaneous](#miscellaneous) 77 | - [Editor Plugins](#editor-plugins) 78 | - [Resources](#resources) 79 | - [People to Follow](#people-to-follow) 80 | - [Other Awesome Lists](#other-awesome-lists) 81 | - [Contributing](#contributing) 82 | 83 | 84 | ## Admin Panels 85 | 86 | *Libraries for administrative interfaces.* 87 | 88 | * [active_admin](https://github.com/activeadmin/activeadmin) The administration framework for Ruby on Rails applications 89 | * [rails_admin](https://github.com/sferik/rails_admin) A Rails engine that provides an easy-to-use interface for managing your data 90 | * [administrate](https://github.com/thoughtbot/administrate) A framework for creating flexible, powerful admin dashboards in Rails. 91 | 92 | ## Anti-spam 93 | 94 | *Libraries for fighting spam.* 95 | 96 | * [RubySpamAssassin](https://github.com/noeticpenguin/RubySpamAssassin) Kills Spam Dead. Perhaps before it's sent! 97 | 98 | ## Asset Management 99 | 100 | *Tools for managing, compressing and minifying website assets.* 101 | 102 | * [sprockets](https://github.com/sstephenson/sprockets) Rack-based asset packaging system 103 | * [rails-assets](https://github.com/rails-assets/rails-assets/) is the frictionless proxy between Bundler and Bower 104 | 105 | ## Audio 106 | 107 | * [seal](https://github.com/zhangsu/seal) A C library (with Ruby binding) for 3D audio rendering 108 | 109 | ## Authentication and OAuth 110 | 111 | *Libraries for implementing authentications schemes.* 112 | 113 | * [Devise](https://github.com/plataformatec/devise) - Devise is a flexible authentication solution for Rails based on Warden 114 | * [Omniauth](https://github.com/intridea/omniauth) - OmniAuth is a flexible authentication system utilizing Rack middleware 115 | * [Warden](https://github.com/hassox/warden) - General Rack Authentication Framework 116 | * [AuthLogic](https://github.com/binarylogic/authlogic) - A simple ruby authentication solution 117 | * [Sorcery](https://github.com/NoamB/sorcery) - Magical authentication for Rails 3 & 4 118 | * [CanCanCan](https://github.com/CanCanCommunity/cancancan) Authorization gem for Rails (continued version of CanCan from ryanb) 119 | * [pundit](https://github.com/elabs/pundit) - Minimal authorization using object oriented design. 120 | * [authority](https://github.com/nathanl/authority) - ORM neutral authorization. 121 | * [doorkeeper](https://github.com/doorkeeper-gem/doorkeeper) An OAuth 2 provider for Rails 122 | 123 | ## Build Tools 124 | 125 | *Compile software from source code.* 126 | 127 | * [teapot](https://github.com/ioquatix/teapot) A decentralised build tool for managing complex cross-platform projects 128 | 129 | ## Caching 130 | 131 | *Libraries for caching data.* 132 | 133 | * [rack-cache](https://github.com/rtomayko/rack-cache) HTTP Caching for Ruby Web Apps 134 | * [Dalli](https://github.com/mperham/dalli) - a high performance pure Ruby client for accessing memcached servers. 135 | 136 | ## Cloud Services 137 | 138 | * [fog](https://github.com/fog/fog) The Ruby cloud services library 139 | * [aws-sdk-ruby](https://github.com/aws/aws-sdk-ruby) The official AWS SDK for Ruby 140 | 141 | ## CMS 142 | 143 | *Content management systems* 144 | 145 | * [Refinery CMS](http://www.refinerycms.com) An extendable Ruby on Rails CMS that supports Rails 3.2 and 4.2 146 | * [Comfortable Mexican Sofa](https://github.com/comfy/comfortable-mexican-sofa) A powerful Rails 4 CMS Engine 147 | * [Browser](http://www.browsercms.org/) Humane Content Management for Rails 148 | * [Locomotive](http://www.locomotivecms.com/) a brand new CMS system with super sexy UI and cool features 149 | * [Radiant](http://radiantcms.org/) A no-fluff, open source content management system 150 | * [Nesta](http://nestacms.com/) A lightweight CMS, implemented in Sinatra 151 | * [alchemy_cms](https://github.com/AlchemyCMS/alchemy_cms) the most powerful, user friendly and flexible Rails CMS 152 | * [weby](https://github.com/cercomp/weby) Newbie CMS in Ruby on Rails 153 | 154 | ## Code Analysis and Linter 155 | 156 | *Libraries and tools for analyzing, parsing and manipulation codebases.* 157 | 158 | * [Rubocop](https://github.com/bbatsov/rubocop) - A Ruby static code analyzer, based on the community Ruby style guide. 159 | * [ruby-lint](https://github.com/YorickPeterse/ruby-lint) - ruby-lint is a static code analysis tool for Ruby 160 | * [brakeman](https://github.com/presidentbeef/brakeman) - Static analysis tool which checks Ruby on Rails applications for security vulnerabilities 161 | 162 | ## Command-line Tools 163 | 164 | *Libraries for building command-line application.* 165 | 166 | * [Commander](http://visionmedia.github.io/commander/) - The complete solution for Ruby command-line executables 167 | * [Thor](https://github.com/erikhuda/thor) - Thor is a toolkit for building powerful command-line interfaces 168 | 169 | ## Configuration 170 | 171 | *Libraries for storing configuration options.* 172 | 173 | ## CSS and Styling 174 | 175 | * [sass](https://github.com/sass/sass) A CSS preproccessor 176 | * [sass-rails](https://github.com/rails/sass-rails) Rails stylesheet engine for Sass 177 | * [less-rails](https://github.com/metaskills/less-rails) The dynamic stylesheet language for the Rails 178 | * [compass](https://github.com/Compass/compass) A a Stylesheet Authoring Environment 179 | * [bootstrap-sass](https://github.com/twbs/bootstrap-sass) Official Sass port of Bootstrap 180 | * [foundation-rails](https://github.com/zurb/foundation-rails) Foundation for Rails 181 | * [bootswatch-rails](https://github.com/maxim/bootswatch-rails) Bootswatches converted to SCSS ready to use in Rails 182 | * [bourbon](https://github.com/thoughtbot/bourbon) A lightweight mixin library for Sass 183 | 184 | ## Data Validation 185 | 186 | *Libraries for validating data. Used for forms in many cases.* 187 | 188 | * [kangal](https://github.com/lab2023/kangal) - Extended validation gem for email, subdomain, credit card, tax number etc 189 | * [bin_checker](https://github.com/lab2023/bin_checker) - BIN validator for Turkish Banks 190 | 191 | ## Data Visualization 192 | 193 | *Libraries for visualizing data.* 194 | 195 | * [prosperity](https://github.com/smathieu/prosperity) The easiest way to graph data from your Rails models 196 | 197 | ## Database Drivers 198 | 199 | *Libraries for connecting and operating databases.* 200 | 201 | * Relational Databases 202 | * [ruby-pg](https://bitbucket.org/ged/ruby-pg) Ruby interface to the PostgreSQL >= 8.4 203 | * [mysql2](https://github.com/brianmario/mysql2) A modern, simple and very fast Mysql library for Ruby 204 | * [sqlite3-ruby](https://github.com/sparklemotion/sqlite3-ruby) Ruby bindings for the SQLite3 embedded database 205 | 206 | * NoSQL Databases 207 | 208 | ## Date and Time 209 | 210 | *Libraries for working with dates and times.* 211 | 212 | * [stamp](https://github.com/jeremyw/stamp) Date and time formatting for humans 213 | 214 | 215 | ## Debugging Tools 216 | 217 | *Libraries for debugging and developing.* 218 | 219 | * [byebug](https://github.com/deivid-rodriguez/byebug) - Debugging in Ruby 2 220 | * [debugger](https://github.com/cldwalker/debugger) - port of ruby-debug that works on 1.9.2 and 1.9.3 221 | 222 | ## DevOps Tools 223 | 224 | *Software and libraries for DevOps.* 225 | 226 | * [Puppet](https://github.com/puppetlabs/puppet) - Server automation framework and application 227 | * [Chef](https://github.com/chef/chef) - A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure. 228 | * [Vagrant](https://www.vagrantup.com/) - Vagrant is a tool for building and distributing development environments. 229 | * [Capistrano](http://capistranorb.com/) - Remote multi-server automation tool 230 | * [Mina](https://github.com/mina-deploy/mina) Really fast deployer and server automation tool 231 | 232 | ## Distribution 233 | 234 | *Libraries to create packaged executables for release distribution.* 235 | 236 | * [fpm](https://github.com/jordansissel/fpm) Building packages for multiple platforms (deb, rpm, etc) with great ease and sanity. 237 | 238 | ## Documentation 239 | 240 | *Libraries for generating project documentation.* 241 | 242 | * [rdoc](https://github.com/rdoc/rdoc) HTML and online documentation for Ruby projects 243 | * [yard](https://github.com/lsegal/yard) A Ruby Documentation tool 244 | 245 | ## Downloader 246 | 247 | *Libraries for downloading.* 248 | 249 | ## E-Commerce & Online Paying 250 | 251 | * [Active Merchant](https://github.com/activemerchant/active_merchant) - A simple payment abstraction library extracted from Shopify. 252 | * [Spree](https://github.com/spree/spree) - A complete open source e-commerce solution for Ruby on Rails. 253 | * [PayPal Merchant SDK](https://github.com/paypal/merchant-sdk-ruby) - Provides Ruby APIs for processing payments, recurring payments, subscriptions and transactions using PayPal's Merchant APIs. 254 | 255 | ## E-Mail 256 | 257 | *Libraries for sending and parsing email.* 258 | 259 | * [mail](https://github.com/mikel/mail) A Really Ruby Mail Library 260 | * [mailman](https://github.com/mailman/mailman) An incoming mail processing microframework in Ruby 261 | 262 | ## Environment Management 263 | 264 | *Libraries for Ruby version and environment management.* 265 | 266 | * [chruby](https://github.com/postmodern/chruby) - Changes the current Ruby 267 | * [chgems](https://github.com/postmodern/chgems) - Chroot for RubyGems 268 | * [rvm](https://rvm.io/) - Ruby Version Manager 269 | * [rbenv](http://rbenv.org/) - Groom your app’s Ruby environment 270 | * [ruby-install](https://github.com/postmodern/ruby-install) - Installs Ruby, JRuby, Rubinius, MagLev or MRuby 271 | * [ruby-build](https://github.com/sstephenson/ruby-build) - Compile and install Ruby 272 | 273 | ## Error Handling 274 | 275 | *Libraries for exception and error handling.* 276 | 277 | * [Exception Notification](https://github.com/smartinez87/exception_notification) - A set of notifiers for sending notifications when errors occur in a Rack/Rails application 278 | * [Errbit](http://errbit.github.io/errbit) - The open source, self-hosted error catcher 279 | * [Airbrake](https://github.com/airbrake/airbrake) - The official Airbrake library for Ruby on Rails (and other Rack based frameworks) 280 | * [Better Errors](https://github.com/charliesome/better_errors) - Better error page for Rack apps 281 | 282 | ## File Uploading 283 | 284 | *Libraries for handling file uploads.* 285 | 286 | * [paperclip](https://github.com/thoughtbot/paperclip) Easy file attachment management for ActiveRecord 287 | * [dragonfly](https://github.com/markevans/dragonfly) On-the-fly processing - suitable for image uploading in Rails, Sinatra and much more 288 | * [carrierwave](https://github.com/carrierwaveuploader/carrierwave) Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks 289 | * [attache](https://github.com/choonkeat/attache) - Yet another approach to file upload https://attache-demo.herokuapp.com 290 | 291 | ## Feature flipping 292 | 293 | *Libraries for flipping features* 294 | 295 | * [helioth] (https://github.com/gmontard/helioth) Manage feature flipping and rollout 296 | * [flipper] (https://github.com/jnunemaker/flipper) feature flipping for ANYTHING 297 | * [flip] (https://github.com/pda/flip) Flip lets you declare and manage feature flags, backed by cookies (private testing) and database (site-wide) 298 | * [rollout] (https://github.com/FetLife/rollout) Feature flippers. 299 | 300 | ## Foreign Function Interface 301 | 302 | *Libraries for providing foreign function interface.* 303 | 304 | ## Forms 305 | 306 | *Libraries for working with forms.* 307 | 308 | * [simple_form](https://github.com/plataformatec/simple_form) Forms made easy for Rails 309 | * [formtastic](https://github.com/justinfrench/formtastic) A Rails form builder plugin with semantically rich and accessible markup 310 | 311 | ## Game Development 312 | 313 | *Awesome game development libraries.* 314 | 315 | * [Gosu](https://www.libgosu.org/) - A 2D game development library for the Ruby and C++ programming languages 316 | 317 | 318 | ## Geolocation 319 | 320 | *Libraries for geocoding addresses and working with latitudes and longitudes.* 321 | 322 | * [geocoder](https://github.com/alexreisner/geocoder) Complete Ruby geocoding solution 323 | * [Geokit](https://github.com/geokit/geokit) - Geokit gem provides geocoding and distance/heading calculations. 324 | 325 | ## Git Tools 326 | 327 | *Libraries for working with Git VCS* 328 | 329 | * [katip](https://github.com/lab2023/katip) - Change logger for Git initialized projects 330 | 331 | ## GUI 332 | 333 | *Libraries for working with graphical user interface applications.* 334 | 335 | * [shoes](https://github.com/shoes/shoes) A tiny graphical app kit for ruby 336 | * [shoes4](https://github.com/shoes/shoes4) the next version of Shoes 337 | 338 | ## High Performance 339 | 340 | *Libraries for making Ruby faster.* 341 | 342 | * [EventMachine](https://github.com/eventmachine/eventmachine) - EventMachine: fast, simple event-processing library for Ruby programs 343 | * [Celluloid](https://celluloid.io/) - Actor-based concurrent object framework for Ruby. It has its own [awesomeness](https://github.com/sashaegorov/awesome-celluloid). 344 | 345 | ## HTML/XML/CSS Manipulation 346 | 347 | *Libraries for working with HTML, XML & CSS.* 348 | 349 | * [Nokogiri](http://www.nokogiri.org/) 350 | * [loofah](https://github.com/flavorjones/loofah) A general library for manipulating and transforming HTML/XML documents and fragments 351 | 352 | ## HTTP 353 | 354 | *Libraries for working with HTTP.* 355 | 356 | * [httparty](https://github.com/jnunemaker/httparty) Makes http fun again! 357 | * [faraday](https://github.com/lostisland/faraday) Simple, but flexible HTTP client library, with support for multiple backends. 358 | * [http](https://github.com/httprb/http) A simple Ruby DSL for making HTTP requests 359 | * [excon](https://github.com/excon/excon) Usable, fast, simple HTTP(S) 1.1 for Ruby 360 | * [nestful](https://github.com/maccman/nestful) Simple Ruby HTTP/REST client with a sane API 361 | 362 | ## Imagery 363 | 364 | *Libraries for manipulating images.* 365 | 366 | * [rmagick](https://github.com/rmagick/rmagick) An interface to the ImageMagick and GraphicsMagick image processing libraries 367 | * [minimagick](https://github.com/minimagick/minimagick) Minified version of rmagick 368 | * [chunky_png](https://github.com/wvanbergen/chunky_png) Read/write access to PNG images in pure Ruby 369 | * [image_optim](https://github.com/toy/image_optim) Optimize images using multiple utilities 370 | * [magickly](https://github.com/afeld/magickly) image manipulation as a (plugin-able) service 371 | 372 | ## Internationalization 373 | 374 | *Libraries for woking with i18n.* 375 | 376 | * [i18n](https://github.com/svenfuchs/i18n) - Basic internationalization(i18n) library for Ruby 377 | * [globalize](https://github.com/globalize/globalize) Rails I18n de-facto standard library for ActiveRecord model/data translation 378 | * [i18n-tasks](https://github.com/glebm/i18n-tasks) Manage translations in ruby applications with the awesome power of static analysis 379 | 380 | ## Logging 381 | 382 | *Libraries for generating and working with log files.* 383 | 384 | * [Logstash](https://github.com/elastic/logstash) Logstash is a tool for managing events and logs. 385 | 386 | ## Machine Learning 387 | 388 | *Libraries for Machine Learning.* 389 | 390 | * [PredictionIO Ruby SDK](https://github.com/PredictionIO/PredictionIO-Ruby-SDK) - The PredictionIO Ruby SDK provides a convenient API to quickly record your users' behavior and retrieve personalized predictions for them 391 | 392 | ## MapReduce 393 | 394 | *Frameworks and libraries for MapReduce.* 395 | 396 | ## Natural Language Processing 397 | 398 | *Libraries for working with human languages.* 399 | 400 | * [Treat](https://github.com/louismullie/treat) - Treat is a toolkit for natural language processing and computational linguistics in Ruby 401 | 402 | ## Networking 403 | 404 | *Libraries for network programming.* 405 | 406 | ## ORM 407 | 408 | *Libraries that implement Object-Relational Mapping or data mapping techniques.* 409 | 410 | * Relational Databases 411 | 412 | * [ActiveRecord](https://www.ruby-toolbox.com/projects/activerecord) - Databases on Rails. Build a persistent domain model by mapping database tables to Ruby classes 413 | * [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. 414 | * [Sequel](http://sequel.jeremyevans.net/) - The Database Toolkit for Ruby 415 | 416 | * NoSQL Databases 417 | 418 | * [Mongoid](http://mongoid.org) - Mongoid (pronounced mann-goyd) is an Object-Document-Mapper (ODM) for MongoDB written in Ruby. 419 | * [Ohm](https://github.com/soveran/ohm) - Object-Hash Mapping for Redis 420 | 421 | 422 | ## Package Management 423 | 424 | *Libraries for package and dependency management.* 425 | 426 | * [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 427 | * [Bundler](http://bundler.io) - Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed 428 | * [Homebrew](http://brew.sh) - Homebrew installs the stuff you need that Apple didn’t 429 | * [Homebrew Cask](http://caskroom.io/) - Cask provides a friendly homebrew-style CLI workflow for the administration of Mac applications distributed as binaries 430 | 431 | ## Pagination 432 | 433 | * [kaminari](https://github.com/amatsuda/kaminari) A Scope & Engine based, clean, powerful, customizable and sophisticated paginator 434 | * [will_paginate](https://github.com/mislav/will_paginate) Pagination library for Rails 3, Sinatra, Merb, DataMapper, and more 435 | * [order_query](https://github.com/glebm/order_query) Keyset pagination to find the next or previous record(s) relative to the current one efficiently, e.g. for infinite scroll. 436 | 437 | ## PDF Processing 438 | 439 | * [wicked_pdf](https://github.com/mileszs/wicked_pdf) PDF generator (from HTML) plugin for Ruby on Rails 440 | * [pdfkit](https://github.com/pdfkit/pdfkit) HTML+CSS to PDF using wkhtmltopdf 441 | * [prawn](https://github.com/prawnpdf/prawn) Fast, Nimble PDF Writer for Ruby 442 | 443 | ## Presentation Tools 444 | 445 | * [rabbit](https://github.com/rabbit-shocker/rabbit) A programable presentaton tool by Ruby 446 | * [reveal-ck](https://github.com/jedcn/reveal-ck) Reveal.js presentations with a Ruby toolset 447 | 448 | ## Processes and Threads 449 | 450 | *Libraries for woking with processes or threads* 451 | 452 | * [Parallel](https://github.com/grosser/parallel) - Ruby parallel processing made simple and fast 453 | 454 | ## Profiling 455 | 456 | * [bullet](https://github.com/flyerhzm/bullet) - help to kill N+1 queries and unused eager loading 457 | 458 | ## Push Notification 459 | 460 | * [Rpush](https://github.com/rpush/rpush) - The push notification service for Ruby. 461 | * [apn_sender](https://github.com/arthurnn/apn_sender) - Background worker to send Apple Push Notifications over a persistent TCP socket. 462 | * [Houston](https://github.com/nomad/houston) - A simple gem for sending Apple Push Notifications. 463 | 464 | ## Queue 465 | 466 | *Libraries for working with event and task queues.* 467 | 468 | * [Resque](https://github.com/resque/resque) A Redis-backed Ruby library for creating background jobs, placing them on multiple queues. 469 | * [Delayed::Job](https://github.com/tobi/delayed_job) — Database backed asynchronous priority queue. 470 | * [Qu](https://github.com/bkeepers/qu) A Ruby library for queuing and processing background jobs. 471 | * [Sidekiq](https://github.com/mperham/sidekiq) Simple, efficient background processing for Ruby 472 | 473 | ## RESTful API 474 | 475 | *Libraries for developing RESTful APIs.* 476 | 477 | * [Grape](http://intridea.github.io/grape/) - An opinionated micro-framework for creating REST-like APIs in Ruby. 478 | * [Rails::API](https://github.com/rails-api/rails-api) - Rails for API only applications 479 | * [jbuilder](https://github.com/rails/jbuilder) - Create JSON structures via a Builder-style DSL 480 | * [rabl](https://github.com/nesquena/rabl) - General Ruby templating with json, bson, xml, plist and msgpack support 481 | * [active_model_serializers](https://github.com/rails-api/active_model_serializers) - ActiveModel::Serializer implementation and Rails hooks 482 | * [oat](https://github.com/ismasan/oat) - Adapters-based API serializers with Hypermedia support for Ruby apps (HAL, Siren, JSONAPI). 483 | 484 | ## Spreadsheets 485 | 486 | *Libraries for manipulating Excel, Google Spreadsheets, Numbers, OpenOffice and LibreOffice files* 487 | 488 | * [spreadsheet](https://github.com/zdavatz/spreadsheet) - The Spreadsheet Library is designed to read and write Spreadsheet Documents. 489 | * [axlsx](https://github.com/randym/axlsx) - Axlsx excels at helping you generate beautiful Office Open XML Spreadsheet documents. 490 | * [axlsx_rails](https://github.com/straydogstudio/axlsx_rails) - Axlsx_Rails provides an Axlsx renderer so you can move all your spreadsheet code from your controller into view files. 491 | * [roo](https://github.com/roo-rb/roo) - Roo implements read access for all spreadsheet types and read/write access for Google spreadsheets. 492 | * [google-spreadsheet-ruby](https://github.com/gimite/google-spreadsheet-ruby) - This is a library to read/write Google Spreadsheet. 493 | * [rubyXL](https://github.com/weshatheleopard/rubyXL) - rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents 494 | * [Odf-report](https://github.com/sandrods/odf-report) - Generates ODF files, given a template (.odt) and data, replacing tags 495 | * [simple_xlsx_writer](https://github.com/harvesthq/simple_xlsx_writer) - Just as the name says, simple writter for Office 2007+ Excel files 496 | * [remote_table](https://github.com/seamusabshere/remote_table) - Open local or remote XLSX, XLS, ODS, CSV (comma separated), TSV (tab separated), other delimited, fixed-width files, and Google Docs. 497 | * [acts_as_xlsx](https://github.com/randym/acts_as_xlsx) - acts_as_xlsx lets you turn any ActiveRecord::Base inheriting class into an excel spreadsheet. 498 | * [activeadmin-axlsx](https://github.com/randym/activeadmin-axlsx) - This gem uses axlsx to provide excel/xlsx downloads for resources in Active Admin. 499 | * [to_spreadsheet](https://github.com/glebm/to_spreadsheet) - Render XLSX from Rails using existing views 500 | * [write_xlsx](https://github.com/cxn03651/write_xlsx) - write_xlsx is a gem to create a new file in the Excel 2007+ XLSX format. 501 | * [excel_rails](https://github.com/asanghi/excel_rails) - Allows you to program spreadsheets using .rxls views 502 | * [sheets](https://github.com/bspaulding/Sheets) - Work with spreadsheets easily in a native ruby format. 503 | * [workbook](https://github.com/murb/workbook) - Workbook contains workbooks, as in a table, contains rows, contains cells, reads/writes excel, ods and csv and tab separated files... 504 | * [Spreadsheet report](https://github.com/gnoso/spreadsheet_report) - Simple tool for running queries against ActiveRecord and putting them into a Google Spreadsheet. 505 | * [oxcelix](https://github.com/gbiczo/oxcelix) - A fast Excel 2007/2010 (.xlsx) file parser that returns a collection of Matrix objects 506 | * [wrap_excel](https://github.com/tomiacannondale/wrap_excel) - WrapExcel is to wrap the win32ole, and easy to use Excel operations with ruby. Detailed description please see the README. 507 | * [write_xlsx_rails](https://github.com/maxd/write_xlsx_rails) - xlsx renderer for Rails base on write_xlsx gem 508 | 509 | ## Scheduling 510 | 511 | * [whenever](https://github.com/javan/whenever) Cron jobs in Ruby 512 | * [resque-scheduler](https://github.com/resque/resque-scheduler) A light-weight job scheduling system built on top of resque 513 | * [rufus-scheduler](https://github.com/jmettraux/rufus-scheduler) Scheduler for Ruby 514 | * [Clockwork](https://github.com/tomykaira/clockwork) Clockwork is a cron replacement. It runs as a lightweight, long-running Ruby process which sits alongside your web processes (Mongrel/Thin) and your worker processes (DJ/Resque/Minion/Stalker) to schedule recurring work at particular times or dates. 515 | 516 | ## Science and Data Analysis 517 | 518 | *Libraries for scientific computing and data analyzing.* 519 | 520 | ## Search 521 | 522 | *Libraries and software for indexing and performing search queries on data.* 523 | 524 | * [Thinking Sphinx](https://github.com/pat/thinking-sphinx) - Sphinx plugin for ActiveRecord/Rails 525 | * [elasticsearch-ruby](https://github.com/elastic/elasticsearch-ruby) - Ruby integrations for Elasticsearch 526 | * [Searchkick](https://github.com/ankane/searchkick) - Intelligent search made easy 527 | * [PgSearch](https://github.com/Casecommons/pg_search) - PostgreSQL's full text search 528 | * [Rroonga](https://github.com/ranguba/rroonga) - The Ruby bindings of Groonga 529 | * [Sunspot](https://github.com/sunspot/sunspot) - Solr-powered search for Ruby objects 530 | 531 | ## Site Monitoring 532 | 533 | *Libs for analytics, monitoring* 534 | 535 | * [rack-google-analytics](https://github.com/kangguru/rack-google-analytics) Simple Rack middleware for implementing google analytics tracking 536 | * [DataDog](https://github.com/DataDog/dogapi-rb) A monitoring service for IT, operations and development teams 537 | * [Keen IO](https://github.com/keenlabs/keen-gem) Build analytics features directly into your Ruby apps 538 | 539 | ## Static Page Generation 540 | 541 | * [jekyll](https://github.com/jekyll/jekyll) A blog-aware, static site generator in Ruby 542 | * [middleman](https://github.com/middleman/middleman) 543 | 544 | ## Starter Apps 545 | 546 | *App templates for creating apps quickly* 547 | 548 | * [suspenders](https://github.com/thoughtbot/suspenders) A Rails template with our standard defaults, ready to deploy to Heroku 549 | * [ruby2-rails4-bootstrap-heroku](https://github.com/diowa/ruby2-rails4-bootstrap-heroku) A starter application based on Ruby 2, Rails 4 and Bootstrap for Sass, deployable on Heroku 550 | * [rails-bootstrap](https://github.com/RailsApps/rails-bootstrap) Rails 4.1 starter app with the Bootstrap front-end framework 551 | * [rails4-starterkit](https://github.com/starterkits/rails4-starterkit) Rails 4.1 starter app with production ready performance, security, and authentication 552 | * [cybele](https://github.com/lab2023/cybele) - Rails 4.x template with responder, simple form, haml, exception notification, etc ... 553 | 554 | ## Text Processing 555 | 556 | *Libraries for parsing and manipulating texts.* 557 | 558 | * General 559 | 560 | * Specific Formats 561 | 562 | * Parser 563 | 564 | * [Yomu](https://github.com/Erol) - Read text and metadata from files and documents (.doc, .docx, .pages, .odt, .rtf, .pdf) 565 | 566 | ## Tagging 567 | 568 | *Libraries for tagging items.* 569 | 570 | * [acts-as-taggable-on](https://github.com/mbleigh/acts-as-taggable-on) - A tagging plugin for Rails applications that allows for custom tagging along dynamic contexts. 571 | 572 | ## Template Engine 573 | 574 | *Libraries and tools for templating and lexing.* 575 | 576 | * [Slim](https://github.com/slim-template/slim) A templating lang that reduce the syntax to the essential parts without becoming cryptic. 577 | * [slim-rails](https://github.com/slim-template/slim-rails) Rails port of Slim lang 578 | * [Haml](https://github.com/haml/haml) HTML Abstraction Markup Language - A Markup Haiku 579 | * [haml-rails](https://github.com/indirect/haml-rails) Rails port of Haml lang 580 | * [Tilt](https://github.com/rtomayko/tilt) 581 | * [Liquid](https://github.com/Shopify/liquid) 582 | 583 | ## Testing 584 | 585 | *Libraries for testing codebases and generating test data.* 586 | 587 | * Testing Frameworks 588 | * [RSpec](http://rspec.info/) - BDD for Ruby 589 | * [MiniTest](https://github.com/seattlerb/minitest) - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking 590 | * [Cucumber] 591 | * [Cucumber Github](https://github.com/cucumber/cucumber/wiki) - Cucumber is a tool that executes plain-text functional descriptions as automated tests 592 | * [Cucumber Site](https://cucumber.io/) - Behaviour Driven Development with elegacy and joy 593 | * [Spinach](https://github.com/codegram/spinach) - Spinach is a high-level BDD framework that leverages the expressive Gherkin language (used by Cucumber) to help you define executable specifications of your application or library's acceptance criteria. 594 | * [Rubytest](http://rubyworks.github.io/rubytest) - Rubytest is a testing meta-framework useful for creating highly customize test suites or building whole new test frameworks. 595 | * [BRASS](http://rubyworks.github.io/brass) - Bare-metal Ruby assertion system standard used by Rubytest. 596 | * [Lemon](http://rubyworks.github.io/lemon) - Strict unit test system built on top of Rubytest. 597 | * [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) - Collection of testing matchers extracted from Shoulda 598 | * [capybara](https://github.com/jnicklas/capybara) - Acceptance test framework for web applications 599 | * Mock 600 | * [RSpec-mocks](https://github.com/rspec/rspec-mocks) - RSpec's 'test double' framework, with support for stubbing and mocking 601 | * [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. 602 | * [FlexMock](https://github.com/jimweirich/flexmock) - Flexible mocking for Ruby testing 603 | * Fake Data 604 | * [Faker](https://github.com/stympy/faker) - A library for generating fake data such as names, addresses, and phone numbers 605 | * [ffaker](https://github.com/ffaker/ffaker) - Faker Refactored. 606 | * [Forgery](https://github.com/sevenwire/forgery) - Easy and customizable generation of forged data. 607 | * Code Coverage 608 | * [simplecov](https://github.com/colszowka/simplecov) Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage 609 | * Load Testing 610 | 611 | * Error Handler 612 | 613 | ## Third-party APIs 614 | 615 | *Libraries for accessing third party APIs.* 616 | 617 | * [koala](https://github.com/arsduo/koala) A lightweight, flexible library for Facebook 618 | * [fb_graph](https://github.com/nov/fb_graph) A full-stack Facebook Graph API wrapper 619 | * [twitter](https://github.com/sferik/twitter) A Ruby interface to the Twitter API 620 | * [tweetstream](https://github.com/tweetstream/tweetstream) A simple library for consuming Twitter's Streaming API 621 | * [gitlab](https://github.com/NARKOZ/gitlab) Ruby wrapper and CLI for the GitLab API 622 | * [octokit.rb](https://github.com/octokit/octokit.rb) Ruby toolkit for the GitHub API 623 | * [instagram](https://github.com/Instagram/instagram-ruby-gem) The official gem for the Instagram API 624 | * [linkedin](https://github.com/hexgnu/linkedin) Ruby wrapper for the LinkedIn API 625 | * [twilio-ruby](https://github.com/twilio/twilio-ruby) A Ruby gem for communicating with the Twilio API and generating TwiML 626 | * [viewpoint-spws](https://github.com/zenchild/viewpoint-spws) A Microsoft Sharepoint Web Services library for Ruby. 627 | * [youtube_it](https://github.com/kylejginavan/youtube_it) An object-oriented Ruby wrapper for the YouTube GData API 628 | * [flickraw](https://github.com/hanklords/flickraw) Flickraw is a library to access flickr api 629 | * [f00px](https://github.com/500px/f00px) Official 500px api ruby gem 630 | * [rspotify](https://github.com/guilhermesad/rspotify) Ruby wrapper for the Spotify Web API 631 | 632 | ## URL Manipulation 633 | 634 | *Libraries for parsing URLs.* 635 | 636 | ## Video 637 | 638 | *Libraries for manipulating video and GIFs.* 639 | 640 | * [streamio-ffmpeg](https://github.com/streamio/streamio-ffmpeg) Simple yet powerful ruby FFmpeg wrapper for reading metadata and transcoding movies 641 | 642 | ## Web Content Extracting 643 | 644 | *Libraries for extracting web contents.* 645 | 646 | ## Web Crawling 647 | 648 | *Libraries for scraping websites.* 649 | 650 | * [upton](https://github.com/propublica/upton) A batteries-included framework for easy web-scraping 651 | * [metainspector](https://github.com/jaimeiniesta/metainspector) 652 | 653 | ## Web Frameworks 654 | 655 | *Web development frameworks.* 656 | 657 | * [Ruby On Rails](http://rubyonrails.org/) - Ruby on Rails is a full-stack web framework optimized for programmer happiness and sustainable productivity 658 | * [Sinatra](http://www.sinatrarb.com/) - Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort. 659 | * [Padrino](http://www.padrinorb.com/) - The Godfather of Sinatra provides a full-stack agnostic framework on top of Sinatra 660 | * [Cramp](http://cramp.in/) - Cramp is a fully asynchronous real-time web application framework in Ruby 661 | * [Lotus](http://lotusrb.org/) - A newborn complete Ruby web framework that is simple, fast and lightweight. 662 | * [Cuba](http://cuba.is/) - Cuba is a microframework for web development originally inspired by Rum, a tiny but powerful mapper for Rack applications. 663 | * [Pakyow](https://pakyow.com/) - Pakyow is an open-source framework for the modern web. Build working software faster with a development process that remains friendly to both designers and developers. It's built for getting along. 664 | 665 | ## Web Servers 666 | 667 | *App server interface* 668 | 669 | * [puma](https://github.com/puma/puma) A simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications. 670 | * [thin](https://github.com/macournoyer/thin) A thin and fast web server 671 | * [trinidad](https://github.com/trinidad/trinidad) Run Rails or Rack applications within an embedded Apache Tomcat container. 672 | * [unicorn](https://github.com/defunkt/unicorn) An HTTP server for Rack applications designed to only serve fast clients. 673 | * [passenger](https://github.com/phusion/passenger) A modern web server and application server for Ruby, Python, and Node.js. 674 | * [pow](https://github.com/basecamp/pow) Pow treats files and directories as ruby objects giving you more power and flexibility. 675 | * [goliath](https://github.com/postrank-labs/goliath) is a non-blocking Ruby web server framework. 676 | 677 | ## WebSocket 678 | 679 | *Libraries for woking with WebSocket.* 680 | 681 | * [Faye](http://faye.jcoglan.com/ruby.html) - Simple pub/sub messaging for the web 682 | * [websocket-rails](https://github.com/websocket-rails/websocket-rails) - Plug and play websocket support for ruby on rails. 683 | 684 | # Miscellaneous 685 | 686 | *Useful libraries or tools that don't fit in the categories above.* 687 | 688 | * [packetfu](https://github.com/packetfu/packetfu) A mid-level packet manipulation library for Ruby. 689 | * [chatterbot](https://github.com/muffinista/chatterbot) A straightforward ruby-based Twitter Bot Framework, using OAuth to authenticate 690 | * [sneakers](https://github.com/jondot/sneakers) A fast background processing framework for Ruby and RabbitMQ 691 | * [ransack](https://github.com/activerecord-hackery/ransack) Object-based searching. 692 | * [cinch](https://github.com/cinchrb/cinch) The IRC Bot Building Framework 693 | * [pry](https://github.com/pry/pry) An IRB alternative and runtime developer console 694 | * [friendly_id](https://github.com/norman/friendly_id) Slugging and permalink plugins for ActiveRecord 695 | * [backup](https://github.com/backup/backup) An elegant DSL in Ruby for performing backups on UNIX-like systems 696 | * [kss](https://github.com/kneath/kss) Documenting CSS and generating styleguides 697 | * [AASM](https://github.com/aasm/aasm) - A library for adding finite state machines to Ruby classes 698 | * [JsonCompare](https://github.com/a2design-inc/json-compare) - Returns the difference between two JSON files 699 | * [blankable](https://github.com/lab2023/blankable) - Adds blank slates to index view in Rails 700 | * [tcmb_currency](https://github.com/lab2023/tcmb_currency) - T.C.M.B. currencies for Money Gem 701 | * [enumerize](https://github.com/brainspec/enumerize) - Enumerated attributes with I18n and ActiveRecord/Mongoid support 702 | * [lol_dba](https://github.com/plentz/lol_dba) - lol_dba is a small package of rake tasks that scan your application models and displays a list of columns that probably should be indexed. 703 | * [annotate-models](https://github.com/ctran/annotate_models) - Annotate ActiveRecord models 704 | * [fast_attributes](https://github.com/applift/fast_attributes) - FastAttributes adds attributes with their types to the class 705 | * [Github Changelog Generator](https://github.com/skywinder/Github-Changelog-Generator) — automatically generate change log from your tags, issues, labels and pull requests on GitHub. 706 | * [Letter Opener](https://github.com/ryanb/letter_opener) — Preview email in the default browser instead of sending it. 707 | * [Auto HTML](https://github.com/dejan/auto_html) — Transforming URLs to appropriate resource (image, link, YouTube, Vimeo video,...). 708 | 709 | 710 | ## Editor Plugins 711 | 712 | *Plugins for various editors.* 713 | 714 | * [vim-ruby](https://github.com/vim-ruby/vim-ruby) Vim/Ruby Configuration Files 715 | * [vim-rails](https://github.com/tpope/vim-rails) rails.vim: Ruby on Rails power tools 716 | 717 | # Resources 718 | 719 | *Where to discover things (libraries, news e.g) about Ruby.* 720 | 721 | * [The Ruby Toolbox](https://www.ruby-toolbox.com/) 722 | * [RubyGems](https://rubygems.org/) 723 | * [RubyDaily](http://rubydaily.org) - Community driven news 724 | * [Ruby Weekly](http://rubyweekly.com/) - A free, once–weekly e-mail round-up of Ruby news and articles. 725 | * [Ruby5](https://ruby5.codeschool.com/) - The latest news in the Ruby and Rails community 726 | * [RubyFlow](http://www.rubyflow.com) - Ruby Programming Community Link Blog 727 | * [GemBundle](http://www.gembundle.com) - A place to discover new Ruby Gems 728 | 729 | ## People to Follow 730 | 731 | *People in Ruby World* 732 | 733 | * [Yukihiro "Matz" Matsumoto](https://twitter.com/yukihiro_matz) - Creator of Ruby lang 734 | * [David Heinemeier Hansson](https://twitter.com/dhh) - Creator of Rails framework 735 | * [Koichi Sasada](https://github.com/ko1) - Ruby core committer and the developer of YARV 736 | * [Aaron Patterson](http://tenderlovemaking.com/) - Committer to Nokogiri, Ruby, and Ruby on Rails 737 | * [Avdi Grimm](http://devblog.avdi.org/) - Host of Ruby Tapas webcasts 738 | * [Aman Gupta](http://tmm1.net/)- Ruby core committer 739 | 740 | 741 | # Other Awesome Lists 742 | 743 | Other amazingly awesome lists can be found in the [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) list. 744 | --------------------------------------------------------------------------------