Description
Our goal with the Helix project is to let you keep writing the Ruby you love, without fearing that you'll eventually hit a wall. With Helix, you can always start with Ruby, knowing that you will always have the option to move only the CPU-intensive parts to Rust instead of rewriting your entire app in a faster language (or spawning a fleet of micro-services written in Go).
Helix alternatives and similar gems
Based on the "Core Extensions" category.
Alternatively, view Helix alternatives based on common mentions on social networks and blogs.
-
Addressable
Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. It is flexible, offers heuristic parsing, and additionally provides extensive support for IRIs and URI templates. -
fast_blank
fast_blank is a simple C extension which provides a fast implementation of Active Support's String#blank? method. -
Finishing Moves
Small, focused, awesome methods added to core Ruby classes. Home of the endlessly useful nil_chain. -
ArrayIncludeMethods
Array#include_all?, Array#include_any?, Array#include_array?, Array#array_index, Array#array_diff_indices, Array#array_intersection_indices, Array#counts, and Array#duplicates operations missing from basic Ruby Array API -
ToCollection
Treat an array of objects and a singular object uniformly as a collection of objects. Especially useful in processing REST Web Service API JSON responses in a functional approach.
Scout Monitoring - Performance metrics and, now, Logs Management Monitoring with Scout Monitoring
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Helix or a related project?
Popular Comparisons
README
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.
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
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