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.

Features

Core Protocols

  • HTTP/HTTPS: Server and client with TLS support, chunked transfer encoding, SSE
  • WebSocket/WSS: Full WebSocket support with text/binary frames over TLS
  • MQTT/MQTTS: Publish/subscribe messaging with QoS support
  • TCP/UDP: Raw socket support with custom protocols
  • DNS: Asynchronous hostname resolution
  • SNTP: Network time synchronization

Advanced Features

  • TLS/SSL: Certificate-based encryption with custom CA support
  • Timers: Periodic callbacks with precise timing control
  • Flow Control: Backpressure handling and buffer management
  • Authentication: HTTP Basic Auth, MQTT credentials
  • JSON Parsing: Built-in JSON extraction utilities
  • URL Encoding: Safe URL parameter encoding

Technical

  • Event-driven: Non-blocking I/O with a simple event loop
  • Low overhead: Thin Cython wrapper over native C library
  • Python 3.9+: Modern Python with type hints
  • Comprehensive: 210 tests, 100% pass rate
  • Production Examples: 17 complete examples from Mongoose tutorials
  • TLS Support: Built-in TLS/SSL encryption (MG_TLS_BUILTIN)
  • GIL Optimization: 21 methods release GIL for true parallel execution
  • High Performance: 60k+ req/sec (6-37x faster than pure Python frameworks)

Installation

From pypi

pip install cymongoose

From source

# Clone the repository
git clone https://github.com/shakfu/cymongoose
cd cymongoose
make

Also type make help gives you a list of commands

Requirements

  • Python 3.9 or higher
  • Cython 3.0+
  • C compiler (gcc, clang, or MSVC)

Quick Start

Simple HTTP Server

import signal
from cymongoose import Manager, MG_EV_HTTP_MSG

shutdown_requested = False

def signal_handler(sig, frame):
    global shutdown_requested
    shutdown_requested = True

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

signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)

mgr = Manager(handler)
mgr.listen("http://0.0.0.0:8000", http=True)

print("Server running on http://localhost:8000. Press Ctrl+C to stop.")
try:
    while not shutdown_requested:
        mgr.poll(100)
    print("Shutting down...")
finally:
    mgr.close()

Serve Static Files

import signal
from cymongoose import Manager, MG_EV_HTTP_MSG

shutdown_requested = False

def signal_handler(sig, frame):
    global shutdown_requested
    shutdown_requested = True

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

signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)

mgr = Manager(handler)
mgr.listen("http://0.0.0.0:8000", http=True)

try:
    while not shutdown_requested:
        mgr.poll(100)
finally:
    mgr.close()

WebSocket Echo Server

import signal
from cymongoose import Manager, MG_EV_HTTP_MSG, MG_EV_WS_MSG

shutdown_requested = False

def signal_handler(sig, frame):
    global shutdown_requested
    shutdown_requested = True

def handler(conn, event, data):
    if event == MG_EV_HTTP_MSG:
        conn.ws_upgrade(data)  # Upgrade HTTP to WebSocket
    elif event == MG_EV_WS_MSG:
        conn.ws_send(data.text)  # Echo back

signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)

mgr = Manager(handler)
mgr.listen("http://0.0.0.0:8000", http=True)

try:
    while not shutdown_requested:
        mgr.poll(100)
finally:
    mgr.close()

Examples

The project includes several complete examples translated from Mongoose C tutorials:

Core HTTP/WebSocket

  • HTTP Server - Static files, TLS, multipart uploads, REST API
  • HTTP Client - GET/POST, TLS, timeouts, custom headers
  • WebSocket Server - Echo, mixed HTTP+WS, client tracking
  • WebSocket Broadcasting - Timer-based broadcasts to multiple clients

MQTT

  • MQTT Client - Pub/sub, QoS, reconnection, keepalive
  • MQTT Broker - Message routing, topic matching, subscriptions

Specialized HTTP

  • HTTP Streaming - Chunked transfer encoding, large responses
  • HTTP File Upload - Disk streaming, multipart forms
  • RESTful Server - JSON API, CRUD operations, routing
  • Server-Sent Events - Real-time push updates

Network Protocols

  • SNTP Client - Network time sync over UDP
  • DNS Client - Async hostname resolution
  • TCP Echo Server - Raw TCP sockets, custom protocols
  • UDP Echo Server - Connectionless datagrams

Advanced Features

  • TLS HTTPS Server - Certificate-based encryption, SNI
  • HTTP Proxy Client - CONNECT method tunneling
  • Multi-threaded Server - Background workers, Manager.wakeup()

All examples include:

  • Production-ready patterns (signal handlers, graceful shutdown)
  • Command-line arguments for flexibility
  • Comprehensive test coverage (42 tests)
  • Detailed documentation with C tutorial references

See tests/examples/README.md for usage instructions and tests/examples/ for source code.

API Reference

Manager

The main event loop manager.

mgr = Manager(handler=None, enable_wakeup=False)

Core Methods:

  • poll(timeout_ms=0) - Run one iteration of the event loop
  • listen(url, handler=None) - Create a listening socket
  • connect(url, handler=None) - Create an outbound connection
  • close() - Free resources

Protocol-Specific:

  • http_listen(url, handler=None) - Create HTTP server
  • http_connect(url, handler=None) - Create HTTP client
  • ws_connect(url, handler=None) - WebSocket client
  • mqtt_connect(url, handler=None, client_id, username, password, ...) - MQTT client
  • mqtt_listen(url, handler=None) - MQTT broker
  • sntp_connect(url, handler=None) - SNTP time client
  • timer_add(milliseconds, callback, repeat=False, run_now=False) - Add periodic timer
  • wakeup(connection_id, data) - Wake connection from another thread

Connection

Represents a network connection.

# Send data
conn.send(data)                    # Raw bytes
conn.reply(status, body, headers)  # HTTP response
conn.ws_upgrade(message)           # Upgrade HTTP to WebSocket
conn.ws_send(data, op)             # WebSocket frame

# HTTP
conn.serve_dir(message, root_dir)  # Serve static files
conn.serve_file(message, path)     # Serve single file
conn.http_chunk(data)              # Send chunked data
conn.http_sse(event_type, data)    # Server-Sent Events
conn.http_basic_auth(user, pass_)  # HTTP Basic Auth

# MQTT
conn.mqtt_pub(topic, message, ..)  # Publish an MQTT message
conn.mqtt_sub(topic, qos=0)        # Subscribe to an MQTT topic
conn.mqtt_ping()                   # Send MQTT ping
conn.mqtt_pong()                   # Send MQTT pong
conn.mqtt_disconnect()             # Send MQTT disconnect message

# SNTP
conn.sntp_request()                # Request time

# TLS
conn.tls_init(TlsOpts(...))        # Initialize TLS
conn.tls_free()                    # Free TLS resources

# DNS
conn.resolve(url)                  # Async DNS lookup
conn.resolve_cancel()              # Cancel DNS lookup

# Connection management
conn.drain()                       # Graceful close (flush buffer first)
conn.close()                       # Immediate close
conn.error(message)                # Trigger error event

# Properties
conn.is_listening                  # Listener socket?
conn.is_websocket                  # WebSocket connection?
conn.is_tls                        # TLS/SSL enabled?
conn.is_udp                        # UDP socket?
conn.is_readable                   # Data available?
conn.is_writable                   # Can write?
conn.is_full                       # Buffer full? (backpressure)
conn.is_draining                   # Draining before close?
conn.id                            # Connection ID
conn.userdata                      # Custom Python object
conn.local_addr                    # (ip, port) tuple
conn.remote_addr                   # (ip, port) tuple

# Buffer access
conn.recv_len                      # Bytes in receive buffer
conn.send_len                      # Bytes in send buffer
conn.recv_size                     # Receive buffer capacity
conn.send_size                     # Send buffer capacity
conn.recv_data(n)                  # Read from receive buffer
conn.send_data(n)                  # Read from send buffer

TlsOpts

TLS/SSL configuration.

opts = TlsOpts(
    ca=None,                       # CA certificate (PEM)
    cert=None,                     # Server/client certificate (PEM)
    key=None,                      # Private key (PEM)
    name=None,                     # Server name (SNI)
    skip_verification=False        # Skip cert validation (dev only!)
)

HttpMessage

HTTP request/response view.

msg.method                         # "GET", "POST", etc.
msg.uri                            # "/path"
msg.query                          # "?key=value"
msg.proto                          # "HTTP/1.1"
msg.body_text                      # Body as string
msg.body_bytes                     # Body as bytes
msg.header("Name")                 # Get header value
msg.headers()                      # All headers as list of tuples
msg.query_var("key")               # Extract query parameter
msg.status()                       # HTTP status code
msg.header_var(header, var)        # Extract variable from header

WsMessage

WebSocket frame data.

ws.text                            # Frame data as string
ws.data                            # Frame data as bytes
ws.flags                           # WebSocket flags

MqttMessage

MQTT message data.

mqtt.topic                         # Topic as string
mqtt.data                          # Payload as bytes
mqtt.id                            # Message ID
mqtt.cmd                           # MQTT command
mqtt.qos                           # Quality of Service (0-2)
mqtt.ack                           # Acknowledgment flag

Event Constants

# Core events
MG_EV_ERROR                        # Error occurred
MG_EV_OPEN                         # Connection created
MG_EV_POLL                         # Poll iteration
MG_EV_RESOLVE                      # DNS resolution complete
MG_EV_CONNECT                      # Outbound connection established
MG_EV_ACCEPT                       # Inbound connection accepted
MG_EV_TLS_HS                       # TLS handshake complete
MG_EV_READ                         # Data available to read
MG_EV_WRITE                        # Data written
MG_EV_CLOSE                        # Connection closed

# Protocol events
MG_EV_HTTP_MSG                     # HTTP message received
MG_EV_WS_OPEN                      # WebSocket handshake complete
MG_EV_WS_MSG                       # WebSocket message received
MG_EV_MQTT_CMD                     # MQTT command received
MG_EV_MQTT_MSG                     # MQTT message received
MG_EV_MQTT_OPEN                    # MQTT connection established
MG_EV_SNTP_TIME                    # SNTP time received
MG_EV_WAKEUP                       # Wakeup notification

Utility Functions

# JSON parsing
json_get(json_str, "$.path")           # Get JSON value
json_get_num(json_str, "$.number")     # Get as number
json_get_bool(json_str, "$.bool")      # Get as boolean
json_get_long(json_str, "$.int", default=0)  # Get as long
json_get_str(json_str, "$.string")     # Get as string

# URL encoding
url_encode(data)                       # Encode for URL

# Multipart forms
http_parse_multipart(body, offset=0)   # Parse multipart data

Testing

The project includes a comprehensive test suite with 210 tests (100% passing):

Test Coverage by Feature

Core Functionality (168 tests):

  • HTTP/HTTPS: Server, client, headers, query params, chunked encoding, SSE (40 tests)
  • WebSocket: Handshake, text/binary frames, opcodes (10 tests)
  • MQTT: Connect, publish, subscribe, ping/pong, disconnect (11 tests)
  • TLS/SSL: Configuration, initialization, properties (12 tests)
  • Timers: Single-shot, repeating, callbacks, cleanup (10 tests)
  • DNS: Resolution, cancellation (4 tests)
  • SNTP: Time requests, format validation (5 tests)
  • JSON: Parsing, type conversion, nested access (9 tests)
  • Buffer Access: Direct buffer inspection, flow control (10 tests)
  • Connection State: Lifecycle, properties, events (15+ tests)
  • Security: HTTP Basic Auth, TLS properties (6 tests)
  • Utilities: URL encoding, multipart forms, wakeup (10 tests)
  • Flow Control: Drain, backpressure (4 tests)

Example Tests:

  • HTTP/WebSocket examples
  • MQTT examples
  • Specialized HTTP examples
  • Network protocols
  • Advanced features
  • README example validation
  • WebSocket broadcast examples

Running Tests

make test                              # Run all tests (210 tests)
PYTHONPATH=src pytest tests/ -v        # Verbose output
pytest tests/test_http_server.py -v    # Run specific file
pytest tests/ -k "test_timer" -v       # Run matching tests
pytest tests/examples/ -v              # Run example tests only

Test Infrastructure

  • Dynamic port allocation prevents conflicts
  • Background polling threads for async operations
  • Proper cleanup in finally blocks
  • 100% pass rate (210/210 tests passing)
  • WebSocket tests require websocket-client (uv add --dev websocket-client)

Development

Build

make build          # Rebuild the Cython extension

# or just

make

# Force rebuild
uv sync --reinstall-package cymongoose

Test

make test                    # Run all tests
pytest tests/ -v             # Verbose output
pytest tests/test_http_server.py -v  # Run specific test file

Clean

make clean          # Remove build artifacts

Architecture

  • Cython bindings (src/cymongoose/_mongoose.pyx): Python wrapper classes
  • C declarations (src/cymongoose/mongoose.pxd): Cython interface to Mongoose C API
  • Vendored Mongoose (thirdparty/mongoose/): Embedded C library

Performance Optimization

The wrapper achieves C-level performance through aggressive optimization:

GIL Release (nogil):

  • 21 critical methods release GIL for true parallel execution
  • Network: send(), close(), resolve(), resolve_cancel()
  • WebSocket: ws_send(), ws_upgrade()
  • MQTT: mqtt_pub(), mqtt_sub(), mqtt_ping(), mqtt_pong(), mqtt_disconnect()
  • HTTP: reply(), serve_dir(), serve_file(), http_chunk(), http_sse()
  • TLS: tls_init(), tls_free()
  • Utilities: sntp_request(), http_basic_auth(), error()
  • Properties: local_addr, remote_addr
  • Thread-safe: Manager.wakeup()

TLS Compatibility:

  • TLS and nogil work together safely
  • Mongoose's built-in TLS is event-loop based (no internal locks)
  • Both optimizations enabled by default

Benchmark Results (Apple Silicon, wrk -t4 -c100 -d10s):

  • cymongoose: 60,973 req/sec (1.67ms latency)
  • aiohttp: 42,452 req/sec (1.44x slower)
  • FastAPI/uvicorn: 9,989 req/sec (6.1x slower)
  • Flask: 1,627 req/sec (37.5x slower)

See docs/nogil_optimization_summary.md and benchmarks/RESULTS.md for details.

License

MIT

Links

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.7.tar.gz (490.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.7-cp313-cp313-win_amd64.whl (200.9 kB view details)

Uploaded CPython 3.13Windows x86-64

cymongoose-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (277.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

cymongoose-0.1.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (269.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

cymongoose-0.1.7-cp313-cp313-macosx_11_0_arm64.whl (237.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cymongoose-0.1.7-cp313-cp313-macosx_10_13_x86_64.whl (267.6 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

cymongoose-0.1.7-cp312-cp312-win_amd64.whl (201.0 kB view details)

Uploaded CPython 3.12Windows x86-64

cymongoose-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (276.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

cymongoose-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (270.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

cymongoose-0.1.7-cp312-cp312-macosx_11_0_arm64.whl (236.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cymongoose-0.1.7-cp312-cp312-macosx_10_13_x86_64.whl (265.6 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

cymongoose-0.1.7-cp311-cp311-win_amd64.whl (199.8 kB view details)

Uploaded CPython 3.11Windows x86-64

cymongoose-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (275.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

cymongoose-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (270.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

cymongoose-0.1.7-cp311-cp311-macosx_11_0_arm64.whl (230.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cymongoose-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl (257.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

cymongoose-0.1.7-cp310-cp310-win_amd64.whl (199.6 kB view details)

Uploaded CPython 3.10Windows x86-64

cymongoose-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (280.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

cymongoose-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (273.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

cymongoose-0.1.7-cp310-cp310-macosx_11_0_arm64.whl (233.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cymongoose-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl (258.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

cymongoose-0.1.7-cp39-cp39-win_amd64.whl (199.9 kB view details)

Uploaded CPython 3.9Windows x86-64

cymongoose-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (280.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

cymongoose-0.1.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (274.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

cymongoose-0.1.7-cp39-cp39-macosx_11_0_arm64.whl (233.8 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

cymongoose-0.1.7-cp39-cp39-macosx_10_9_x86_64.whl (259.3 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: cymongoose-0.1.7.tar.gz
  • Upload date:
  • Size: 490.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.7.tar.gz
Algorithm Hash digest
SHA256 e91c48707b4bd08286a345eed2e8586ee434b5ef800d2b13c166b5a8fd2d83b3
MD5 06f90d518a98c4377d724303ac0b92ae
BLAKE2b-256 cc7eb5024b2f379735d1aa046262879895342914bdd83217d513014a5d7ed96e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cymongoose-0.1.7-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 200.9 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cymongoose-0.1.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 01dcf59efc5f5122eb26e863aaa20833841918a093ca4381efb8fd5c2a2b9153
MD5 92517a0153b895701cd7438e96144ad6
BLAKE2b-256 7c5bd965a0a6cf7d0f7348e712ff0e47d3f06ca955e3b5ddc07294007e393395

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40e344dbe2d601af0872f46ab03ea1a2a3b5d5fd819116cf7a3a032a2ef98443
MD5 c466ab0b98fdd0f3cf28bd168f432f43
BLAKE2b-256 a84e3d8f977ba4f843a7058255d26c900b0ae48841f0abdb400183a9966d6344

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d063e3aa6dd5757230bad0f2bf24291bea2894ddcb77c303a29a79ad9a653669
MD5 d247ffd8bd2a2865e2e3d7f59ee17046
BLAKE2b-256 9d68b10bc24982b1753d6392e710c537fea8a9f60f6d5ac925474560731bca4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2887ad0e79e92657f57508ea4d671e3f2be61d0b6f51d73a22311d741acab224
MD5 2189cd489e83ae635ef7e8a583faf378
BLAKE2b-256 8a1e6ab67cbdbb20bd48cfc3b4410efc6a2c4b622a9c52e69170280c68e8dac7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 97c9cbf7b4fd3a43df27f057185b905ee58d1dc1dbe23bbb8aed781a763b98b3
MD5 47c5d9cc76429f7088ec4c1d03fa0e62
BLAKE2b-256 c17df5f431cb78b99d046f67da033bfe9f333c414c34b75a06278c57de254ecb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cymongoose-0.1.7-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 201.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cymongoose-0.1.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 47580b7bb90fb4f921d3355e62facea17bca597bee251e803146f3a6c99e07f2
MD5 997c434bd381daa4d9fb5a3a2f5e5451
BLAKE2b-256 7d597a9eb0c451cad4f65b003bdbdd4b90c17ba99944157b0121d6efad435efa

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 98301aafd3e8d42ccae98d7d902abdcd62f128a1e5500f67886f30f4c8032aaa
MD5 3acf944b7e19ba528df69302d08dc9c8
BLAKE2b-256 2360e2af2d364653afb49172815bb9c6f52455c0839c39f25b73248abd5b5704

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 12e71839ee5710530a35b7bf66a7b98324520a8c5466b5af3843634352134f2c
MD5 e1e75e063236ab03bd5654f8d0aa1a22
BLAKE2b-256 6f585ba804758bfc0bdf7b6ff1c08624a2394777c52f5a76f82abd33a6c658f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f69d71e5a1d3f2b2aedb86ea63b4c4273353d29c1380e1aac73137de5efaba8
MD5 5662d86ed7b90e9ade771bec961c59eb
BLAKE2b-256 9a1b458ad3e055342c14d0fc0f4ac13b7e8026e378f0d7293ad413b2e02d9559

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e8c21d4abd4791a61a749abddd99a16a3a353c5b382fe936bd20f5faeebe6957
MD5 7d44c516385849ce7601f11c95849268
BLAKE2b-256 13fb364ccd3dbf9daf89194f2132201f0f1831b332fc0ab3ee1db5cd2915c1ea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cymongoose-0.1.7-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 199.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cymongoose-0.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 42a12ac428d442a08603e956401844042b2401f327b05f45d09321c03aeac6a7
MD5 99bea7644d3cb60322e4dcba2654a989
BLAKE2b-256 cc2d2550cd242b3c9170b310e16df4ce59dd653249f335ae46dcfdea55757296

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1f776c79727bc8da55694cb71471face1a37fb8fb3bf40dfb1cedfb1a870c71e
MD5 8832eb059c3629119825f25d00909dff
BLAKE2b-256 2b5b0f993ca412b4ac3ceeca5a446b8eb2fcc14eeb05bb61e0b9746c995d5e72

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 feb8521aff773baf354e9cf45b51cad2115a8ca8145c84e40c58193c0b1da53d
MD5 9c9300e5b83cccba037adf913e85bd87
BLAKE2b-256 f950e09949b7990f3e459039d9d37d0906b6cd3416f369366f7510b4f3cbc2a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 61251ebabf4b9a85c97f46fb84ccbe64edd4da00245ff4216552734e1bd57560
MD5 98a1dac09bcd342cac20bebacb3c927e
BLAKE2b-256 06c404de9c227b826059794aeb0ad01e95eab924511f50e577f250571719608c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e8d1b25b60ac942e43c7be10790106e36d97e8eb71d0dd00928140a5ea8d3c3f
MD5 36b52006ea101cd6145144c30f3e0885
BLAKE2b-256 8d60cf1a373230b5a51c9c164922624ff4dea9615b544fd6494fc6d52b4f0a76

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cymongoose-0.1.7-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 199.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cymongoose-0.1.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 306c1f1f51c6f40e501623a609649f70e364304f8de1ae06876e646cd33a2f30
MD5 8ddd2639f0c71a30a456bce9098ea7a8
BLAKE2b-256 2b9a23a85c8ea5b10ccd369a28d0c3fb6639bdca88b8db12d2334cc925398e84

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ca4099576d3a7afc110c04c950e99c1a601b0918eedbbdd2a8d1a7e56ca4fa1
MD5 b0a002c138aed35389dd11ddb4d469cd
BLAKE2b-256 0a7360fafe91d0ad5ccfe35b1608c96def3463e0b48ba20badb77ac0caa99873

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f66e4b58b1534ca41376a090ee714e468bd653d594ca526b8a3c0b9db2365fc7
MD5 0ca200922738bfe47fb06b3a79dde758
BLAKE2b-256 3a5cbdcc563fc0916ff00318949c27c740751314b80254e44418004bfa164fbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55822802be96302e2ae8958af9c89f4b684f0ed36adc983b8e9520e5be957f78
MD5 1f1e695d8d3bf07b6768a23bafa685c5
BLAKE2b-256 6c70a4981566aa069705f522814f53c24c0d66ccb9c0c01c82f3690401c7ecbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dbf3f2e1bbd57ccb6aa4aea84e3b1253aa191cee9318f53e5a0dc154c394e4b2
MD5 da454b003d96d047c1fc85b2c8c6e116
BLAKE2b-256 020fda3653ddc0d17ea43af0051302a53dce8a353a396f71f378831c65c9f115

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: cymongoose-0.1.7-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 199.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for cymongoose-0.1.7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 06533fc2bcaa7b0292ef5b7be52226e6b637501bb3712129078cf65cbb42b52a
MD5 fcb9ff63ef10c8a8bdcdb3c72d2b98ca
BLAKE2b-256 0c9e444bff6de7ad373441f1a0f7e723420818684550a036f2a0235cc880725d

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 49aefac652ba0712ed81ec63b9fd2b58b48a825f8e3010e3b8e95960099a02a2
MD5 8718c5d61423637d3694a749be2d4dae
BLAKE2b-256 ed48df820981e18898256c2e7271ea59181049145bc7cdce9737be2e4c3eaa6d

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6852195fbca58c2fd3f0ec743d6930827430d223b433fadeb6052ee40c6b43c9
MD5 39376ed0c1a8350f2f05830dcfd2ba85
BLAKE2b-256 38636fa9f4f28fb538f08d8a5533b79843ff53b686cdea7faeae78e026efbd5f

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0ce648bcc994951576ede0aa818acd38d42a75d941ab4719e8c1f1795cec0bbe
MD5 aedf4ca18762e41ad5299902cca71c58
BLAKE2b-256 37101788673436f6a7c029d780448510e533b14373139ddaa25423f36d4a68e6

See more details on using hashes here.

File details

Details for the file cymongoose-0.1.7-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cymongoose-0.1.7-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b4706fec17d20f12e696975e2bec2884d5d9c818fe0d3cae4168056ea3ec1e63
MD5 034c26db440a419c370efc2ef89a8efa
BLAKE2b-256 ed2aefc2f1208af36424b348f3904a93f9c40d01af0486b9bd9c9eab120617c9

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