Skip to main content

Crate php_mt

Crate php_mt 

Source
Expand description

§PhpMt

A Rust implementation of PHP’s MT19937-based random number generator.

This implementation is bit-for-bit compatible with PHP 7.1+ for:

  • mt_srand(seed)
  • mt_rand()
  • mt_rand(min, max)

Notes:

  • In PHP 7.1+, rand() is an alias of mt_rand().
  • In PHP 7.1+, srand(seed) is an alias of mt_srand(seed).
  • This implementation matches the Zend Engine MT19937 algorithm.

Implementation details:

  • 624-element MT19937 state array
  • Exact Zend tempering constants
  • mt_rand() returns 31-bit output (next_u32() >> 1)
  • mt_rand(min, max) uses integer rejection sampling (no float scaling)

This crate is intended for deterministic cross-language compatibility and reproducible test vectors.

Not cryptographically secure.

Structs§

PhpMt