Go to file
Peter Wagenet f79f91ab6f Fix compilation 2018-09-12 14:53:02 -07:00
crates/cstr-macro Fix compilation 2018-09-12 14:53:02 -07:00
examples Fix compilation 2018-09-12 14:53:02 -07:00
ruby Fix compilation 2018-09-12 14:53:02 -07:00
scripts Improve Vagrant release tests 2017-10-10 20:02:36 -07:00
src Fix compilation 2018-09-12 14:53:02 -07:00
.appveyor.yml Allow arbitrary attributes for methods 2018-06-16 09:23:54 -04:00
.gitignore Don't lock Gemfiles 2017-10-10 16:16:48 -07:00
.travis.yml Fix compilation 2018-09-12 14:53:02 -07:00
CHANGELOG.md v0.7.5 2018-06-04 16:15:00 -04:00
Cargo.toml Fix compilation 2018-09-12 14:53:02 -07:00
LICENSE
README.md Remove coercion docs for now 2017-10-17 23:33:44 -07:00
RELEASE.md Fix numbering in RELEASE.md 2017-04-24 10:09:48 -07:00
Rakefile WIP 2018-09-12 11:04:33 -07:00
Vagrantfile Add scripts dir, renable Vagrant provisioning 2017-03-03 12:21:57 -08:00

README.md

Travis Build Status AppVeyor Build Status

Helix

Helix allows you to write Ruby classes in Rust without having to write the glue code yourself.

ruby! {
    class Console {
        def log(string: String) {
            println!("LOG: {}", string);
        }
    }
}
$ rake build
$ bundle exec irb
>> require "console"
>> Console.log("I'm in your Rust")
LOG: I'm in your Rust
 => nil

Why Helix?

Read the Introducing Helix blog post for a quick introduction to the project!

Getting Started

https://usehelix.com/getting_started

Demos

https://usehelix.com/demos

Roadmap

https://usehelix.com/roadmap

Compatibility

Helix has been tested with the following, though other combinations may also work.

  • cargo 0.18.0 (fe7b0cdcf 2017-04-24)
  • rustc 1.17.0 (56124baa9 2017-04-24)
  • ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
  • Bundler version 1.14.6

Contributing

If you'd like to experiment with Helix, you can start with some of the examples in this repository.

Clone and download the Helix repository:

$ git clone https://github.com/tildeio/helix
$ cd helix

Navigate to the console example folder and bundle your Gemfile:

$ cd examples/console
$ bundle install

Run rake irb to build and start irb:

$ bundle exec rake irb

Try running some of the methods defined in examples/console/src/lib.rs:

> c = Console.new
Console { helix: VALUE(0x7fdacc19a6a0) }
 =>
> c.hello
hello
 => nil
> c.loglog('hello', 'world')
hello world
 => nil