Skip to main content

Random generator supporting multiple PRNGs

Project description

RandomGen

This package contains additional bit generators for NumPy's Generator and an ExtendedGenerator exposing methods not in Generator.

Continuous Integration

Build Status Appveyor Build Status Build Status FreeBSD Status on Cirrus

Coverage

codecov

Latest Release

PyPI version Anacnoda Cloud

License

NCSA License BSD License DOI

This is a library and generic interface for alternative random generators in Python and NumPy.

New Features

The the development documentation for the latest features, or the stable documentation for the latest released features.

WARNINGS

Changes in v1.24

Generator and RandomState have been removed.

Changes from 1.18 to 1.19

Generator and RandomState have been officially deprecated in 1.19, and will warn with a FutureWarning about their removal. They will also receive virtually no maintenance. It is now time to move to NumPy's np.random.Generator which has features not in randomstate.Generator and is maintained more actively.

A few distributions that are not present in np.random.Generator have been moved to randomstate.ExtendedGenerator:

  • multivariate_normal: which supports broadcasting
  • uintegers: fast 32 and 64-bit uniform integers
  • complex_normal: scalar complex normals

There are no plans to remove any of the bit generators, e.g., AESCounter, ThreeFry, or PCG64.

Changes from 1.16 to 1.18

There are many changes between v1.16.x and v1.18.x. These reflect API decision taken in conjunction with NumPy in preparation of the core of randomgen being used as the preferred random number generator in NumPy. These all issue DeprecationWarnings except for BasicRNG.generator which raises NotImplementedError. The C-API has also changed to reflect the preferred naming the underlying Pseudo-RNGs, which are now known as bit generators (or BigGenerators).

Future Plans

  • Add some distributions that are not supported in NumPy. Ongoing
  • Add any interesting bit generators I come across. Recent additions include the DXSM and CM-DXSM variants of PCG64 and the LXM generator.

Included Pseudo Random Number Generators

This module includes a number of alternative random number generators in addition to the MT19937 that is included in NumPy. The RNGs include:

  • Cryptographic cipher-based random number generator based on AES, ChaCha20, HC128 and Speck128.
  • MT19937, the NumPy rng
  • dSFMT a SSE2-aware version of the MT19937 generator that is especially fast at generating doubles
  • xoroshiro128+, xorshift1024*φ, xoshiro256**, and xoshiro512**
  • PCG64
  • ThreeFry and Philox from Random123
  • Other cryptographic-based generators: AESCounter, SPECK128, ChaCha, and HC128.
  • Hardware (non-reproducible) random number generator on AMD64 using RDRAND.
  • Chaotic PRNGS: Small-Fast Chaotic (SFC64) and Jenkin's Small-Fast (JSF).

Status

  • Builds and passes all tests on:
    • Linux 32/64 bit, Python 3.7, 3.8, 3.9, 3.10
    • Linux (ARM/ARM64), Python 3.8
    • OSX 64-bit, Python 3.9
    • Windows 32/64 bit, Python 3.7, 3.8, 3.9, 3.10
    • FreeBSD 64-bit

Version

The package version matches the latest version of NumPy when the package is released.

Documentation

Documentation for the latest release is available on my GitHub pages. Documentation for the latest commit (unreleased) is available under devel.

Requirements

Building requires:

  • Python (3.6, 3.7, 3.8, 3.9, 3.10)
  • NumPy (1.17+)
  • Cython (0.29+)
  • tempita (0.5+), if not provided by Cython

Testing requires pytest (6+).

Note: it might work with other versions but only tested with these versions.

Development and Testing

All development has been on 64-bit Linux, and it is regularly tested on Travis-CI (Linux-AMD64, Linux-PPC-LE, Linus-S390X, and OSX), Appveyor (Windows 32/64), Cirrus (FreeBSD) and Drone.io (ARM/ARM64 Linux).

Tests are in place for all RNGs. The MT19937 is tested against NumPy's implementation for identical results. It also passes NumPy's test suite where still relevant.

Installing

Either install from PyPi using

python -m pip install randomgen

or, if you want the latest version,

python -m pip install git+https://github.com/bashtage/randomgen.git

or from a cloned repo,

python -m pip install .

If you use conda, you can install using conda forge

conda install -c conda-forge randomgen

SSE2

dSFTM makes use of SSE2 by default. If you have a very old computer or are building on non-x86, you can install using:

export RANDOMGEN_NO_SSE2=1
python -m pip install . 

Windows

Either use a binary installer, or if building from scratch, use Python 3.6/3.7 with Visual Studio 2015 Build Toolx.

License

Dual: BSD 3-Clause and NCSA, plus sub licenses for components.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

randomgen-1.23.1.tar.gz (3.9 MB view details)

Uploaded Source

Built Distributions

randomgen-1.23.1-cp311-cp311-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.11 Windows x86-64

randomgen-1.23.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

randomgen-1.23.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

randomgen-1.23.1-cp311-cp311-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

randomgen-1.23.1-cp311-cp311-macosx_10_9_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

randomgen-1.23.1-cp310-cp310-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.10 Windows x86-64

randomgen-1.23.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

randomgen-1.23.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

randomgen-1.23.1-cp310-cp310-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

randomgen-1.23.1-cp310-cp310-macosx_10_9_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

randomgen-1.23.1-cp39-cp39-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.9 Windows x86-64

randomgen-1.23.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

randomgen-1.23.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

randomgen-1.23.1-cp39-cp39-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

randomgen-1.23.1-cp39-cp39-macosx_10_9_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

randomgen-1.23.1-cp38-cp38-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.8 Windows x86-64

randomgen-1.23.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

randomgen-1.23.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

randomgen-1.23.1-cp38-cp38-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

randomgen-1.23.1-cp38-cp38-macosx_10_9_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

randomgen-1.23.1-cp37-cp37m-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.7m Windows x86-64

randomgen-1.23.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

randomgen-1.23.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

randomgen-1.23.1-cp37-cp37m-macosx_10_9_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file randomgen-1.23.1.tar.gz.

File metadata

  • Download URL: randomgen-1.23.1.tar.gz
  • Upload date:
  • Size: 3.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.11.3 pkginfo/1.7.1 requests/2.28.0 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.9.12

File hashes

Hashes for randomgen-1.23.1.tar.gz
Algorithm Hash digest
SHA256 826319e8fcf4629a460af0c8649df65c55d88bc384ccde41f7485e92a2aec17c
MD5 2c78b3950eb1145dc4925194659780fc
BLAKE2b-256 aa44345e79cc06086b952fd619f9388ab16dd66d50bc05480408773fa6b07b12

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 69f1d1067b4db8018f8feacddd21b8d126b3348d9036775967546f734571f01c
MD5 46b4b079802e6b1691eb40a4afb10bad
BLAKE2b-256 77afc12dd10e6ef201a70cd9333e65894cda6362f9fb318140c548aa2683058c

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6033539814d37c4358676b7905907ed3217cd2658f18bc91d7325d752db171ca
MD5 1d15786dd24d5fb007f4169a48f9189d
BLAKE2b-256 cb45d44dbe2f7308203661bb2250d5f4413f8c8edbdbb0bf65fa3aa39a7949f7

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2abd49150ee21e0b0031944fa9b30c428f34f04bd498a092a546933b7ae8e203
MD5 26f6dcca0ec5eedf275348c520054e5f
BLAKE2b-256 3ffe4d9458b87686b7c14815eec082389da9cfe06286f759025232fe13287d97

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aac8e0da8335a839259cd845ad7cbe8c3da42bc4ddb38fc21860cbb6943bb953
MD5 0377c9904863fa903746ab8cbbaaa5b9
BLAKE2b-256 be51bff9cd872ac204d2cd67bedd2d9069690ad8d7a39ce904a0bbf58ec1abd0

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 62ae5dca458897d84b46649b5cb02b8b84059276490a6213b10179a156c7ef80
MD5 e6f513263646a6a56159ed80cb267ea6
BLAKE2b-256 1408ec3119d617e4779714dac0fe0a626f642ca8fbecef6ad1182bb43bd5f873

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 92a21abfbeb204b3c646f98907f34410cf88c047f235765178133e893419c7e1
MD5 f1451aeda16edd34b3667f3638b1b625
BLAKE2b-256 cbdc713e2df075d73d796f8616804f720a52c2897280dfaeebea58183aa66c10

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f439b96556883e97bd19f33df788f955202344c23f294776363d333f99e7a33
MD5 332cdcfb2ae2aea1d809f4c663e49525
BLAKE2b-256 7c8ccbbcc6b638f4a891a59c623c4d59a72d22695ff95ceb1178c5a6618776c1

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2ba85bf299645ccf3806bd3f4f2388bcd72cae980f834dd44e677b29578b809a
MD5 53750e05b03485b936391cb32db3d264
BLAKE2b-256 ce5520d6e9f40e8fd851880a7b2020d877bddc2db849246ed6c1e83ffb1e938b

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 abada3ace815a21e5439577008181fd999d757c5b26e9fa07408f14e1aac6524
MD5 26b6252402357607c59248cb0106f79f
BLAKE2b-256 7a12d13fecf71a580e9a1528d42f917b6a987050b1008a97c65478a39976caeb

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 563233e8271caf7788f55a35cea2f5266b1ea5e7f665ac3ef2ee6d7bad3e7c01
MD5 b9ac24870ebb39098659161f9717d293
BLAKE2b-256 a8de837e34e8b113cb70f4b6884f5eb7176d17a45732b32f6bdffee6228127ab

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 914e8c4fc3786c30a5090bd627022a72b1fec25ec5c458fd58ce8edd74531039
MD5 af9b0cb5bd2e41cafa8c08f336e79c12
BLAKE2b-256 d3f535613a9485af953fb58d58ad918cf0b7b0c9ac6f074ca902b134acb7cf1f

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8f88ec346f29dbb4d82272ce1cbeca71f7f9380da5e8b191ef2e4c9a0730018b
MD5 a50e26588c2e0cbd6fd312e71c510155
BLAKE2b-256 4f3c5b5aa927c8970aa84b716636c6dc6e3c7383241894bc9b9e6c3e52d7e668

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3c36af60a2010294802941f94911dea224d7b9c0acfeda068a8d2649d54ceb86
MD5 107108b3a7d769f649ab0686292fc93a
BLAKE2b-256 4e500965f44f1ed4de9d8a67d753696b9d65a74b57966c6ebdb8bd8e6a1a6139

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1060516488fcff78ece16e88b7ac50ef364efb17c44bb1153e74ac943a4d90e8
MD5 20c5c0c9b7330144562ead643f26dd71
BLAKE2b-256 9461b16d98d45f369e33a37708adb628044ae4bfd239d528b7723f18f478bf38

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0b8d5c16d8ed5e0a0dfd4c4d920ddd0148a4485dee00b3ac79b2d895ddd4cabc
MD5 454a9f367357e35d3beec1cc65f9849f
BLAKE2b-256 eb1748f6a1eb4178027d95b08d818e7fae4eddfc941138ddd94e6860340edfc2

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8c391747178bf9548ddfbfd4c0d1d81b54bcbcaeb24b558ee3780a4874dda4d8
MD5 cc94127d21dab2537d463429df65de23
BLAKE2b-256 b4d7aac353879ba59d8be2d717a166aae350b737a6fbaf798832a2678d133dbe

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f440f28aa23f0b042128a163d2a41e07569cb9253a30ed1a11862490a0d944b9
MD5 7c17f26bbe3d16f0f0ed12c754d86ae8
BLAKE2b-256 4bd8dcd3793adc9c5ac376886aca156395714cd7c38b3f9507939999265b4cd9

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9b2e6b462f4a7e5d44513121fc13356d80f7edbfad0675fbc06bd986297cc6fb
MD5 66db7bfa12763cbc603164981923aa18
BLAKE2b-256 9ebb945621be2ffb64f83b98935b4cfdec8fa6238681f690cd23a5aa3a409cd0

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e82f912c21d259f1af1e982bf9b4a41ecb2d55aac98e10a48b069f3b304288b
MD5 0182ad597d8a110177ce1dcc1ab705be
BLAKE2b-256 2e6a865734dec6798e1a70463fae8ad5e1f3255f383a1b66ac77ddbbf562a211

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 59b84814dacab77d0b05fdb4e817057a2e86c2c957eadca50f5fac10aa2b0000
MD5 e14743f2ceead874e5147d45d60f610d
BLAKE2b-256 41370df83b49c814732a723e2640e33d4d35430a339142ad4428046bdbbfeb78

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 3c5f5c9afa771d02c42abde8c6144c9fde6c65a4e79ce9eaa975d6089fe6fd0a
MD5 129dff79c5d59c3146d41b9988228b62
BLAKE2b-256 b3b3205cc0375240f911cb3ed8b6beff02e9fc5cc90cdd289664f41d4ee663ad

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9568698f4f2d04602bd62b567aba9eb128d3a8fd13d056195a3772cb5a09d0e5
MD5 5d9daa6ab95bfcdedfb59260309f5580
BLAKE2b-256 f1d7004faf0f254f6c49a32e1750570846956dca7ae4a1d3010248499be7e6c8

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5f9c0cd0806285d7886d7074dede9a7bdf1be7da2cf7e62326f0204a0bd1fecf
MD5 9122c566193faeeb0ff1fb271f783dd0
BLAKE2b-256 4e155412d670adf8f415ca2f554411db009d1758d0b7b8d9091fe0d8172faac4

See more details on using hashes here.

File details

Details for the file randomgen-1.23.1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for randomgen-1.23.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 100301980cfaa5a3f8fd4b787d4ad2e4f87599a566e5f9454238c5e78073c71d
MD5 f495b0aceed432d8c37c120288381283
BLAKE2b-256 c31ec7ff52d5ffa4f9a8ce4a673daa210a178f839c687d04bd19635722d88716

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page