rhai-sci
About 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.
Install
To use the latest released version of rhai-sci
, add this to your Cargo.toml
:
rhai-sci = "0.1.7"
To use the bleeding edge instead, add this:
rhai-sci = { git = "https://github.com/cmccomb/rhai-sci" }
Usage
Using this crate is pretty simple! If you just want to evaluate a single line of Rhai
, then you only need:
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:
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.register_global_module(SciPackage::new().as_shared_module());
// Now run your code
let value = engine.eval::<INT>("argmin([43, 42, -500])").unwrap();
Features
The build size with --no-default-features
is approximately 1.8 MB.
Feature | Included by default? | Size added to release build | Description |
---|---|---|---|
metadata |
No | 0.3 MB | Enables exporting function metadata and is necessary for running doc-tests on Rhai examples. |
io |
Yes | 0.5 MB | Enables the read_matrix function but pulls in several additional dependencies (polars , url , temp-file , csv-sniffer , minreq ). Also actives the nalgebra feature. |
nalgebra |
Yes | 0.3 MB | Enables several functions (regress , inv , mtimes , horzcat , vertcat , and repmat ) but brings in the nalgebra and linregress libraries. |
rand |
Yes | 0.1 MB | Enables the rand function for generating random FLOAT values and random matrices, but brings in the rand library. |