esaul / awesome-rubies

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

awesome-rubies

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


[ANNOUNCEMENT] Looking for awesome Ruby events (meetups, conferences, camps, etc.) from around the world)? See the Awesome Events List @ Planet Ruby.


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
    • 2014: 2.2 (Dec/24)
    • 2013: 2.1 (Dec/24)
    • 2012: 2.0 (Feb/24, 2013)
  • JRuby, :octocat: - Ruby on the Java Virtual Machine (JVM)
    • Upcoming: v9.0.0.0
    • 2014: v1.7.x
  • mruby, :octocat: - lightweight Ruby; designed for linking and embedding within your application
  • Rubinius (rbx), :octocat: - designed for concurrency; uses a low-pause generational garbage collector and LLVM-based just-in-time (JIT) native machine code compiler; core library and tools coded in Ruby

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)

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

  • IronRuby, :octocat: - a ruby interpreter built on top of the Microsoft .NET Common Language Runtime (CLR)
  • MacRuby :octocat: - a ruby interpreter built on top of Apple's Objective-C/Cocoa library
  • Ruby Enterprise Edition (REE) - builds on top of MRI Rubies, versions 1.8.X and later
  • SmallRuby - a ruby interpreter built on top of the Smalltalk/X virtual machine

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: - compile 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

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)

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 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

  • RuboCop :octocat: - a Ruby static code analyzer
  • reek :octocat: - code smell detector for Ruby

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)

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!

About

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