Skip to main content

Rust-powered WRF post-processing — fixes CAPE, SRH, adds 65+ variables, 5-30x faster than wrf-python

Project description

wrf-rust

Rust-powered WRF post-processing with Python bindings. 83 diagnostic variables, built-in plotting, and parallel computation.

Install

pip install wrf-rust

Pre-built wheels for Python 3.10-3.13 on Linux, macOS, and Windows. No Rust toolchain, no system libraries, no conda required.

Usage

from wrf import WrfFile, getvar

f = WrfFile("wrfout_d01_2024-06-01_00:00:00")

# Basic fields
temp = getvar(f, "temp", units="degC")
slp  = getvar(f, "slp",  units="hPa")
wspd = getvar(f, "wspd", units="knots")

# CAPE with parcel selection
sbcape = getvar(f, "sbcape")
mlcape = getvar(f, "mlcape")
mucape = getvar(f, "mucape")
sb3cap = getvar(f, "sbcape", top_m=3000)           # 0-3 km CAPE

# Custom parcel
cape = getvar(f, "cape", parcel_pressure=850,
              parcel_temperature=20, parcel_dewpoint=15)

# SRH with Bunkers storm motion
srh1 = getvar(f, "srh1")                            # 0-1 km
srh3 = getvar(f, "srh3")                            # 0-3 km
srh  = getvar(f, "srh", depth_m=1500, storm_motion=(12, 8))

# Effective inflow layer
eff_srh  = getvar(f, "effective_srh")
eff_cape = getvar(f, "effective_cape")

# Severe composites
stp     = getvar(f, "stp")                           # fixed-layer
stp_eff = getvar(f, "stp", layer_type="effective")   # effective-layer
scp     = getvar(f, "scp")
ehi     = getvar(f, "ehi", depth_m=3000)             # 0-3 km EHI

# Configurable layers
shear = getvar(f, "bulk_shear", bottom_m=1000, top_m=6000)
mw    = getvar(f, "mean_wind",  bottom_m=0, top_m=6000)
lr    = getvar(f, "lapse_rate", bottom_p=700, top_p=500)
lr_v  = getvar(f, "lapse_rate", bottom_m=0, top_m=3000, use_virtual=True)

# Lake interpolation (removes 2m artifacts over water bodies)
cape = getvar(f, "sbcape", lake_interp=1000)         # interp lakes < 1000 km2

# All timesteps
slp_all = getvar(f, "slp", timeidx=None)             # shape (nt, ny, nx)

Also accepts netCDF4.Dataset directly:

from netCDF4 import Dataset
slp = getvar(Dataset("wrfout_d01..."), "slp")

Plotting

from wrf import plot_field, plot_wind, plot_skewt, panel

plot_field(f, "sbcape")                               # auto colormap + cartopy
plot_field(f, "sbcape", style="solar7")               # Solarpower07 colormaps
plot_wind(f)                                           # wind barbs
plot_skewt(f, point=(35.0, -97.5))                    # Skew-T with hodograph
panel(f, ["sbcape", "srh1", "stp", "shear_0_6km"])   # multi-panel

# Multi-timestep with consistent scale + GIF
from wrf.plot import render_timesteps
render_timesteps(f, "sbcape", timesteps=[0,1,2,3],
                 gif=True, fixed_scale=True)

CLI

python -m wrf info  wrfout_d01_2024-06-01_00:00:00
python -m wrf stats wrfout_d01_2024-06-01_00:00:00 sbcape slp temp
python -m wrf plot  wrfout_d01_2024-06-01_00:00:00 slp -o slp.png
python -m wrf panel wrfout_d01_2024-06-01_00:00:00 sbcape srh1 stp -o severe.png

Benchmark vs wrf-python

Tested on a 199x199x79 WRF grid. All values match exactly (rel_err=0.00).

Variable wrf-python wrf-rust Speedup
Temperature 0.268s 0.004s 76x
Potential temp 0.088s 0.003s 26x
Abs. vorticity 0.173s 0.015s 11x
Relative humidity 0.353s 0.097s 4x
Precipitable water 0.224s 0.077s 3x
Reflectivity 0.494s 0.234s 2x
SLP 0.517s 0.497s 1x
Wind destagger 0.089s 0.081s 1x

Plus 17 variables wrf-python doesn't have (STP, SCP, EHI, critical angle, shear, Bunkers, lapse rates, fire indices, effective inflow layer).

Variables

83 diagnostic variables. All support units= parameter.

Thermodynamics

temp tc theta theta_e theta_w tv twb td rh

Pressure & height

pressure slp height height_agl terrain geopt omega

Moisture

pw rh2m dp2m mixing_ratio specific_humidity

CAPE & convection

sbcape sbcin mlcape mlcin mucape mucin cape cin lcl lfc el effective_cape effective_inflow cape2d cape3d

All CAPE variables support top_m for truncated integration (e.g. top_m=3000 for 3CAPE). Generic cape/cin accept parcel_type or custom parcel (parcel_pressure, parcel_temperature, parcel_dewpoint).

Wind

ua va wa wspd wdir wspd10 wdir10 uvmet uvmet10

SRH & shear

srh1 srh3 srh effective_srh shear_0_1km shear_0_6km bulk_shear mean_wind bunkers_rm bunkers_lm mean_wind_0_6km

SRH uses Bunkers Internal Dynamics method. All accept storm_motion=(u,v).

Severe composites

stp stp_fixed stp_effective scp ehi critical_angle ship bri

STP supports layer_type="effective" for the 5-term formula with MLCIN.

Radar & cloud

dbz maxdbz ctt cloudfrac uhel

Vorticity

avo pvo

Lapse rates & levels

lapse_rate_700_500 lapse_rate_0_3km lapse_rate freezing_level wet_bulb_0

Generic lapse_rate accepts bottom_m/top_m or bottom_p/top_p, plus use_virtual=True.

Fire weather

fosberg haines hdw

Parameters

Parameter Description
units Output unit conversion (every variable)
parcel_type "sb", "ml", "mu" for CAPE
parcel_pressure/temperature/dewpoint Custom parcel (hPa, degC, degC)
top_m / bottom_m Layer bounds in m AGL
top_p / bottom_p Layer bounds in hPa
depth_m SRH/EHI depth (m AGL)
storm_motion Custom (u, v) in m/s
layer_type "fixed" or "effective" for STP
use_virtual Virtual temperature for lapse rates
lake_interp Interpolate 2m fields over lakes < N km2

Unit strings

Every registered variable supports units=. Raw WRF variables (RAINNC, T2, PSFC, etc.) also support conversion when their default unit is known. Case-insensitive.

Category Strings Example
Temperature K, degC, C, celsius, degF, F, fahrenheit units="degF"
Pressure Pa, hPa, mb, mbar, inHg units="hPa"
Speed m/s, knots, kt, kts, mph, kph, km/h units="knots"
Length/Height m, ft, km, mi, dam units="dam"
Depth mm, in, inches units="in"
Moisture kg/kg, g/kg units="g/kg"

Raw WRF variables

Any variable name not in the computed registry is read directly from the file. Common ones:

Variable Default unit Description
RAINNC mm Grid-scale accumulated precipitation
RAINC mm Convective accumulated precipitation
T2 K 2-m temperature (also available as t2)
PSFC Pa Surface pressure
TSK K Skin temperature
SST K Sea surface temperature
PBLH m PBL height
HFX W/m2 Sensible heat flux
LH W/m2 Latent heat flux
SWDOWN W/m2 Downwelling shortwave
GLW W/m2 Downwelling longwave
OLR W/m2 Outgoing longwave
UST m/s Friction velocity
SNOWH m Snow depth
LU_INDEX -- Land use category
U10 / V10 m/s 10-m wind components
# These all work:
rain = getvar(f, "RAINNC", units="in")     # accumulated precip in inches
tsk  = getvar(f, "TSK", units="degF")      # skin temp in Fahrenheit
pblh = getvar(f, "PBLH", units="ft")       # PBL height in feet

Building from source

Only needed for development. Users should pip install wrf-rust.

git clone https://github.com/FahrenheitResearch/wrf-rust.git
cd wrf-rust
pip install maturin
maturin develop --release

License

MIT

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

wrf_rust-0.2.13.tar.gz (4.6 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

wrf_rust-0.2.13-cp313-cp313-win_amd64.whl (595.2 kB view details)

Uploaded CPython 3.13Windows x86-64

wrf_rust-0.2.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (758.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

wrf_rust-0.2.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (747.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

wrf_rust-0.2.13-cp313-cp313-macosx_11_0_arm64.whl (674.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

wrf_rust-0.2.13-cp313-cp313-macosx_10_12_x86_64.whl (687.1 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

wrf_rust-0.2.13-cp312-cp312-win_amd64.whl (595.7 kB view details)

Uploaded CPython 3.12Windows x86-64

wrf_rust-0.2.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (759.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

wrf_rust-0.2.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (748.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

wrf_rust-0.2.13-cp312-cp312-macosx_11_0_arm64.whl (674.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

wrf_rust-0.2.13-cp312-cp312-macosx_10_12_x86_64.whl (687.3 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

wrf_rust-0.2.13-cp311-cp311-win_amd64.whl (595.5 kB view details)

Uploaded CPython 3.11Windows x86-64

wrf_rust-0.2.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (760.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

wrf_rust-0.2.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (747.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

wrf_rust-0.2.13-cp311-cp311-macosx_11_0_arm64.whl (678.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

wrf_rust-0.2.13-cp311-cp311-macosx_10_12_x86_64.whl (691.3 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

wrf_rust-0.2.13-cp310-cp310-win_amd64.whl (595.5 kB view details)

Uploaded CPython 3.10Windows x86-64

wrf_rust-0.2.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (760.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

wrf_rust-0.2.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (747.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

wrf_rust-0.2.13-cp310-cp310-macosx_11_0_arm64.whl (678.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

wrf_rust-0.2.13-cp310-cp310-macosx_10_12_x86_64.whl (690.7 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file wrf_rust-0.2.13.tar.gz.

File metadata

  • Download URL: wrf_rust-0.2.13.tar.gz
  • Upload date:
  • Size: 4.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.12.6

File hashes

Hashes for wrf_rust-0.2.13.tar.gz
Algorithm Hash digest
SHA256 366177d7fc72c91e3d9ddabd89559443d43c92b925b5675f4b8e7e3b9ec150da
MD5 593d97c0fa5e3cded05c5aa90bf354fc
BLAKE2b-256 e277df39f3d86bb67e3f3719ed99dcfa5048e696a8fcecbe25f38d27f61fbf60

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1247e1b3b68ae5e8a88ae3efd88022936e321bc357aff6da099e1e234d7ea5f0
MD5 14b6e000fadb79a46fea1f36670574a2
BLAKE2b-256 9b9f184fee58638dc9bd690f9e3d11d5d06535857c9bc929aedfcb61d1c8fd32

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 473313493e25cc2f66d86f4ece6f1020ce107868ddc26510421fdacac4fd0fdb
MD5 20045f7768d50d64151d229cb4f8abd3
BLAKE2b-256 20c4d3845a7db41c298fcf19b913eba0a455d2f39c797ab1ad1ecffbbea19182

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c273c8872263f6717d23c3843f8119f4eeb2ffd33ea0908a18085b95e5d9b6a6
MD5 001a3c31a22cfcfebf1bc7788fb000b3
BLAKE2b-256 0182a4f22b978b53146ff44a938031d235a9cfe0f4d3389e2ce17860fa6cd3fa

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11b4203f3b7939b386f955749ee52cfa252c7cce7d73f873b08dd5152df37fc0
MD5 213b66bcbaefe9138057bd196741971a
BLAKE2b-256 75b9b39cd1b51e43f8242c25a9639039288f99f6c6c9dca32e95ce4e925bd459

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b6cd9f8d5ffd498e9eba9ef329edd05f457cbf8a5ab41edfedd3d9570862767e
MD5 28ec3b029717854669e4f25828c51996
BLAKE2b-256 de5faad0dd5dceb94f129d5aae65c8ef564eb5e0b313d1236f032af0a2b74c8c

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 48f30b1a300cdf5e186bac45bbfecff7fdf5f45e3f2b3117c6134d78191061ea
MD5 fb067b27b60069409aac9ad866b2c456
BLAKE2b-256 6ba97a02df73cf349f1a09c61a74412d998969d67de3ea848fa43b91cfbd4528

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 880251a17ecd1a76aaf999bc13334c2692990949f88b67f52bfbb84d9a06d9f5
MD5 a8d64a67a04a5e9f96ba4efda3a6d3f6
BLAKE2b-256 0a3ceec9fd9b6385ff59a79388e29486864fd8b66180423e269f4f0d7804c555

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a84db5301e15c56452c869182a9047c0bbc00c123040722593a45c69a3b04a07
MD5 1c5362d1632dbf3294a566568bcf6d15
BLAKE2b-256 97816839c3c2ec25d0a10814ce12aa002f43a22e4125a2dacb502af1cb81964f

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 38049a349b7a063f18d81460794ea4de2f6ae207f815a7f6c890adc82848d477
MD5 ef027b887121db18ed16f605db2cd46b
BLAKE2b-256 657478b389a3d3fe13a22e80c66e6dd198ed6056ee99b62cea6a3194456a5428

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9a2d1496f2437a58a211c9e87b2907fbb0f1d1753e2d7a2324627dd8cb69cfe5
MD5 854630bdb40bf60d2e7187c080df50ba
BLAKE2b-256 05c5f697da8ded48cf764b6465a4967c8d9e524672e17b9e7b2586110f17a679

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cce8d9c1279058f3bfd6ddbe64b5d8663bb169ac6003a904b2eda55aee657b02
MD5 4c203cdae508615e42d26a97336aabe0
BLAKE2b-256 5d0623e82df2bf41f7dfc40e9211d1ac1a0ae79a2df34e69ef68c6e150dc4267

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 59588642c97c1cd4116306c3b91f7a3e58c78e79fc5109dbc8d6da9223a3c691
MD5 78299529c115419e35e6a9aa8c954ac8
BLAKE2b-256 c32baf7cf00bd6a28b41a66c275e74b8ffff5693172841b1e2aaf2ff8c2758f9

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9b7f5effc5ab3e1baa6c8bb6175e267b0652d76541c77455a2ef6618fa836089
MD5 f0f37466e28818cbc4b3b42c4c22411f
BLAKE2b-256 40251836a65329e2e539ca8c38f8bbdd8ff72cff220fd1ef2ce02660524726c6

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5c8e2741de4ac67f14a2fd41ef624972f5d64baa4028f7e54e48a97cffe82cb6
MD5 31cbe7683cffbe2f49102f2d64603e9f
BLAKE2b-256 154cd3cf3d1c6adb2e8154a1f7a4c98fe538772d4c5df016845dbeb9cfb43e7d

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cbf1141348c6840603452f1c83e20cf505a69ff6921fb537e55630c066e3c6bb
MD5 f3671de0e3db753ce123106e1832c2c3
BLAKE2b-256 903a388a0118761002fe36e19480fb27b386730c356b99378273a592e3a027db

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b00d5ccf7b6a76ceb2cddb8821415fc31588130da3f2939c75a9053d68c50ac1
MD5 ae642b04d3a3c7f841b561ffeb2d6270
BLAKE2b-256 4c0d11276b6be1faa4e0dd3ef335a0cc68f112b0d86cc5eb4fc372967d935d3a

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4dcc02a469e5f94c8b68f686e87e5573e91aeb8a94461a23f8c2dcd561ac047b
MD5 b6d1624ef4d086856f7140e825f6c10a
BLAKE2b-256 4dd8702ddfaf5b328787a102cb6fe0c7684ba873703e02054a19ac7b705d4e99

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b8bfde940e672ac4833dcf5831f4cb75691d076bb20a55eb8bd1e25d66d320fb
MD5 adf48e5a2274508aa5c191a8cae77f5b
BLAKE2b-256 7852b9be1758b3070d8d1ea01de487525052fa48ea8b01bc150ed8def3e3d1d4

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01358cda298e86009eca078b82bf805337e64691dca109ed1c1eb3a1e27f2f46
MD5 e97a6737b8066c7e34d19b4ba75b9e50
BLAKE2b-256 337a39560655359fa9ec25d6b7babdada15f344f8fc2909c68f5f8ddaddcd0d1

See more details on using hashes here.

File details

Details for the file wrf_rust-0.2.13-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wrf_rust-0.2.13-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 002c5f5c449af60d8acb91ddbffb5aa5cf9e0291104e5de595ea57994f4401db
MD5 58e9c3ccb628fda3bb5f6459df27c1c0
BLAKE2b-256 4bd4df9b5401c3f9225923d4914a6752f37135384c557183bc324aca51695f83

See more details on using hashes here.

Supported by

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