Skip to content

Safe and idiomatic Julia bindings for Rust

License

Notifications You must be signed in to change notification settings

ChristiaanRiscure/julia-rs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

julia-rs

crates.io Docs

Safe and idiomatic Julia bindings for Rust

[dependencies]
julia = "0.2"
...

CONTRIBUTING.md

REPL

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.

Example

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
}

TODO

pre 0.3

  • Safe wrappers for all remaining important functions.
    See ROADMAP.md for details.

pre 0.4

  • Fix any and all memory leaks and overflows at the ffi boundary.

pre 0.5

  • Standardize.
  • Test.
  • Add more thorough examples.

pre 0.6

  • Standardize documentation.
  • Document everything thouroughly.

License

julia-rs is licensed under the zlib/libpng license. See LICENSE or zlib.net/zlib_license.html for details.

About

Safe and idiomatic Julia bindings for Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 54.9%
  • Rust 38.8%
  • C++ 6.3%