Safe and idiomatic Julia bindings for Rust
[dependencies]
julia = "0.2"
...
As an example application, an interactive Julia REPL written in 100% safe Rust
is included. See its source at src/main.rs, build with
cargo build
and run with cargo run
. See julia-rs -h
or cargo run -- -h
for help.
See examples for more 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
}
- Safe wrappers for all remaining important functions.
See ROADMAP.md for details.
- Fix any and all memory leaks and overflows at the ffi boundary.
- Standardize.
- Test.
- Add more thorough examples.
- Standardize documentation.
- Document everything thouroughly.
julia-rs is licensed under the zlib/libpng license. See LICENSE or zlib.net/zlib_license.html for details.