oxidize.rb
Building Ruby extensions with Rust using rb-sys
Code Example
Ruby extensions with Rust performance and safety
Ruby
Rust
Ruby Implementation
# Define a Ruby class
class Calculator
def add(a, b)
a + b
end
end
# Use it
calc = Calculator.new
puts calc.add(40, 2) # => 42
Rust Implementation
// Implement in Rust with rb-sys
use magnus::{define_class, method, prelude::*, Error, Ruby};
fn add(_ruby: &Ruby, _self: magnus::Value, a: i64, b: i64) -> i64 {
a + b
}
#[magnus::init]
fn init(ruby: &Ruby) -> Result<(), Error> {
let calculator = define_class("Calculator", ruby.class_object())?;
calculator.define_method("add", method!(add, 2))?;
Ok(())
}
Key Features
Easy to Use
rb-sys integrates into Ruby projects with minimal setup, combining Ruby's flexibility with Rust's performance and safety.
Focus on What Matters
rb-sys handles the complex FFI integration between Ruby and Rust, letting you concentrate on your application code.
Powered by Rust
Add Rust capabilities to Ruby applications with simplified bindings to the Ruby C API.