# julia-rs
[](https://crates.io/crates/julia)
[](https://docs.rs/julia)
Safe and idiomatic Julia bindings for Rust
```
[dependencies]
julia = "0.2"
...
```
**[CONTRIBUTING.md](/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](/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](/examples)** for more examples.
```rust
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](/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](/LICENSE)** or
[zlib.net/zlib\_license.html](http://www.zlib.net/zlib_license.html)
for details.