ruby-tools 0.0.0

Ruby language tools for Rusty Ruby
Documentation
  • Coverage
  • 100%
    4 out of 4 items documented0 out of 3 items with examples
  • Size
  • Source code size: 27.22 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.72 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 54s Average build duration of successful builds.
  • all releases: 54s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • nyar-vm/rusty-ruby
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • fqq

rusty-ruby

A Ruby language frontend for the Nyar VM.

Overview

rusty-ruby is a high-performance Ruby frontend for the Nyar VM ecosystem. It brings the elegance and programmer-centric philosophy of Ruby to a modern, JIT-optimized runtime, enabling Ruby applications to benefit from advanced features like algebraic effects, multi-tier execution, and precise garbage collection.

Features

  • Programmer Happiness: Full support for Ruby's expressive syntax and dynamic object model.
  • Pure Object Orientation: Maps Ruby's "everything is an object" model to Nyar's native object system and virtual dispatch.
  • Nyar Ecosystem Integration:
    • nyar-jit: Optimizes hot Ruby methods and blocks into native machine code.
    • nyar-gc: Provides high-performance, precise memory management for managed Ruby objects.
    • Algebraic Effects: Used to implement Ruby's powerful control flow, including blocks, procs, and exception handling.
  • Dynamic Meta-Programming: Supports Ruby's dynamic nature through Nyar's integrated metaprogramming primitives.

Supported Constructs

  • Core Syntax: class, module, def, attr_accessor.
  • Control Flow: if, unless, while, until, begin/rescue/ensure.
  • Blocks & Procs: Full support for Ruby's block syntax and closure model.
  • Standard Library: Integrated with Nyar's FFI for core Ruby library support.

Getting Started

Usage via Nyar CLI

nyar run application.rb

Usage as a Library

use rusty_ruby::RustyRubyFrontend;
use nyar_types::NyarFrontend;

let frontend = RustyRubyFrontend::new();
let ast = frontend.parse("def hello(name); puts \"Hello, #{name}!\"; end").unwrap();
// Lower and execute via NyarVM

License

Licensed under MIT OR Apache-2.0.