Releases: sebastienrousseau/vrd
Random (VRD) 🦀 v0.0.8
Release v0.0.8 - 2024-08-27
Random (VRD)
A Rust library for generating high-quality random numbers based on the Mersenne
Twister algorithm.
• Website • Documentation • Report Bug
• Request Feature • Contributing Guidelines
Overview
Random (VRD)
is a Rust library for generating high-quality random numbers based on the Mersenne Twister algorithm.
The Random
struct in this library provides a robust interface for generating a variety of random numbers using the Mersenne Twister algorithm. Additionally, the MersenneTwisterConfig
struct allows for advanced configuration of the algorithm.
Random (VRD)
generates pseudorandom integers uniformly distributed in 0..(2^32 - 1), starting from any odd seed in 0..(2^32 - 1). The index is incremented after each random number is generated. When the index reaches 624, the array is reinitialized and the index is reset to 0.
Changelog 📚
Merge pull request #66 from sebastienrousseau/feat/vrd
What's Changed
- build(deps): bump rlg from 0.0.3 to 0.0.4 by @dependabot in #43
- build(deps): bump serde from 1.0.200 to 1.0.201 by @dependabot in #45
- build(deps): bump dtt from 0.0.5 to 0.0.6 by @dependabot in #42
- feat(vrd): ✨ v0.0.8 by @sebastienrousseau in #66
Full Changelog: v0.0.7...v0.0.8
Random (VRD) 🦀 v0.0.7
Release v0.0.7 - 2024-05-04 - May the 4th Be With You !
Random (VRD) v0.0.7 🦀
A Rust library for generating high-quality random numbers based on the
Mersenne Twister algorithm.
Part of the Mini Functions family of libraries.
• Website • Documentation • Report Bug • Request Feature • Contributing Guidelines
Overview 📖
Random (VRD)
is a Rust library for generating high-quality random numbers based on the Mersenne Twister algorithm.
The Mersenne Twister is a pseudorandom number generator (PRNG) that is often used in computer simulations and games. It is a fast and reliable PRNG.
The Random (VRD) is used to generate random numbers using the Mersenne Twister algorithm. It generates pseudorandom integers uniformly distributed in 0..(2^32 - 1) starting from any odd seed in 0..(2^32 - 1).
The index is incremented after each random number is generated. When the index reaches 624, the array is reinitialized and the index is reset to 0.
Features ✨
- Create new random number generator and seed it with a value.
- Design for speed and efficiency in mind.
- Generate random 32-bit unsigned integer within a given range.
- Provide random numbers of different types, including booleans, bytes, chars, doubles, floats, integers, and unsigned integers.
- Mutate the state of the random number generator.
- Produce pseudo-random number sequences that are different from each other.
- Regulate the randomness of the generated numbers, including the seed value and the number of bits used.
- Select a random element from a slice of values.
Changelog 📚
This release includes several improvements, bug fixes, and new features to the vrd
crate. Here's a summary of the changes:
Features
- Added
MersenneTwisterConfig
struct along with corresponding tests. This struct provides configuration options for the Mersenne Twister RNG.
Bug Fixes
- Fixed CI jobs and added new ones to ensure better reliability of the CI pipeline.
- Resolved an issue where
gen
keyword conflicted with the 2024 edition, now usingr#gen
as a raw identifier.
Documentation
- Updated examples documentation and sorted them for better clarity.
- Improved
log_entry_async
function and updated unit tests accordingly. - Updated crate example code and documentation, along with the addition of new functions.
Tests
- Added new test case
test_new_custom_invalid_parameters
to ensure robustness of custom parameter handling. - Expanded test coverage for
random.rs
module to enhance reliability and correctness.
Style
- Fixed formatting issues and applied consistent code styling throughout the project.
Merge pull request #41 from sebastienrousseau/feat/vrd
What's Changed
- v0.0.7 by @sebastienrousseau in #41
Full Changelog: v0.0.6...v0.0.7
Random (VRD) v0.0.6
Release v0.0.6 - 2024-03-10
Random (VRD) v0.0.6 🦀
A Rust library for generating high-quality random numbers based on the Mersenne Twister algorithm.
Part of the Mini Functions family of libraries.
• Website • Documentation • Report Bug • Request Feature • Contributing Guidelines
Overview 📖
Random (VRD)
is a Rust library for generating high-quality random numbers
based on the Mersenne Twister algorithm.
The Random
struct in this library provides a robust interface for generating
a variety of random numbers using the Mersenne Twister algorithm. Additionally,
the MersenneTwisterConfig
struct allows for advanced configuration of the
algorithm.
The Random (VRD) is used to generate random numbers using the Mersenne Twister
algorithm. It generates pseudorandom integers uniformly distributed in
0..(2^32 - 1) starting from any odd seed in 0..(2^32 - 1).
The index is incremented after each random number is generated. When the index
reaches 624, the array is reinitialized and the index is reset to 0.
Features ✨
- Create new random number generator and seed it with a value
- Designed for speed and efficiency
- Generate random 32-bit unsigned integers within a given range
- Provide random numbers of different types, including booleans, bytes, chars,
doubles, floats, integers, and unsigned integers - Mutate the state of the random number generator
- Produce pseudo-random number sequences that are different from each other
- Regulate the randomness of the generated numbers, including the seed value
and the number of bits used - Select a random element from a slice of values
- Generate random numbers from various probability distributions, including
uniform, normal, exponential, and Poisson
Changelog 📚
ci(vrd): 🚑 various ci tweaks
What's Changed
- feat(vrd): ✨ Initial commit v0.0.6 by @sebastienrousseau in #29
- Merge pull request #12 from sebastienrousseau/feat/vrd
- Merge pull request #29 from sebastienrousseau/feat/vrd
- ci(vrd): 🚑 Replace unmaintained actions-rs GH actions
- ci(vrd): 🚑 dependencies updates
- ci(vrd): 🚑 run with --locked
- ci(vrd): 🚑 testing with nightly
- ci(vrd): 🚑 tokio dependency
- ci(vrd): 🚑 various ci tweaks
- docs(vrd): 📝 updated README.md
- feat(vrd): ✨ Add MersenneTwisterConfig struct with customizable parameters and validation
- feat(vrd): ✨ Initial commit v0.0.6
- feat(vrd): ✨ Separate the Random struct and its implementation into a dedicated module file
- feat(vrd): ✨ added new macros
- feat(vrd): ✨ added rand_poisson!() macro and relevant test
- feat(vrd): ✨ adding support for generating random numbers from different probability distributions, such as normal distribution, exponential distribution, and Poisson distribution
- feat(vrd): ✨ refactoring main.rs
- feat(vrd): ✨ serialize and deserialize the state of the Random struct using the serde crate
- fix(vrd): 🚑 Failed quality gates
- fix(vrd): 🚑 Failed quality gates and wrong domain url
- fix(vrd): 🚑 add cargo clean; cargo build
- fix(vrd): 🚑 add rustup update
- fix(vrd): 🚑 ci tweaks
- fix(vrd): 🚑 error: manual
RangeInclusive::contains
implementation - fix(vrd): 🚑 run cargo update
- fix(vrd): 🔥 remove lock
- style(vrd): 💄 code formatting
Full Changelog: v0.0.5...v0.0.6
Random (VRD) 🦀 v0.0.5
Release v0.0.5 - 2023-12-26
Random (VRD) v0.0.5 🦀
A Rust library for generating high-quality random numbers based on the
Mersenne Twister algorithm.
Part of the Mini Functions family of libraries.
• Website • Documentation • Report Bug • Request Feature • Contributing Guidelines
Overview 📖
Random (VRD)
is a Rust library for generating high-quality random numbers based on the Mersenne Twister algorithm.
The Mersenne Twister is a pseudorandom number generator (PRNG) that is often used in computer simulations and games. It is a fast and reliable PRNG.
The Random (VRD) is used to generate random numbers using the Mersenne Twister algorithm. It generates pseudorandom integers uniformly distributed in 0..(2^32 - 1) starting from any odd seed in 0..(2^32 - 1).
The index is incremented after each random number is generated. When the index reaches 624, the array is reinitialized and the index is reset to 0.
Features ✨
- Create new random number generator and seed it with a value.
- Design for speed and efficiency in mind.
- Generate random 32-bit unsigned integer within a given range.
- Provide random numbers of different types, including booleans, bytes, chars, doubles, floats, integers, and unsigned integers.
- Mutate the state of the random number generator.
- Produce pseudo-random number sequences that are different from each other.
- Regulate the randomness of the generated numbers, including the seed value and the number of bits used.
- Select a random element from a slice of values.
Changelog 📚
Merge pull request #12 from sebastienrousseau/feat/vrd
What's Changed
- feat/vrd by @sebastienrousseau in #11
- fix(vrd): 🚑 ci tweaks by @sebastienrousseau in #12
Full Changelog: v0.0.4...v0.0.5
Random (VRD) 🦀 v0.0.4
Release v0.0.4 - 2023-05-11
Random (VRD) v0.0.4 🦀
A Rust library for generating high-quality random numbers based on the
Mersenne Twister algorithm.
Part of the Mini Functions family of libraries.
• Website • Documentation • Report Bug • Request Feature • Contributing Guidelines
Overview 📖
Random (VRD)
is a Rust library for generating high-quality random numbers based on the Mersenne Twister algorithm.
The Mersenne Twister is a pseudorandom number generator (PRNG) that is often used in computer simulations and games. It is a fast and reliable PRNG.
The Random (VRD) is used to generate random numbers using the Mersenne Twister algorithm. It generates pseudorandom integers uniformly distributed in 0..(2^32 - 1) starting from any odd seed in 0..(2^32 - 1).
The index is incremented after each random number is generated. When the index reaches 624, the array is reinitialized and the index is reset to 0.
Features ✨
- Create new random number generator and seed it with a value.
- Design for speed and efficiency in mind.
- Generate random 32-bit unsigned integer within a given range.
- Provide random numbers of different types, including booleans, bytes, chars, doubles, floats, integers, and unsigned integers.
- Mutate the state of the random number generator.
- Produce pseudo-random number sequences that are different from each other.
- Regulate the randomness of the generated numbers, including the seed value and the number of bits used.
- Select a random element from a slice of values.
Changelog 📚
- Merge pull request #6 from sebastienrousseau/feat/vrd
- test(vrd): increasing unit test coverage and various fixes by @sebastienrousseau in #6
Full Changelog: v0.0.3...v0.0.4
Random (VRD) 🦀 v0.0.3
Release v0.0.3 - 2023-05-10
Random (VRD) v0.0.3 🦀
A Rust library for generating high-quality random numbers based on the
Mersenne Twister algorithm.
Part of the Mini Functions family of libraries.
• Website • Documentation • Report Bug • Request Feature • Contributing Guidelines
Overview 📖
Random (VRD)
is a Rust library for generating high-quality random numbers based on the Mersenne Twister algorithm.
The Mersenne Twister is a pseudorandom number generator (PRNG) that is often used in computer simulations and games. It is a fast and reliable PRNG.
The Random (VRD) is used to generate random numbers using the Mersenne Twister algorithm. It generates pseudorandom integers uniformly distributed in 0..(2^32 - 1) starting from any odd seed in 0..(2^32 - 1).
The index is incremented after each random number is generated. When the index reaches 624, the array is reinitialized and the index is reset to 0.
Features ✨
- Create new random number generator and seed it with a value.
- Design for speed and efficiency in mind.
- Generate random 32-bit unsigned integer within a given range.
- Provide random numbers of different types, including booleans, bytes, chars, doubles, floats, integers, and unsigned integers.
- Mutate the state of the random number generator.
- Produce pseudo-random number sequences that are different from each other.
- Regulate the randomness of the generated numbers, including the seed value and the number of bits used.
- Select a random element from a slice of values.
Changelog 📚
- Merge pull request #5 from sebastienrousseau/feat/vrd
- fix(vrd): invalid upload request: invalid value: string by @sebastienrousseau in #3
- feat(vrd): preparing v0.0.3 by @sebastienrousseau in #5
Full Changelog: v0.0.2...v0.0.3
Random (VRD) 🦀 v0.0.2
Release v0.0.2 - 2023-05-05
Random (VRD)
A Rust library for generating high-quality random numbers based on the
Mersenne Twister algorithm.
Part of the Mini Functions family of libraries.
• Website • Documentation • Report Bug
• Request Feature • Contributing Guidelines
Overview 📖
Random (VRD)
is a Rust library for generating high-quality random
numbers based on the Mersenne Twister algorithm.
The Mersenne Twister is a pseudorandom number generator (PRNG) that is
often used in computer simulations and games. It is a fast and reliable
PRNG.
The Random (VRD) is used to generate random numbers using the Mersenne
Twister algorithm. It generates pseudorandom integers uniformly
distributed in 0..(2^32 - 1) starting from any odd seed in 0..(2^32 - 1
).
The index is incremented after each random number is generated. When the
index reaches 624, the array is reinitialized and the index is reset to
0.
Features ✨
- Create new random number generator and seed it with a value.
- Design for speed and efficiency in mind.
- Generate random 32-bit unsigned integer within a given range.
- Provide random numbers of different types, including booleans, bytes, chars, doubles, floats, integers, and unsigned integers.
- Mutate the state of the random number generator.
- Produce pseudo-random number sequences that are different from each other.
- Regulate the randomness of the generated numbers, including the seed value and the number of bits used.
- Select a random element from a slice of values.
Getting Started 🚀
It takes just a few minutes to get up and running with Random (VRD)
.
Installation
To install Random (VRD)
, you need to have the Rust toolchain installed
on your machine. You can install the Rust toolchain by following the
instructions on the Rust website.
Once you have the Rust toolchain installed, you can install
Random (VRD)
using the following command:
cargo install vrd
You can then run the help command to see the available options:
vrd --help
Requirements
The minimum supported Rust toolchain version is currently Rust
1.69.0 or later (stable). It is recommended that you install the
latest stable version of Rust.
Platform support
Random (VRD)
is supported and tested on the following platforms:
Tier 1 platforms 🏆
Operating System | Target | Description | |
---|---|---|---|
✅ | Linux | aarch64-unknown-linux-gnu | 64-bit Linux systems on ARM architecture |
✅ | Linux | i686-unknown-linux-gnu | 32-bit Linux (kernel 3.2+, glibc 2.17+) |
✅ | Linux | x86_64-unknown-linux-gnu | 64-bit Linux (kernel 2.6.32+, glibc 2.11+) |
✅ | macOS | x86_64-apple-darwin | 64-bit macOS (10.7 Lion or later) |
✅ | Windows | i686-pc-windows-gnu | 32-bit Windows (7 or later) |
✅ | Windows | i686-pc-windows-msvc | 32-bit Windows (7 or later) |
✅ | Windows | x86_64-pc-windows-gnu | 64-bit Windows (7 or later) |
✅ | Windows | x86_64-pc-windows-msvc | 64-bit Windows (7 or later) |
Tier 2 platforms 🥈
Operating System | Target | Description | |
---|---|---|---|
✅ | Linux | aarch64-unknown-linux-musl | 64-bit Linux systems on ARM architecture |
✅ | Linux | arm-unknown-linux-gnueabi | ARMv6 Linux (kernel 3.2, glibc 2.17) |
✅ | Linux | arm-unknown-linux-gnueabihf | ARMv7 Linux, hardfloat (kernel 3.2, glibc 2.17) |
✅ | Linux | armv7-unknown-linux-gnueabihf | ARMv7 Linux, hardfloat (kernel 3.2, glibc 2.17) |
✅ | Linux | mips-unknown-linux-gnu | MIPS Linux (kernel 2.6.32+, glibc 2.11+) |
✅ | Linux | mips64-unknown-linux-gnuabi64 | MIPS64 Linux (kernel 2.6.32+, glibc 2.11+) |
✅ | Linux | mips64el-unknown-linux-gnuabi64 | MIPS64 Linux (kernel 2.6.32+, glibc 2.11+) |
✅ | Linux | mipsel-unknown-linux-gnu | MIPS Linux (kernel 2.6.32+, glibc 2.11+) |
✅ | macOS | aarch64-apple-darwin | 64-bit macOS (10.7 Lion or later) |
✅ | Windows | aarch64-pc-windows-msvc | 64-bit Windows (7 or later) |
The GitHub Actions shows the platforms in which the Random (VRD)
library tests are run.
Documentation
ℹ️ Info: Please check out our website for more information.
You can find our documentation on docs.rs, lib.rs and
crates.io.
Usage 📖
To use the Random (VRD)
library in your project, add the following to
your Cargo.toml
file:
[dependencies]
vrd = "0.0.2"
Add the following to your main.rs
file:
extern crate vrd;
use vrd::*;
then you can use the functions in your application code.
Examples
To get started with Random (VRD)
, you can use the examples provided in
the examples
directory of the project.
To run the examples, clone the repository and run the following command
in your terminal from the project root directory.
cargo run --example vrd
Semantic Versioning Policy 🚥
For transparency into our release cycle and in striving to maintain
backward compatibility, Random (VRD)
follows semantic versioning.
License 📝
The project is licensed under the terms of both the MIT license and the
Apache License (Version 2.0).
Contribution 🤝
We welcome all people who want to contribute. Please see the
contributing instructions for more information.
Contributions in any form (issues, pull requests, etc.) to this project
must adhere to the Rust's Code of Conduct.
Unless you explicitly state otherwise, any contribution intentionally
submitted for inclusion in the work by you, as defined in the
Apache-2.0 license, shall be dual licensed as above, without any
additional terms or conditions.
Acknowledgements 💙
A big thank you to all the awesome contributors of vrd for their
help and support.
A special thank you goes to the Rust Reddit community for
providing a lot of useful suggestions on how to improve this project.
Changelog 📚
What's Changed
- build(deps): bump actions/upload-artifact from 2 to 3 by @dependabot in #1
- fix(vrd): updated test_rand_bool_macro by @sebastienrousseau in #2
New Contributors
- @dependabot made their first contribution in #1
Full Changelog: https://github.com/sebastienrousseau/vrd/commits/v0.0.2