1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017 年 4 月 17 日

#11 in #c-strings

Download history 112/week @ 2024-04-04 105/week @ 2024-04-11 127/week @ 2024-04-18 115/week @ 2024-04-25 111/week @ 2024-05-02 217/week @ 2024-05-09 121/week @ 2024-05-16 128/week @ 2024-05-23 119/week @ 2024-05-30 143/week @ 2024-06-06 74/week @ 2024-06-13 130/week @ 2024-06-20 91/week @ 2024-06-27 26/week @ 2024-07-04 86/week @ 2024-07-11 128/week @ 2024-07-18

358 次每月下载
5 个crate中使用 (4 个直接使用)

MIT/Apache

1KB

Travis Build Status AppVeyor Build Status

Helix

⚠️ 已弃用 ⚠️

遗憾的是,我们已决定弃用此项目。虽然我们曾希望将项目启动到一个可以繁荣发展的地步,但不幸的是,我们在路上遇到了许多障碍,并且需要进行重大的架构重构。虽然这些问题在技术上可以解决,但正确解决这些问题需要我们无法提供的更多资源,并且进展已经停滞。

我们的目标之一也是将我们自己的 Skylight 代理与 Helix 集成,使公司的优先事项与项目保持一致。虽然 Skylight 代理仍然是使用 Rust 编写并带有薄层 C 绑定的(这是 Helix 将要替换的部分),但我们无法将项目推进到我们感到可以在客户服务器上运行的程度。我们没有发现任何具体的阻止因素,但最终,我们没有必要的时间和资源来实现这一点。

由于我们是一个小型团队,因此我们不太可能在可预见的未来投入必要的资源来实现我们对项目的雄心。此时,我们认为正式弃用项目,准确反映其实际状态,符合每个人的最大利益。同时,Ruby 和 Rust 社区中的其他人继续探索相邻的研究领域。其中一些人取得了重大进展,并为该领域带来了新的想法和创新。我们期待看到这些新想法得以实现,填补我们留下的空白。

Helix 允许您在 Rust 中编写 Ruby 类,而无需自己编写胶水代码。

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

为什么选择 Helix?

阅读 介绍 Helix 博客文章,快速了解项目!

入门

https://usehelix.com/getting_started

演示

https://usehelix.com/demos

路线图

https://usehelix.com/roadmap

兼容性

Helix 已与以下内容进行了测试,尽管其他组合也可能有效。

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

贡献

如果您想尝试 Helix,可以从这个存储库中的一些示例开始。

克隆并下载 Helix 仓库

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

导航到控制台示例文件夹并捆绑您的 Gemfile

$ cd examples/console
$ bundle install

运行 rake irb 来构建并启动 irb

$ bundle exec rake irb

尝试运行定义在 examples/console/src/lib.rs 中的某些方法。

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

无运行时依赖