#language #scripting #script #api-bindings

nightly bin+lib julia

为 Rust 提供了惯用且安全的 Julia 绑定

11 个版本

使用旧的 Rust 2015

0.2.5 2017 年 11 月 16 日
0.2.4 2017 年 11 月 15 日
0.1.4 2017 年 11 月 14 日

#185 in #scripting

每月下载 37

Zlib 许可证

170KB
3.5K SLoC

julia-rs

crates.io Docs

为 Rust 提供了惯用且安全的 Julia 绑定

[dependencies]
julia = "0.2"
...

CONTRIBUTING.md

REPL

作为一个示例应用程序,包含了一个用 100% 安全 Rust 编写的交互式 Julia REPL。查看其源代码在 src/main.rs,使用 cargo build 构建,并使用 cargo run 运行。有关帮助,请参阅 julia-rs -hcargo run -- -h

示例

有关更多示例,请参阅 examples

fn main() {
    use julia::api::{Julia, Value};

    let mut jl = Julia::new().unwrap();
    jl.eval_string("println(\"Hello, Julia!\")").unwrap();
    // Hello, Julia!

    let sqrt = jl.base().function("sqrt").unwrap();

    let boxed_x = Value::from(1337.0);
    let boxed_sqrt_x = sqrt.call1(&boxed_x).unwrap();

    let sqrt_x = f64::try_from(boxed_sqrt_x).unwrap();
    println!("{}", sqrt_x);
    // 36.565010597564445
}

待办事项

0.3 之前

  • 为所有剩余的重要函数提供安全包装。
    有关详细信息,请参阅 ROADMAP.md

0.4 之前

  • 修复所有在 ffi 边界处的内存泄漏和溢出。

0.5 之前

  • 标准化。
  • 测试。
  • 添加更多详细的示例。

0.6 之前

  • 标准化文档。
  • 彻底记录一切。

许可证

julia-rs 根据 zlib/libpng 许可证授权。有关详细信息,请参阅 LICENSEzlib.net/zlib_license.html

依赖关系

~1–10MB
~95K SLoC