A collection of awesome Rubies (compilers, interpreters, virtual machines, parsers, doc generators, version managers, etc.)
Switch branches/tags
Nothing to show
Clone or download
Latest commit ec054a8 Feb 22, 2018
Permalink
Failed to load latest commit information.
LICENSE.md Create LICENSE.md Dec 31, 2017
NOTES.md Create NOTES.md Jun 27, 2015
README.md Update README.md Feb 22, 2018

README.md

Awesome Series @ Planet Ruby

Rubies (Virtual Machines, Compilers, ...)ActiveRecordWebframeworks (Micro, Macro, APIs, ...)Events (Conferences, Camps, Meetups, ...)Blogs (News, Opinions, Podcasts, ...)

Rubies

A collection of awesome Rubies (compilers, interpreters, virtual machines, parsers, doc generators, version managers, etc.)

Contributions welcome. Anything missing? Send in a pull request. Thanks.

Note: 💎 stands for the RubyGems page and :octocat: stands for the GitHub page.

What are Rubies?

3x3 News

3x3 => Ruby 3 will be 3 times faster in 2020

Ruby 3 - the next major update of ruby (planed for 2020) will be 3 times (3x) faster than Ruby 2.

Note: The baseline for Ruby3x3 is 2.0 so all the improvements in 2.x will count toward the 3x goal.

Find out more @ Ruby 3x3 - Ruby 3 Will Be 3 Times Faster - What's News? »

Major Rubies

  • Ruby, :octocat:- also known as Matz's Ruby Interpreter (MRI) or CRuby; using the YARV (Yet another Ruby VM) since version 1.9
    • 2017: 2.5 (Dec/24)
    • 2016: 2.4 (Dec/24)
    • 2015: 2.3 (Dec/24)
    • 2014: 2.2 (Dec/24)
  • JRuby, :octocat: - Ruby on the Java Virtual Machine (JVM)
    • 2016: v9.1.0.0
    • 2014: v1.7.x
  • Rubinius (rbx), :octocat: - designed for concurrency; uses a low-pause generational garbage collector; core library and tools coded in Ruby
  • TruffleRuby, :octocat: - A high performance Ruby on top of Truffle and Graal
  • mruby, :octocat: - lightweight Ruby; designed for linking and embedding within your application
  • Opal - :octocat:, 💎 - source-to-source ruby-to-javascript compiler

Minor / Upcoming Rubies

  • Topaz, :octocat: - Ruby coded in Python on top of RPython (the toolchain that powers PyPy)
  • GoRuby :octocat: - Ruby coded in Go
  • MagLev, :octocat: - a ruby interpreter built on top of the GemStone/S (64-bit) Virtual Machine (VM); note - to run MagLev you need a commercial GemStone/S Server (license)
  • tinyrb, :octocat: - a tiny subset of Ruby with a Lua'esc Virtual Machine (VM)
  • fruby :octocat: - Ruby in Français (French) e.g. classe, défini, si, sinonsi, vrai, faux, fin, etc.

Discontinued / Rest In Peace (R.I.P.) Rubies

Ruby-to-JavaScript

  • Opal - :octocat:, 💎 - source-to-source compiler
  • rubys/ruby2js :octocat:, 💎 - minimal yet extensible Ruby to JavaScript converter
  • RubyJS, :octocat: - JavaScript standard library based on the Ruby core-lib

Ruby-to-C (LLVM)

  • Crystal, :octocat: - Ruby-like syntax; statically-typed with type inference; compiles to machine code; run a ye good olde binary

Ruby-to-Java

  • Mirah, :octocat: - formerly known as Duby; compiles to Java bytecode; no (extra) runtime library required
  • RubyFlux :octocat: - a ruby to java static compiler

Ruby-to-Objective-C/Cocoa

  • RubyMotion - commercial compiler for Apple iOS/Cocoa

Ruby-to-Erlang (†)

  • Elixir - Ruby-inspired syntax; a dynamic, functional language for the Erlang VM compiles to BEAM instructions (bytecode)

(†): Note: Elixir is not a Ruby-to-Erlang compiler. Elixir started off with a Ruby-inspired syntax. The language semantics differ e.g. dynamic pure functional vs dynamic general pragmatic "multi-paradigm" language.

Ruby Version Manager

  • rvm, :octocat: - Ruby enVironment Manager; 27,000 lines of shell scripts to manage your rubies (overwrites your cd)
  • rbenv :octocat: - intercepts Ruby commands using shim executables added into your $PATH
  • chruby :octocat: - changes the current Ruby

Ruby Language Research, Papers & Books

Ruby Benchmarks & Tests

Ruby Type Annotations / Signatures

Ruby Stdlib (Core) Extensions / Refinements

Ruby Library Collections

  • SciRuby - :octocat: - tools for scientific computing in Ruby e.g. nmatrix, statsample, etc.
  • Functional Ruby :octocat:, 💎 - adding functional programming tools to Ruby; inspired by Erlang, Clojure, Haskell, and Functional Java
  • Concurrent Ruby :octocat:, 💎 - modern concurrency tools including agents, futures, promises, thread pools, supervisors, and more; inspired by Erlang, Clojure, Scala, Go, Java, JavaScript, and classic concurrency patterns

Ruby Quick References / Cheat Sheets

Ruby Parser / Unparser

  • seattlerb/ruby_parser (RP) :octocat:, 💎 - a ruby parser written in ruby (using racc -- which does by default use a C extension). RP's output is the same as ParseTree's output: s-expressions using ruby's arrays and base types
  • whitequark/parser :octocat:, 💎 - a ruby parser written in ruby; also includes an "unparser" to produce equivalent source code from the parser's Abstract Syntax Tree (AST)s

Ruby Documentation Generators

  • YARD, :octocat:, 💎 - Yay! A Ruby Documentation Tool
  • SDoc :octocat:, 💎 - RDoc generator to build searchable HTML documentation for Ruby code
  • RDoc :octocat:, 💎 - RDoc produces HTML and online documentation for Ruby code

Ruby Linter / Code Checker / Static Code Analyzer

Ruby Binary Packagers

  • Traveling Ruby, :octocat: - self-contained, portable Ruby binaries
  • Omnibus :octocat:, 💎 - mini language (that is, domain-specific language (DSL) for installers (that is, binary packages)

Ruby Gems / Libraries

Ruby Community (Events, Questions & Answers, Announcements, etc.)

Thanks

Jesse Cooke • Marcel Hlopko • Sota Yamashtia

Meta

License

The awesome list is dedicated to the public domain. Use it as you please with no restrictions whatsoever.

Questions? Comments?

Send them along to the ruby-talk mailing list. Thanks!