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

MIT/Apache

125KB
2K SLoC

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.

Install

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" }

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

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.

Dependencies

~4–10MB
~191K SLoC