rhai-sci

Crates.iorhai-sci
lib.rsrhai-sci
version0.2.1
sourcesrc
created_at2022-07-10 19:56:34.140424
updated_at2023-11-24 15:59:04.128433
descriptionScientific computing in the Rhai scripting language
homepagehttps://github.com/rhaiscript/rhai-sci
repositoryhttps://github.com/rhaiscript/rhai-sci
max_upload_size
id623284
size188,415
Chris McComb (cmccomb)

documentation

https://docs.rs/rhai-sci

README

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.
Commit count: 285

cargo fmt