8 releases

0.2.1 Nov 24, 2023
0.2.0 May 14, 2023
0.1.9 Feb 18, 2023
0.1.7 Aug 5, 2022
0.1.6 Jul 17, 2022

#256 in Algorithms

Used in 2 crates



Github CI Crates.io docs.rs

About 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:

rhai-sci = "0.2.1"

To use the bleeding edge instead, add this:

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:

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

// Now run your code
let value = engine.eval::<INT>("argmin([43, 42, -500])").unwrap();


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.


~191K SLoC