Skip to main content

High-performance Python bindings for the Mongoose embedded networking library

Project description

cymongoose

Python bindings for the Mongoose embedded networking library, built with Cython.

Overview

cymongoose provides Pythonic access to Mongoose, a lightweight embedded networking library written in C. It supports HTTP servers, WebSocket, TCP/UDP sockets, and more through a clean, event-driven API.

Documentation | API Reference | Examples

Features

  • HTTP/HTTPS, WebSocket/WSS, MQTT/MQTTS -- full protocol support with TLS
  • TCP/UDP, DNS, SNTP -- raw sockets and network utilities
  • Timers -- periodic callbacks with thread-safe cancellation
  • Event-driven -- non-blocking I/O with a simple event loop
  • GIL-free -- 24 methods release the GIL for true parallel execution
  • High performance -- 60k+ req/sec (6-37x faster than pure Python frameworks)
  • Asyncio support -- AsyncManager for asyncio integration
  • Type hints -- full .pyi stubs and py.typed marker

Installation

pip install cymongoose

From source:

git clone https://github.com/shakfu/cymongoose
cd cymongoose
make

Requires Python 3.10+, CMake 3.15+, Cython 3.0+, and a C compiler.

Quick Start

from cymongoose import Manager, MG_EV_HTTP_MSG

def handler(conn, event, data):
    if event == MG_EV_HTTP_MSG:
        conn.reply(200, "Hello, World!")

mgr = Manager(handler)
mgr.listen("http://127.0.0.1:8000")
mgr.run()

More examples:

# Serve static files
def handler(conn, event, data):
    if event == MG_EV_HTTP_MSG:
        conn.serve_dir(data, root_dir="./public")

# WebSocket echo
from cymongoose import MG_EV_WS_MSG

def handler(conn, event, data):
    if event == MG_EV_HTTP_MSG:
        conn.ws_upgrade(data)
    elif event == MG_EV_WS_MSG:
        conn.ws_send(data.text)

# Per-listener handlers on different ports
mgr = Manager()
mgr.listen("http://127.0.0.1:8080", handler=api_handler)
mgr.listen("http://127.0.0.1:8090", handler=web_handler)
mgr.run()

See the quickstart guide and examples for more.

Testing

make test           # Run all tests (335 tests)
make test-asan      # Run with AddressSanitizer (memory safety)
make qa             # Run tests + lint + type check + format

Development

make build          # Rebuild the Cython extension
make clean          # Remove build artifacts
make docs-serve     # Serve documentation locally
make help           # Show all available targets

License

Licensed under GPL-2.0-or-later, matching the Mongoose C library license. See LICENSE for details.

For proprietary use, a commercial Mongoose license from Cesanta is required.

Links

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

cymongoose-0.1.13.tar.gz (576.1 kB view details)

Uploaded Source

Built Distributions

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

cymongoose-0.1.13-cp314-cp314-win_amd64.whl (234.4 kB view details)

Uploaded CPython 3.14Windows x86-64

cymongoose-0.1.13-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (293.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

cymongoose-0.1.13-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (285.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

cymongoose-0.1.13-cp314-cp314-macosx_11_0_arm64.whl (234.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

cymongoose-0.1.13-cp314-cp314-macosx_10_15_x86_64.whl (268.3 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

cymongoose-0.1.13-cp313-cp313-win_amd64.whl (227.9 kB view details)

Uploaded CPython 3.13Windows x86-64

cymongoose-0.1.13-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (292.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

cymongoose-0.1.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (282.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

cymongoose-0.1.13-cp313-cp313-macosx_11_0_arm64.whl (233.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cymongoose-0.1.13-cp313-cp313-macosx_10_13_x86_64.whl (267.9 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

cymongoose-0.1.13-cp312-cp312-win_amd64.whl (228.6 kB view details)

Uploaded CPython 3.12Windows x86-64

cymongoose-0.1.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (292.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

cymongoose-0.1.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (282.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

cymongoose-0.1.13-cp312-cp312-macosx_11_0_arm64.whl (234.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cymongoose-0.1.13-cp312-cp312-macosx_10_13_x86_64.whl (268.2 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

cymongoose-0.1.13-cp311-cp311-win_amd64.whl (232.7 kB view details)

Uploaded CPython 3.11Windows x86-64

cymongoose-0.1.13-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (297.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

cymongoose-0.1.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (287.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

cymongoose-0.1.13-cp311-cp311-macosx_11_0_arm64.whl (236.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cymongoose-0.1.13-cp311-cp311-macosx_10_9_x86_64.whl (265.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

cymongoose-0.1.13-cp310-cp310-win_amd64.whl (232.3 kB view details)

Uploaded CPython 3.10Windows x86-64

cymongoose-0.1.13-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (297.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

cymongoose-0.1.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (287.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

cymongoose-0.1.13-cp310-cp310-macosx_11_0_arm64.whl (236.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cymongoose-0.1.13-cp310-cp310-macosx_10_9_x86_64.whl (265.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file cymongoose-0.1.13.tar.gz.

File metadata

  • Download URL: cymongoose-0.1.13.tar.gz
  • Upload date:
  • Size: 576.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cymongoose-0.1.13.tar.gz
Algorithm Hash digest
SHA256 9d29900f02c482fe3f5d65f4f6ec2958d09c911e31a1449acfa11d391c9a49b3
MD5 886c9339ebcaff9c0f442081a46b909a
BLAKE2b-256 b1082c576754359b9cc448a9bf33147941899103f314b7fe0c53b7fca6128f19

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 5bf277853805914c4dd8e209fe3e7e7c561bfcd947b9aecb022ed7b0acf1d1ee
MD5 edd5b3aa57bfd5b586c5968ccd9eb389
BLAKE2b-256 391e583c7c4423737021b63e054cf5ca4c74ad017cdd56901289d7d4aa54615a

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e23037e79b6d1cf1d333814dd4cd31a7b72b4b9a3a0b55bf2c248ba415dc2e82
MD5 4db3170cb5bc91f2d25e7994fe70c986
BLAKE2b-256 309727a6a1aba1f87dcd967d413998f1154b72412317a738f5415c200b9abf81

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f97f12067c2183c8930a2aad1680006e3d22306331aaa2fcd5e536c0af8c3130
MD5 dfe1f13ab0d02fd5928c2d6ef640f082
BLAKE2b-256 1b8dd8747d6752a9f8c6e558d5faac24217a40cbb40c75c659f7758e896250a0

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7af721209cb49c29d38c47165591a7166d943a94a8b7541cd1003600bc0425fb
MD5 8b6ddac7115350e407f217c5f90f3df8
BLAKE2b-256 e4717ca0ec657c6847a067ac3ee2e040852690367e666410b173a6ea14a9f847

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6b6bcb13d46459fcee2e4527da74cc4d94e2488b8cee2a60ef168b3f90bf4cca
MD5 588bf8656dc403c3635bc35201fe57a1
BLAKE2b-256 6362576a704cda964549264dc36bc51d657f71c802fc57c87de1fb12a666c146

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f4c3ce20824641ff1169373727cd800655a8b92b01851c35f498562c50920576
MD5 3675a895e242c9d310115424ba358d0b
BLAKE2b-256 60ecc63d25f4fdf1e8a3ca7a1b3071f9a8b6e8d7ff837aab15bc0d97d0edb616

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9088d2c1cc86cde3e4ca0a6184ffcb0d63acc8e6a408a44fa4bb64a250cadf26
MD5 f6cf4dc4f17e2ae0f7e5c75118ace20a
BLAKE2b-256 231e66417adad20ac212a1bb2ecfbfdfef95dc227eaf9d443f4fbc10b64d4807

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 83d8b0b77a8828a95796bb0617128c535c94b4d2c43db88cc2becc4c941ea519
MD5 fa17243e250db6d181524d3e3811983f
BLAKE2b-256 0bc60b02127caf0844988f0e5467ff035a61374066b70ca595dcb896e90c2092

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 82cc7f84ab20c36667d5639d42e464eff8351675347206b9fda2c07c1ec9c203
MD5 4ab76078fbfc9e681a59b82c6e876480
BLAKE2b-256 72e6fa0c6446cd11eadf4c5863dfe68b824ef2a9baf13f2f3b43e765f4bd6116

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 14a48f7fe0dcf6d8147efaf38da38ae965d229d9dbc377255ae5ef6c5f208cca
MD5 89b1f7b6a7293b926ad649a3e22a7806
BLAKE2b-256 974fd299f8533e9d7e64858b2ceaa1c13ca4f6232431366dc7868980d5ad30bf

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a9edeed5927aab87504afdbd1b4c7b223833e354a1654cb9aa220baff8b0cef9
MD5 65f478b5d0eb0ba7aa298b039e415fc5
BLAKE2b-256 eb879fc564c21f189922b5d72253562b94eb1eeac93288f8ef8721c0ec2b2aab

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b14c575251aad9de35fcef15e20b60bdfc2710874eb2890bb0ae95fab018c2b3
MD5 adbbac7f6cc6b3b4d0c5e4d465529913
BLAKE2b-256 36394c7e4eeb56d85446465c5fe641ecabed1ed4e80b823e9f5c9e4d6d287c97

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 655571dadadd36523d2a24eb8687e0cf350dd1362ef9c7305b84e4f433ce68f2
MD5 f8b0f7bfba8f0190fb72ad9ec8cc7123
BLAKE2b-256 d2e8d838cc62a12f0c068ad0f58e486d3e1fa085b72e58425eb054608c4e2479

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71882cfe07f394a469c41e1602c20f351de803fc6b6657a052a622169382cc4e
MD5 94c8b14f53dfc7067c2e828654bc9e49
BLAKE2b-256 d07cd697cc750211a74ad17d5fc313c3bf3966aff299d68e2dcbbd986e1de42a

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7844f2dfc59f783b0aec62ab15d96071d30bcc997428a40bd0ae617188c73261
MD5 5bb64c663a96389ffe25e46ab36b1aa3
BLAKE2b-256 b107ba542cb45585687878c142da126f3574f4185c4eb0ec8837fa557ac019e4

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8c4242e79af9dfc55db9d69c499909e3a25b2651581d05321630d558a8cfe8db
MD5 08c3ed268c3b98d30981a9191ff8d54f
BLAKE2b-256 778e12c27d55c8117ddf713e0a5bfe3999f62d6629e79e16630d64451c425ef9

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d422fbbf479891663cd54997635e3dc38bfce18efd1d38aeaf1f2ef4cc4acfeb
MD5 9732c8eed0a0fe14fafcb90972d4d51a
BLAKE2b-256 aa840f30150d3570982c710c337f879bcf7c7c19b1dd0cabe89d3f244aeb7064

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6a80545f6134f322b57e52e5caf79b246ab3e172e979b74ca833140e4f99bde0
MD5 d91444f206fc2188747f4cf74b3c8870
BLAKE2b-256 0d2086efd52a8e179f4032a5c13dbe2ce545b6858491d7f1020e3a288647335f

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5c4d16ea8c31f04e177b8821c04a73c0aada87a7ac9b56e46d0be66684141a2
MD5 d9449a52ffa0b01e213c26653920b07a
BLAKE2b-256 8d279de9a6b92fea6bc99238c5abb4e3686c3985b548f516ba0aae931449d1d8

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 59eab4ae5f4f9ee883d4ba7fb4f624d9f6b2f1047dbafd34124c1518d6234792
MD5 15bd395ffd0730c236f5a7e908502d04
BLAKE2b-256 8728eb20260329a5c435de82eb4ebbf331c7a3903297fc8e7777dd05bf9a1920

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bbe4198e6ee7d35826e9012d6e9a7016fc6aafa3c0e0638f1f555dcbdb05fc06
MD5 7c504afb6f27ffe8ddab660d2bac4193
BLAKE2b-256 af42d236f05483ecc7222eee6c2e124e6b145318706f67f130efb143e479afbf

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1a6b038acd33bb9666bc3895c0a6af3a7c010271c9281aa063956195dfbc78eb
MD5 57f004e29ae3465a814f2dbd21c8d81a
BLAKE2b-256 4c90288a7efd9b24479900c99be663f76537d32d4335b43dc25f372605c22fe8

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 db544e54b1cfa444550da7783dcfcc67e0c4332b0564d751fcabf6179928e06e
MD5 d7de371b47483dbcf353ad35b100bdfe
BLAKE2b-256 bd246afeb348b4b7a0b2ce08961990a686b40131371ee046d2ec8c2b6fa2e309

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fc47f14065f43c1ef18870f85bdbe341326360e8524c552dbd9a6bb5f5b5090b
MD5 28d3780a7c46a68ac7667c1a18669332
BLAKE2b-256 5dfb1023b43756b01607d07772c0c6a88844e4fe9b8cb574db57c1753f921e3f

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.13-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.13-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 07bc0691217fd93d57bc4666c8cafbeb87d4f243e34a7a6ad6fb7d98165aed37
MD5 f3576818b4caaddaa6787e66301a2f0c
BLAKE2b-256 f4c2fcd82ac7c2318d9d3a003b993a97d4ee60a24b5f89e050ba90043a941ad5

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