7 releases

0.1.6 Oct 25, 2023
0.1.5 Mar 11, 2023
0.1.4 Jul 16, 2022
0.1.3 Jun 1, 2022
0.1.1 Nov 20, 2021

#869 in Embedded development

Download history 342/week @ 2025-12-17 662/week @ 2025-12-24 602/week @ 2025-12-31 979/week @ 2026-01-07 1280/week @ 2026-01-14 828/week @ 2026-01-21 1072/week @ 2026-01-28 879/week @ 2026-02-04 374/week @ 2026-02-11 558/week @ 2026-02-18 559/week @ 2026-02-25 579/week @ 2026-03-04 900/week @ 2026-03-11 894/week @ 2026-03-18 337/week @ 2026-03-25 427/week @ 2026-04-01

2,633 downloads per month
Used in 17 crates (4 directly)

MIT/Apache

23KB
279 lines

rhai-rand - Package to Generate Random Numbers

License crates.io crates.io

Rhai logo

rhai-rand is a Rhai package to provide random number generation using the rand crate.

Rhai is an embedded scripting language and evaluation engine for Rust that gives a safe and easy way to add scripting to any application.

Usage

Cargo.toml

[dependencies]
rhai-rand = "0.1"

Rhai script

// Create random boolean
let decision = rand_bool();

if decision {
    // Create random number
    let random_value = rand();
    print(`Random number = ${random_value}`);
} else {
    print("Fixed number = 42");
}

// Create array
let a = [1, 2, 3, 4, 5];

// Shuffle it!
a.shuffle();

// Now the array is shuffled randomly!
print(a);

// Sample a random value from the array
print(a.sample());

// Or sample multiple values
print(a.sample(3));

Rust source

// packages::Package implements `as_shared_module`
// which we need to register the RandomPackage
use rhai::{Engine, packages::Package};
use rhai_rand::RandomPackage;

// Create Rhai scripting engine
let mut engine = Engine::new();

// Create random number package and add the package into the engine
engine.register_global_module(RandomPackage::new().as_shared_module());

// Print 10 random numbers, each of which between 0-99!
for _ in 0..10 {
    let value = engine.eval::<i64>("(rand() % 100).abs()")?;

    println!("Random number = {}", value);
}

API and Features

See the online documentation.

Dependencies

~5–7MB
~124K SLoC