Awesome Series @ Planet Ruby
Rubies (Virtual Machines, Compilers, ...) • ActiveRecord • Webframeworks (Micro, Macro, APIs, ...) • Events (Conferences, Camps, Meetups, ...) • Blogs (News, Opinions, Podcasts, ...)
A collection of awesome Rubies (compilers, interpreters, virtual machines, parsers, doc generators, version managers, etc.)
Note: 💎 stands for the RubyGems page and stands for the GitHub page.
Q: What's 3x3?
to be done
Q: What's OptCarrot?
to be done
- 2017/Dec - MJIT accepted into Ruby 2.6 - MJIT infrastructure means: JIT worker thread, profiler, gcc/clang compiler support, loading function from shared object file, some hooks to ensure JIT does not cause SEGV, etc...
- Ruby, - 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, - Ruby on the Java Virtual Machine (JVM)
- Upcoming: v9.0.0.0
- 2014: v1.7.x
- mruby, - lightweight Ruby; designed for linking and embedding within your application
- Rubinius (rbx), - 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
- TruffleRuby, - A high performance Ruby on top of Truffle and Graal
- Topaz, - Ruby coded in Python on top of RPython (the toolchain that powers PyPy)
- GoRuby - Ruby coded in Go
- MagLev, - 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, - a tiny subset of Ruby with a Lua'esc Virtual Machine (VM)
- fruby - Ruby in Français (French) e.g. classe, défini, si, sinonsi, vrai, faux, fin, etc.
- IronRuby, - a ruby interpreter built on top of the Microsoft .NET Common Language Runtime (CLR)
- MacRuby - 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 @ České vysoké učení technické v Praze (ČVUT) - a ruby interpreter built on top of the Smalltalk/X virtual machine
- Diamondback Ruby (DRuby) @ University of Maryland (UMD) - adds gradual typing (with type inference and type annotations) to Ruby
- Opal - , 💎 - source-to-source compiler
- rubys/ruby2js , 💎 - minimal yet extensible Ruby to JavaScript converter
- RubyJS, - JavaScript standard library based on the Ruby core-lib
- Crystal, - compile to machine code; run a ye good olde binary
- Mirah, - formerly known as Duby; compiles to Java bytecode; no (extra) runtime library required
- RubyFlux - a ruby to java static compiler
- RubyMotion - commercial compiler for Apple iOS/Cocoa
- Elixir - Ruby-inspired syntax; a dynamic, functional language for the Erlang VM compiles to BEAM instructions (bytecode)
- rvm, - Ruby enVironment Manager; 27,000 lines of shell scripts to manage your rubies (overwrites your cd)
- rbenv - intercepts Ruby commands using shim executables added into your $PATH
- chruby - changes the current Ruby
- Ruby under a Microscope - An Illustrated Guide to Ruby Internals by Pat Shaughnessy; No Starch Press; 360 pages; Nov 2013
- Ruby Performance Optimization: Why Ruby Is Slow, and How to Fix It by Alexander Dymo; The Pragmatic Programmers
- The Ruby Bibliography,
- Streem Lang - prototype of stream based programming language by Yukihiro Matsumoto
- RubyBench, - Ruby Releases Benchmarks
- Contracts for Ruby (contracts.ruby) , 💎 - a contract is one line of code that you write above a method definition; it validates the arguments to the method, and validates the return value of the method
- Rubype (Ruby+Type) , 💎 - gradual type checking for Ruby
- Typedocs , 💎 - method type annotations for Ruby
- Typecheck , 💎 - type checking for Ruby methods
- Ruby Type Checker (Rtc)
- Active Support , 💎
- Zucker , 💎 - collection of Ruby refinements; lots of small refinements to sweeten your Ruby code
- Powerpack , 💎 by Bozhidar Batsov et al - collection of Ruby core extensions for array, enumerable, hash, numeric, string, etc.
- PowerCore by Arturo Herrero et al - collection of Ruby core extensions for array, date, fixnum, hash, kernel, object, proc, string, etc.
- SciRuby - - tools for scientific computing in Ruby e.g. nmatrix, statsample, etc.
- Functional Ruby , 💎 - adding functional programming tools to Ruby; inspired by Erlang, Clojure, Haskell, and Functional Java
- Concurrent Ruby , 💎 - 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 QuickRef - Language, Standard Library, Tools
- Learn Ruby in Y Minutes, - A whirlwind tour of Ruby - learnruby.rb
- seattlerb/ruby_parser (RP) , 💎 - 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 , 💎 - a ruby parser written in ruby; also includes an "unparser" to produce equivalent source code from the parser's Abstract Syntax Tree (AST)s
- YARD, , 💎 - Yay! A Ruby Documentation Tool
- SDoc , 💎 - RDoc generator to build searchable HTML documentation for Ruby code
- RDoc , 💎 - RDoc produces HTML and online documentation for Ruby code
- Traveling Ruby, - self-contained, portable Ruby binaries
- Omnibus , 💎 - mini language (that is, domain-specific language (DSL) for installers (that is, binary packages)
- RubyGems, - 100,000+ Gems
- Awesome Ruby
- Awesome ActiveRecord
- Awesome Jekyll @ Planet Jekyll
- Awesome Markdown
- Ruby Gem of the Week Series @ Planet Ruby,
- Trending Ruby Projects @ GitHub - Today, This Week, This Month
- Alltime Starred Ruby Projects @ GitHub
- Ruby Toolbox
- Gems @ Ruby Bookmarks
- Ruby @ Reddit
- Awesome Ruby Events - meetups, conferences, camps, etc. from around the world
- Planet Ruby, - online news reader about all things ruby
Jesse Cooke • Marcel Hlopko • Sota Yamashtia
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!