mirror of https://github.com/tildeio/helix
111 lines
3.4 KiB
Markdown
111 lines
3.4 KiB
Markdown
[![Travis Build Status](https://travis-ci.org/tildeio/helix.svg?branch=master)](https://travis-ci.org/tildeio/helix)
|
|
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/tildeio/helix?branch=master&svg=true)](https://ci.appveyor.com/project/wagenet/helix)
|
|
|
|
# ~~Helix~~
|
|
|
|
> :warning: **Deprecated** :warning:
|
|
>
|
|
> Sadly, we have made the decision to deprecate this project. While we had
|
|
> hoped to bootstrap the project to a point where it could flourish as a
|
|
> community project, unfortunately we ran into a number of roadblocks along the
|
|
> way, along with the need for significant architectural overhaul. While these
|
|
> issues are solvable on a technical level, doing so correctly requires more
|
|
> resources than we have been able to provide and progress has stalled.
|
|
>
|
|
> One of our goals was also to integrate our own Skylight agent with Helix,
|
|
> aligning the company's priorities with the project. While the Skylight agent
|
|
> is still written in Rust with a thin layer of C bindings (which is the part
|
|
> Helix would replace), we were not able to get the project to the point where
|
|
> we felt comfortable running it on our customer's servers. We did not identify
|
|
> any specific blockers that would prevent us from doing this, but ultimate, we
|
|
> did not have the necessary time and resources to realize this.
|
|
>
|
|
> Since we are a small team, it is unlikely that we will be able to provide the
|
|
> necessary investment in the foreseeable future to achieve our ambitions for
|
|
> the project. At this point, we believe it is in everyone's best interest to
|
|
> formally deprecate the project, accurately reflecting its effective state.
|
|
> Meanwhile, others in the Ruby and Rust communities have continued to explore
|
|
> in the adjacent research areas. Some of them have made great progress and
|
|
> brought new ideas and innovations to the table. We look forward to seeing
|
|
> these new ideas come to fruition and fill the void we are leaving.
|
|
|
|
Helix allows you to write Ruby classes in Rust without having to write the glue code yourself.
|
|
|
|
```rust
|
|
ruby! {
|
|
class Console {
|
|
def log(string: String) {
|
|
println!("LOG: {}", string);
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
```shell
|
|
$ 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*](http://blog.skylight.io/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:
|
|
```shell
|
|
$ git clone https://github.com/tildeio/helix
|
|
$ cd helix
|
|
```
|
|
|
|
Navigate to the console example folder and bundle your `Gemfile`:
|
|
```shell
|
|
$ cd examples/console
|
|
$ bundle install
|
|
```
|
|
|
|
Run `rake irb` to build and start irb:
|
|
```shell
|
|
$ bundle exec rake irb
|
|
```
|
|
|
|
Try running some of the methods defined in `examples/console/src/lib.rs`:
|
|
```shell
|
|
> c = Console.new
|
|
Console { helix: VALUE(0x7fdacc19a6a0) }
|
|
=>
|
|
> c.hello
|
|
hello
|
|
=> nil
|
|
> c.loglog('hello', 'world')
|
|
hello world
|
|
=> nil
|
|
```
|