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 looplisten(url, handler=None)- Create a listening socketconnect(url, handler=None)- Create an outbound connectionclose()- Free resources
Protocol-Specific:
http_listen(url, handler=None)- Create HTTP serverhttp_connect(url, handler=None)- Create HTTP clientws_connect(url, handler=None)- WebSocket clientmqtt_connect(url, handler=None, client_id, username, password, ...)- MQTT clientmqtt_listen(url, handler=None)- MQTT brokersntp_connect(url, handler=None)- SNTP time clienttimer_add(milliseconds, callback, repeat=False, run_now=False)- Add periodic timerwakeup(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
nogilwork 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e91c48707b4bd08286a345eed2e8586ee434b5ef800d2b13c166b5a8fd2d83b3
|
|
| MD5 |
06f90d518a98c4377d724303ac0b92ae
|
|
| BLAKE2b-256 |
cc7eb5024b2f379735d1aa046262879895342914bdd83217d513014a5d7ed96e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01dcf59efc5f5122eb26e863aaa20833841918a093ca4381efb8fd5c2a2b9153
|
|
| MD5 |
92517a0153b895701cd7438e96144ad6
|
|
| BLAKE2b-256 |
7c5bd965a0a6cf7d0f7348e712ff0e47d3f06ca955e3b5ddc07294007e393395
|
File details
Details for the file cymongoose-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 277.6 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40e344dbe2d601af0872f46ab03ea1a2a3b5d5fd819116cf7a3a032a2ef98443
|
|
| MD5 |
c466ab0b98fdd0f3cf28bd168f432f43
|
|
| BLAKE2b-256 |
a84e3d8f977ba4f843a7058255d26c900b0ae48841f0abdb400183a9966d6344
|
File details
Details for the file cymongoose-0.1.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 269.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d063e3aa6dd5757230bad0f2bf24291bea2894ddcb77c303a29a79ad9a653669
|
|
| MD5 |
d247ffd8bd2a2865e2e3d7f59ee17046
|
|
| BLAKE2b-256 |
9d68b10bc24982b1753d6392e710c537fea8a9f60f6d5ac925474560731bca4f
|
File details
Details for the file cymongoose-0.1.7-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 237.0 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2887ad0e79e92657f57508ea4d671e3f2be61d0b6f51d73a22311d741acab224
|
|
| MD5 |
2189cd489e83ae635ef7e8a583faf378
|
|
| BLAKE2b-256 |
8a1e6ab67cbdbb20bd48cfc3b4410efc6a2c4b622a9c52e69170280c68e8dac7
|
File details
Details for the file cymongoose-0.1.7-cp313-cp313-macosx_10_13_x86_64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp313-cp313-macosx_10_13_x86_64.whl
- Upload date:
- Size: 267.6 kB
- Tags: CPython 3.13, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97c9cbf7b4fd3a43df27f057185b905ee58d1dc1dbe23bbb8aed781a763b98b3
|
|
| MD5 |
47c5d9cc76429f7088ec4c1d03fa0e62
|
|
| BLAKE2b-256 |
c17df5f431cb78b99d046f67da033bfe9f333c414c34b75a06278c57de254ecb
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47580b7bb90fb4f921d3355e62facea17bca597bee251e803146f3a6c99e07f2
|
|
| MD5 |
997c434bd381daa4d9fb5a3a2f5e5451
|
|
| BLAKE2b-256 |
7d597a9eb0c451cad4f65b003bdbdd4b90c17ba99944157b0121d6efad435efa
|
File details
Details for the file cymongoose-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 276.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98301aafd3e8d42ccae98d7d902abdcd62f128a1e5500f67886f30f4c8032aaa
|
|
| MD5 |
3acf944b7e19ba528df69302d08dc9c8
|
|
| BLAKE2b-256 |
2360e2af2d364653afb49172815bb9c6f52455c0839c39f25b73248abd5b5704
|
File details
Details for the file cymongoose-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 270.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12e71839ee5710530a35b7bf66a7b98324520a8c5466b5af3843634352134f2c
|
|
| MD5 |
e1e75e063236ab03bd5654f8d0aa1a22
|
|
| BLAKE2b-256 |
6f585ba804758bfc0bdf7b6ff1c08624a2394777c52f5a76f82abd33a6c658f7
|
File details
Details for the file cymongoose-0.1.7-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 236.1 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f69d71e5a1d3f2b2aedb86ea63b4c4273353d29c1380e1aac73137de5efaba8
|
|
| MD5 |
5662d86ed7b90e9ade771bec961c59eb
|
|
| BLAKE2b-256 |
9a1b458ad3e055342c14d0fc0f4ac13b7e8026e378f0d7293ad413b2e02d9559
|
File details
Details for the file cymongoose-0.1.7-cp312-cp312-macosx_10_13_x86_64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp312-cp312-macosx_10_13_x86_64.whl
- Upload date:
- Size: 265.6 kB
- Tags: CPython 3.12, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8c21d4abd4791a61a749abddd99a16a3a353c5b382fe936bd20f5faeebe6957
|
|
| MD5 |
7d44c516385849ce7601f11c95849268
|
|
| BLAKE2b-256 |
13fb364ccd3dbf9daf89194f2132201f0f1831b332fc0ab3ee1db5cd2915c1ea
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42a12ac428d442a08603e956401844042b2401f327b05f45d09321c03aeac6a7
|
|
| MD5 |
99bea7644d3cb60322e4dcba2654a989
|
|
| BLAKE2b-256 |
cc2d2550cd242b3c9170b310e16df4ce59dd653249f335ae46dcfdea55757296
|
File details
Details for the file cymongoose-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 275.8 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f776c79727bc8da55694cb71471face1a37fb8fb3bf40dfb1cedfb1a870c71e
|
|
| MD5 |
8832eb059c3629119825f25d00909dff
|
|
| BLAKE2b-256 |
2b5b0f993ca412b4ac3ceeca5a446b8eb2fcc14eeb05bb61e0b9746c995d5e72
|
File details
Details for the file cymongoose-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 270.0 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
feb8521aff773baf354e9cf45b51cad2115a8ca8145c84e40c58193c0b1da53d
|
|
| MD5 |
9c9300e5b83cccba037adf913e85bd87
|
|
| BLAKE2b-256 |
f950e09949b7990f3e459039d9d37d0906b6cd3416f369366f7510b4f3cbc2a7
|
File details
Details for the file cymongoose-0.1.7-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 230.8 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61251ebabf4b9a85c97f46fb84ccbe64edd4da00245ff4216552734e1bd57560
|
|
| MD5 |
98a1dac09bcd342cac20bebacb3c927e
|
|
| BLAKE2b-256 |
06c404de9c227b826059794aeb0ad01e95eab924511f50e577f250571719608c
|
File details
Details for the file cymongoose-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 257.6 kB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8d1b25b60ac942e43c7be10790106e36d97e8eb71d0dd00928140a5ea8d3c3f
|
|
| MD5 |
36b52006ea101cd6145144c30f3e0885
|
|
| BLAKE2b-256 |
8d60cf1a373230b5a51c9c164922624ff4dea9615b544fd6494fc6d52b4f0a76
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
306c1f1f51c6f40e501623a609649f70e364304f8de1ae06876e646cd33a2f30
|
|
| MD5 |
8ddd2639f0c71a30a456bce9098ea7a8
|
|
| BLAKE2b-256 |
2b9a23a85c8ea5b10ccd369a28d0c3fb6639bdca88b8db12d2334cc925398e84
|
File details
Details for the file cymongoose-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 280.4 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ca4099576d3a7afc110c04c950e99c1a601b0918eedbbdd2a8d1a7e56ca4fa1
|
|
| MD5 |
b0a002c138aed35389dd11ddb4d469cd
|
|
| BLAKE2b-256 |
0a7360fafe91d0ad5ccfe35b1608c96def3463e0b48ba20badb77ac0caa99873
|
File details
Details for the file cymongoose-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 273.9 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f66e4b58b1534ca41376a090ee714e468bd653d594ca526b8a3c0b9db2365fc7
|
|
| MD5 |
0ca200922738bfe47fb06b3a79dde758
|
|
| BLAKE2b-256 |
3a5cbdcc563fc0916ff00318949c27c740751314b80254e44418004bfa164fbf
|
File details
Details for the file cymongoose-0.1.7-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 233.4 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55822802be96302e2ae8958af9c89f4b684f0ed36adc983b8e9520e5be957f78
|
|
| MD5 |
1f1e695d8d3bf07b6768a23bafa685c5
|
|
| BLAKE2b-256 |
6c70a4981566aa069705f522814f53c24c0d66ccb9c0c01c82f3690401c7ecbf
|
File details
Details for the file cymongoose-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 258.9 kB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbf3f2e1bbd57ccb6aa4aea84e3b1253aa191cee9318f53e5a0dc154c394e4b2
|
|
| MD5 |
da454b003d96d047c1fc85b2c8c6e116
|
|
| BLAKE2b-256 |
020fda3653ddc0d17ea43af0051302a53dce8a353a396f71f378831c65c9f115
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06533fc2bcaa7b0292ef5b7be52226e6b637501bb3712129078cf65cbb42b52a
|
|
| MD5 |
fcb9ff63ef10c8a8bdcdb3c72d2b98ca
|
|
| BLAKE2b-256 |
0c9e444bff6de7ad373441f1a0f7e723420818684550a036f2a0235cc880725d
|
File details
Details for the file cymongoose-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 280.6 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49aefac652ba0712ed81ec63b9fd2b58b48a825f8e3010e3b8e95960099a02a2
|
|
| MD5 |
8718c5d61423637d3694a749be2d4dae
|
|
| BLAKE2b-256 |
ed48df820981e18898256c2e7271ea59181049145bc7cdce9737be2e4c3eaa6d
|
File details
Details for the file cymongoose-0.1.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 274.4 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6852195fbca58c2fd3f0ec743d6930827430d223b433fadeb6052ee40c6b43c9
|
|
| MD5 |
39376ed0c1a8350f2f05830dcfd2ba85
|
|
| BLAKE2b-256 |
38636fa9f4f28fb538f08d8a5533b79843ff53b686cdea7faeae78e026efbd5f
|
File details
Details for the file cymongoose-0.1.7-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 233.8 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ce648bcc994951576ede0aa818acd38d42a75d941ab4719e8c1f1795cec0bbe
|
|
| MD5 |
aedf4ca18762e41ad5299902cca71c58
|
|
| BLAKE2b-256 |
37101788673436f6a7c029d780448510e533b14373139ddaa25423f36d4a68e6
|
File details
Details for the file cymongoose-0.1.7-cp39-cp39-macosx_10_9_x86_64.whl.
File metadata
- Download URL: cymongoose-0.1.7-cp39-cp39-macosx_10_9_x86_64.whl
- Upload date:
- Size: 259.3 kB
- Tags: CPython 3.9, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4706fec17d20f12e696975e2bec2884d5d9c818fe0d3cae4168056ea3ec1e63
|
|
| MD5 |
034c26db440a419c370efc2ef89a8efa
|
|
| BLAKE2b-256 |
ed2aefc2f1208af36424b348f3904a93f9c40d01af0486b9bd9c9eab120617c9
|