rhai-sci
This crate provides some basic scientific computing utilities for the Rhai
scripting language, inspired by languages
like MATLAB, Octave, and R. For a complete API reference, check the docs.
To use the latest released version of rhai-sci
, add this to your Cargo.toml
:
toml
rhai-sci = "0.1.9"
To use the bleeding edge instead, add this:
toml
rhai-sci = { git = "https://github.com/cmccomb/rhai-sci" }
Using this crate is pretty simple! If you just want to evaluate a single line of Rhai
, then you only need:
rust
use rhai::INT;
use rhai_sci::eval;
let result = eval::<INT>("argmin([43, 42, -500])").unwrap();
If you need to use rhai-sci
as part of a persistent Rhai
scripting engine, then do this instead:
```rust
use rhai::{Engine, packages::Package, INT};
use rhai_sci::SciPackage;
// Create a new Rhai engine let mut engine = Engine::new();
// Add the rhai-sci package to the new engine engine.registerglobalmodule(SciPackage::new().assharedmodule());
// Now run your code
let value = engine.eval::
| Feature | Default | Description |
|-------------|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| metadata
| Disabled | Enables exporting function metadata and is necessary for running doc-tests on Rhai examples. |
| io
| Enabled | Enables the read_matrix
function but pulls in several additional dependencies (polars
, url
, temp-file
, csv-sniffer
, minreq
). |
| nalgebra
| Enabled | Enables several functions (regress
, inv
, mtimes
, horzcat
, vertcat
, repmat
, svd
, hessenberg
, and qr
) but brings in the nalgebra
and linregress
crates. |
| rand
| Enabled | Enables the rand
function for generating random FLOAT values and random matrices, but brings in the rand
crate. |
| smartcore
| Enabled | Enables the eigs
, train
, and predict
functions, but brings in the smartcore
and bincode
crates. |