Coder Social home page Coder Social logo

awesome-rubies's Introduction

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.

3x3 News

Q: What's 3x3?

to be done

Q: What's OptCarrot?

to be done

News

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

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

  • TruffleRuby, :octocat: - A high performance Ruby on top of Truffle and Graal
  • 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: - 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
  • 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)

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!

awesome-rubies's People

Contributors

eregon avatar geraldb avatar hlopko avatar jc00ke avatar sotayamashita avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.