Ixia is a cryptographically secure RNG library. It mainly merges secrets
'
security with random
's versatility, but also adds some of its own
functions, such as ixia.passphrase()
,
ixia.shuffled()
,
or ixia.universe_rand()
.
All random values are generated using urandom
(or BCryptGenRandom
on Windows).
Ixia is available on PyPI and can be installed with pip, or any other Python package manager:
$ pip install ixia
(Some systems may require you to use pip3
, python -m pip
, or py -m pip
instead.)
Ixia documentation is available at https://trag1c.github.io/ixia/.
While supporting Python 3.9+, Ixia is based on the Python 3.12 implementation
of the random
module. The following changes have been made to the module
since Python 3.9:
gauss
,expovariate
andnormalvariate
have default parameter valuesbinomialvariate
was added
Additionally, Ixia executes 3.9+ deprecations, thus:
ixia.rand_range
doesn't convert non-integer types to equivalent integersixia.sample
doesn't supportset
as a sequence typeixia.shuffle
doesn't support therandom
parameter
Contributions are welcome!
Please open an issue before submitting a pull request (doesn't apply to minor changes like typos).
To get started:
- Clone the project
git clone https://github.com/trag1c/ixia.git
just install
Note
If you don't want to install just
, simply look up the recipes
in the project's justfile
.
- After you're done, use the following
just
recipes for checking your changes:
just check # pytest, mypy, ruff
just coverage # pytest (with coverage), interrogate (docstring coverage)
ixia
is licensed under the MIT License.
© trag1c, 2022–2024