Hyper-fast queue for Python
Project description
HyperQ
⚠️ Warning: This package is not ready for production usage yet. It's currently in active development and may have bugs, especially with multiprocessing scenarios using the spawn start method in macOS.
Hyper-fast queue for Python - A high-performance queue implementation using Cython and C++ for inter-process communication.
🚀 Features
- Lightning Fast: Optimized C++ implementation with Python bindings
- Inter-Process Communication: Shared memory-based queues for high-performance IPC
- Ring Buffer Architecture: Uses a ring buffer with double virtual memory mapping to the same physical memory.
- Two Queue Types:
HyperQ: General-purpose queue for Python objectsBytesHyperQ: Specialized queue for bytes data (even faster)
- Thread-Safe: Safe for concurrent access
- Unix-like Systems: Works on Linux and macOS (POSIX-compliant systems)
- Python 3.10+: Modern Python support
📋 TODO
- Fix multiprocessing spawn start method bug in macOS - Critical issue with multiple consumers/producers
- Queue doesn't work properly when
multiprocessing.set_start_method('spawn')is used - Affects scenarios with multiple consumers and producers
- Queue doesn't work properly when
- Add
__getstate__and__setstate__methods to make queue objects picklable- Allow passing queue objects directly to multiprocessing functions
- Serialize only the shared memory name/descriptor, not the entire queue state
- Enable seamless integration with multiprocessing.Pool and other parallel processing tools
- Add timeout support for
put()andget()operations - Add non-blocking operations (
put_nowait(),get_nowait())put_nowait(): Non-blocking put that raisesqueue.Fullif queue is fullget_nowait(): Non-blocking get that raisesqueue.Emptyif queue is empty- Useful for polling scenarios where you don't want to block the thread
- Add batch operations for better performance
put_many(items): Put multiple items in a single operationget_many(count): Get multiple items in a single operationget_all(): Get all available items at once- Reduces synchronization overhead for bulk operations
- Design decision: Queue name management
- Option A: Encapsulate queue names (auto-generate, hide from client)
- Option B: Client specifies queue names (current approach)
- Option C: Hybrid approach (auto-generate with optional override)
- Add Windows support (requires different shared memory implementation)
- Add more comprehensive tests including stress tests and edge cases
- Add documentation for advanced usage patterns
- orjson + BytesHyperQ for JSON: Use
orjson.dumps()+BytesHyperQfor fastest JSON serialization and transfer.
- orjson + BytesHyperQ for JSON: Use
⚠️ Platform Support
Currently supported:
- ✅ Linux
- ⚠️ macOS (There is an issue when start method is set to spawn and there are multiple producers/consumers)
Not supported:
- ❌ Windows (uses POSIX-specific APIs)
- ❌ PyPy
🔧 Technical Details
Ring Buffer Implementation
HyperQ uses a ring buffer with double virtual memory mapping to the same physical memory. This eliminates the need for 2 memcpy operations when data wraps around the buffer boundaries.
Shared Memory Architecture
- Header segment: Contains queue metadata, synchronization primitives, and buffer information
- Buffer segment: The actual data storage with double virtual memory mapping
- POSIX shared memory: Uses
shm_open()andmmap()for cross-process memory sharing - Synchronization: Uses POSIX mutexes and condition variables for thread/process safety
📦 Installation
From PyPI
pip install hyperq
From Source
git clone https://github.com/martinmkhitaryan/hyperq.git
cd hyperq
pip install -e .
Development Installation
git clone https://github.com/martinmkhitaryan/hyperq.git
cd hyperq
pip install -e ".[test]"
🎯 Quick Start
Basic Usage
import multiprocessing as mp
from hyperq import HyperQ, BytesHyperQ
# Create a queue with 1MB capacity
queue = HyperQ(1024 * 1024, name="/my_queue")
# Put data
queue.put("Hello, World!")
queue.put(42)
queue.put({"key": "value"})
# Get data
data = queue.get() # "Hello, World!"
number = queue.get() # 42
obj = queue.get() # {"key": "value"}
Inter-Process Communication
import multiprocessing as mp
from hyperq import HyperQ
def producer(queue_name):
queue = HyperQ(queue_name)
for i in range(1000):
queue.put(f"Message {i}")
def consumer(queue_name):
queue = HyperQ(queue_name)
for _ in range(1000):
message = queue.get()
print(f"Received: {message}")
if __name__ == "__main__":
# Create queue in main process
queue = HyperQ(1024 * 1024, name="/shared_queue")
queue_name = queue.shm_name
# Start producer and consumer processes
p1 = mp.Process(target=producer, args=(queue_name,))
p2 = mp.Process(target=consumer, args=(queue_name,))
p1.start()
p2.start()
p1.join()
p2.join()
Bytes-Specific Queue (Faster)
from hyperq import BytesHyperQ
# For bytes data, use BytesHyperQ for better performance
queue = BytesHyperQ(1024 * 1024, name="/bytes_queue")
# Put bytes data
queue.put(b"Hello, World!")
queue.put(b"Binary data")
# Get bytes data
data = queue.get() # b"Hello, World!"
📊 Performance Benchmarks
HyperQ is designed for high-performance scenarios. Here are some benchmark results:
Hardware:
- CPU: Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
- Memory: 16GB
- OS: macOS 15.3.1
- Python: 3.10
1 Producer, 1 Consumer
Running bytes performance benchmarks...
================================================================
Results for 100000 messages of 32 bytes:
Queue Type Total Time (s) Latency (ms) Throughput (items/s)
--------------------- ---------------- -------------- ----------------------
BytesHyperQ 0.119976 0.00119976 833499
HyperQ 0.421588 0.00421588 237198
multiprocessing.Queue 2.09399 0.0209399 47755
faster-fifo 2.36328 0.0236328 42314
🏆 Fastest: BytesHyperQ with 833,499 items/s
3.5x faster than HyperQ
17.5x faster than multiprocessing.Queue
19.7x faster than faster-fifo
================================================================
Sleeping 2 seconds before next test configuration...
Results for 100000 messages of 64 bytes:
Queue Type Total Time (s) Latency (ms) Throughput (items/s)
--------------------- ---------------- -------------- ----------------------
BytesHyperQ 0.124732 0.00124732 801717
HyperQ 0.474716 0.00474716 210652
faster-fifo 1.67101 0.0167101 59843
multiprocessing.Queue 2.20561 0.0220561 45338
🏆 Fastest: BytesHyperQ with 801,717 items/s
3.8x faster than HyperQ
13.4x faster than faster-fifo
17.7x faster than multiprocessing.Queue
================================================================
Sleeping 2 seconds before next test configuration...
Results for 100000 messages of 128 bytes:
Queue Type Total Time (s) Latency (ms) Throughput (items/s)
--------------------- ---------------- -------------- ----------------------
BytesHyperQ 0.116276 0.00116276 860024
HyperQ 0.499545 0.00499545 200182
multiprocessing.Queue 1.99662 0.0199662 50084
faster-fifo 2.65151 0.0265151 37714
🏆 Fastest: BytesHyperQ with 860,024 items/s
4.3x faster than HyperQ
17.2x faster than multiprocessing.Queue
22.8x faster than faster-fifo
================================================================
Sleeping 2 seconds before next test configuration...
Results for 100000 messages of 256 bytes:
Queue Type Total Time (s) Latency (ms) Throughput (items/s)
--------------------- ---------------- -------------- ----------------------
BytesHyperQ 0.235679 0.00235679 424305
HyperQ 0.837711 0.00837711 119372
multiprocessing.Queue 2.32011 0.0232011 43101
faster-fifo 2.68104 0.0268104 37298
🏆 Fastest: BytesHyperQ with 424,305 items/s
3.6x faster than HyperQ
9.8x faster than multiprocessing.Queue
11.4x faster than faster-fifo
================================================================
Sleeping 2 seconds before next test configuration...
Results for 100000 messages of 512 bytes:
Queue Type Total Time (s) Latency (ms) Throughput (items/s)
--------------------- ---------------- -------------- ----------------------
BytesHyperQ 0.251292 0.00251292 397943
HyperQ 0.770943 0.00770943 129711
multiprocessing.Queue 2.08766 0.0208766 47900
faster-fifo 2.16858 0.0216858 46113
🏆 Fastest: BytesHyperQ with 397,943 items/s
3.1x faster than HyperQ
8.3x faster than multiprocessing.Queue
8.6x faster than faster-fifo
================================================================
Sleeping 2 seconds before next test configuration...
Results for 100000 messages of 1024 bytes:
Queue Type Total Time (s) Latency (ms) Throughput (items/s)
--------------------- ---------------- -------------- ----------------------
BytesHyperQ 0.209373 0.00209373 477616
HyperQ 0.664122 0.00664122 150574
multiprocessing.Queue 2.28728 0.0228728 43720
faster-fifo 2.30807 0.0230807 43326
🏆 Fastest: BytesHyperQ with 477,616 items/s
3.2x faster than HyperQ
10.9x faster than multiprocessing.Queue
11.0x faster than faster-fifo
================================================================
Sleeping 2 seconds before next test configuration...
Results for 100000 messages of 4096 bytes:
Queue Type Total Time (s) Latency (ms) Throughput (items/s)
--------------------- ---------------- -------------- ----------------------
BytesHyperQ 0.419936 0.00419936 238131
HyperQ 1.0191 0.010191 98126
multiprocessing.Queue 2.18819 0.0218819 45699
faster-fifo 3.13527 0.0313527 31895
🏆 Fastest: BytesHyperQ with 238,131 items/s
2.4x faster than HyperQ
5.2x faster than multiprocessing.Queue
7.5x faster than faster-fifo
================================================================
Sleeping 2 seconds before next test configuration...
Results for 100000 messages of 8192 bytes:
Queue Type Total Time (s) Latency (ms) Throughput (items/s)
--------------------- ---------------- -------------- ----------------------
BytesHyperQ 0.701695 0.00701695 142512
HyperQ 1.34373 0.0134373 74419
multiprocessing.Queue 2.95495 0.0295495 33841
faster-fifo 3.40265 0.0340265 29388
🏆 Fastest: BytesHyperQ with 142,512 items/s
1.9x faster than HyperQ
4.2x faster than multiprocessing.Queue
4.8x faster than faster-fifo
================================================================
Sleeping 2 seconds before next test configuration...
Results for 100000 messages of 16384 bytes:
Queue Type Total Time (s) Latency (ms) Throughput (items/s)
--------------------- ---------------- -------------- ----------------------
BytesHyperQ 1.22369 0.0122369 81720
HyperQ 1.62568 0.0162568 61512
faster-fifo 3.81159 0.0381159 26235
multiprocessing.Queue 5.12029 0.0512029 19530
🏆 Fastest: BytesHyperQ with 81,720 items/s
1.3x faster than HyperQ
3.1x faster than faster-fifo
4.2x faster than multiprocessing.Queue
Results may vary depending on hardware and system configuration.
🔧 API Reference
HyperQ
class HyperQ:
def __init__(self, capacity: int, name: str = None)
def put(self, item) -> bool
def get(self) # Blocks until data is available
def empty(self) -> bool
def full(self) -> bool
def size(self) -> int
def clear(self)
BytesHyperQ
class BytesHyperQ:
def __init__(self, capacity: int, name: str = None)
def put(self, data: bytes) -> bool
def get(self) -> bytes # Blocks until data is available
def empty(self) -> bool
def full(self) -> bool
def size(self) -> int
def clear(self)
Parameters
- capacity: Maximum size of the queue in bytes
- name: Optional name for the shared memory segment (max 28 characters)
Important Notes
- Blocking operations:
get()blocks indefinitely until data is available - No timeout support: Currently no timeout functionality is implemented
- Queue names: Must be 28 characters or less
- Platform limitation: Only works on Unix-like systems (Linux/macOS)
🧪 Running Tests
# Run all tests
pytest
# Run with coverage
pytest --cov=hyperq
📈 Running Benchmarks
# 1 producer, 1 consumer benchmark
python benchmarks/benchmark_bytes_transfering_1p_1c.py
# 10 producers, 10 consumers benchmark
python benchmarks/benchmark_bytes_transfering_10p_10c.py
🏗️ Building from Source
Prerequisites
- Python 3.10+
- Cython >= 0.29.0
- C++ compiler with C++20 support (GCC 8+, Clang 10+)
- Unix-like system (Linux or macOS)
Build Steps
# Clone the repository
git clone https://github.com/martinmkhitaryan/hyperq.git
cd hyperq
# Install build dependencies
pip install -e ".[test]"
# Build the extension
python setup.py build_ext --inplace
🤝 Contributing
Development Setup
- Fork the repository
- Create a virtual environment:
python -m venv .venv - Activate it:
source .venv/bin/activate(Linux/macOS) - Install development dependencies:
pip install -e ".[test]" - Run tests:
pytest - Make your changes and submit a pull request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Built with Cython for high-performance Python extensions
- Uses POSIX shared memory and threading primitives
- Inspired by the need for faster inter-process communication in Python
📞 Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: mkhitaryan.martin@2000gmail.com
🔄 Version History
- 0.0.8: Updated benchmark suite, test suite, pyproject.toml configuration; optimized CI/CD release workflow.
- 0.0.7: Replaced is_creator logic with ref count logic for better shared memory management; identified and documented issue with multiprocessing spawn start method not working properly with multiple consumers and producers.
- 0.0.6: Fix cibuildwheel configurations.
- 0.0.5: Added platform-specific build and skip patterns for Linux and macOS; improved cibuildwheel configuration with separate build targets for manylinux and macosx wheels
- 0.0.4: Fixed cibuildwheel configuration for proper multi-platform wheel builds; added architecture-specific settings for Linux (x86_64/i686) and macOS (x86_64/arm64);
- 0.0.3: Fixed cibuildwheel configuration for proper linux wheel build;
- 0.0.2: Added proper PyPI wheel support for Linux and macOS using cibuildwheel; improved release workflow for multi-platform builds and C++20 compatibility
- 0.0.1: Initial release with HyperQ and BytesHyperQ implementations
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 hyperq-0.0.8.tar.gz.
File metadata
- Download URL: hyperq-0.0.8.tar.gz
- Upload date:
- Size: 103.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b05211c2e4b11faf8bd5188ea245dbb1c5afc2efbd5fb84d32386dafba5daaec
|
|
| MD5 |
061c294df17817e1931673ac3c4321c6
|
|
| BLAKE2b-256 |
40fd836a9b97959394d3f99b9180c5e791f4bb35630c5bbe26498b41cc5dea2f
|
Provenance
The following attestation bundles were made for hyperq-0.0.8.tar.gz:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8.tar.gz -
Subject digest:
b05211c2e4b11faf8bd5188ea245dbb1c5afc2efbd5fb84d32386dafba5daaec - Sigstore transparency entry: 264414002
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hyperq-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: hyperq-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 179.5 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
caac39a0db1f49bb7bafb2bf947162219bdc2c41db695841172135b705de3314
|
|
| MD5 |
e83897ceae29b33885537155af7fe597
|
|
| BLAKE2b-256 |
f0a01648e07204c8bea88c8bc0eaeabf6adcd9dd15c6a4f13d47a9d35e5586fb
|
Provenance
The following attestation bundles were made for hyperq-0.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
caac39a0db1f49bb7bafb2bf947162219bdc2c41db695841172135b705de3314 - Sigstore transparency entry: 264414003
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hyperq-0.0.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: hyperq-0.0.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 184.5 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e87fb42c794f1fdc1a9e57303be7eabd2049ad3cff00c211e68c08892ff0b2ff
|
|
| MD5 |
1f9ecb56160c98b935fca2121360dcbd
|
|
| BLAKE2b-256 |
2b461b8814118da3981a2a35222f38b67a3cce2439499e1041eccfb580462373
|
Provenance
The following attestation bundles were made for hyperq-0.0.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl -
Subject digest:
e87fb42c794f1fdc1a9e57303be7eabd2049ad3cff00c211e68c08892ff0b2ff - Sigstore transparency entry: 264414012
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hyperq-0.0.8-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: hyperq-0.0.8-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 137.2 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de73474a06d2f559112c1bd26e7626fed5e595822f2da760f09aa502627c9007
|
|
| MD5 |
f807829b5ac8cb5877c632b5606ef070
|
|
| BLAKE2b-256 |
f5d62b1a787a2fbfbaec4d1f3d4ec60640f7294ae73e1740eb42e4a631a6fc3e
|
Provenance
The following attestation bundles were made for hyperq-0.0.8-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
de73474a06d2f559112c1bd26e7626fed5e595822f2da760f09aa502627c9007 - Sigstore transparency entry: 264414017
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hyperq-0.0.8-cp312-cp312-macosx_10_9_x86_64.whl.
File metadata
- Download URL: hyperq-0.0.8-cp312-cp312-macosx_10_9_x86_64.whl
- Upload date:
- Size: 139.1 kB
- Tags: CPython 3.12, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac4382aefde83b0d5c9725666c3f4cc409130861ce1a2da9e09c7dc790ebd9a4
|
|
| MD5 |
cc896fcf2f6cd3c93cacccea1b232b4b
|
|
| BLAKE2b-256 |
ae5437649c6b9c25ebf4f5c3770b3c361c33aecd9c94522ca9a00dced352e57c
|
Provenance
The following attestation bundles were made for hyperq-0.0.8-cp312-cp312-macosx_10_9_x86_64.whl:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8-cp312-cp312-macosx_10_9_x86_64.whl -
Subject digest:
ac4382aefde83b0d5c9725666c3f4cc409130861ce1a2da9e09c7dc790ebd9a4 - Sigstore transparency entry: 264414006
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hyperq-0.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: hyperq-0.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 178.9 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8ff141349f8136e871461a33cb999d8a86e69c7afc183267efe7996605d1723
|
|
| MD5 |
eb3e2906fa1a2c9ccdd4b0171a9e5f2e
|
|
| BLAKE2b-256 |
4307417d9710ec811f3949b1ce95e8243cd6d8faed12b41b8fa9770a448cb654
|
Provenance
The following attestation bundles were made for hyperq-0.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
b8ff141349f8136e871461a33cb999d8a86e69c7afc183267efe7996605d1723 - Sigstore transparency entry: 264414014
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hyperq-0.0.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: hyperq-0.0.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 184.3 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a41f5c6301893769b0e34385b7defc699a2e49db68b5b4ea939be48847ec05f7
|
|
| MD5 |
4c450e14499911494d9d05e3cf49b032
|
|
| BLAKE2b-256 |
bfd56d12bfe4ffd1e5331a6487278f50589ee939b5100473b7ae8f2fd9847884
|
Provenance
The following attestation bundles were made for hyperq-0.0.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl -
Subject digest:
a41f5c6301893769b0e34385b7defc699a2e49db68b5b4ea939be48847ec05f7 - Sigstore transparency entry: 264414011
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hyperq-0.0.8-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: hyperq-0.0.8-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 136.3 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21d83ba0f95029f280e40eb20d0c8f44bd5381054bc863572062cc9500c77904
|
|
| MD5 |
91e2b489ed49b91d4307acd76740723e
|
|
| BLAKE2b-256 |
38af241d634689f76660322de7707bca2660db8ddd7d39dc6ddef73ed72ab86a
|
Provenance
The following attestation bundles were made for hyperq-0.0.8-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
21d83ba0f95029f280e40eb20d0c8f44bd5381054bc863572062cc9500c77904 - Sigstore transparency entry: 264414010
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hyperq-0.0.8-cp311-cp311-macosx_10_9_x86_64.whl.
File metadata
- Download URL: hyperq-0.0.8-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 137.8 kB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db20aaead8d7ee866f42cf971584aaa0213e20a2787426dbc2356a019a80e2d5
|
|
| MD5 |
077ceb8c63f1ff42259ab5a23a89ba6a
|
|
| BLAKE2b-256 |
aa20ba859fc5449c4eb7b8dfbe1729d510ac1cb0686b3d0cc53a360b13110ef4
|
Provenance
The following attestation bundles were made for hyperq-0.0.8-cp311-cp311-macosx_10_9_x86_64.whl:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8-cp311-cp311-macosx_10_9_x86_64.whl -
Subject digest:
db20aaead8d7ee866f42cf971584aaa0213e20a2787426dbc2356a019a80e2d5 - Sigstore transparency entry: 264414015
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hyperq-0.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: hyperq-0.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 179.4 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e98fdadd42c3456d03ec3e7c620998afe5ac634a6d0f5db7dcab60150aa72bdf
|
|
| MD5 |
6196fabb5a8c27a3bed08ff5c44166ae
|
|
| BLAKE2b-256 |
6b91c120cd0966baa434491a73ab089b46f602812ba20c3aaebd5fbfbdd6775c
|
Provenance
The following attestation bundles were made for hyperq-0.0.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
e98fdadd42c3456d03ec3e7c620998afe5ac634a6d0f5db7dcab60150aa72bdf - Sigstore transparency entry: 264414008
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hyperq-0.0.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: hyperq-0.0.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 184.4 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76d178da587a66828a1513b004788b2522c8544f502a4d0ecb70b976d03f15a9
|
|
| MD5 |
01548752f93e3de2d41074fe285a2ca4
|
|
| BLAKE2b-256 |
2c858073a5eb59da8bada524462457231aeea82a7442b8f324c43729fae8551d
|
Provenance
The following attestation bundles were made for hyperq-0.0.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl -
Subject digest:
76d178da587a66828a1513b004788b2522c8544f502a4d0ecb70b976d03f15a9 - Sigstore transparency entry: 264414013
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hyperq-0.0.8-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: hyperq-0.0.8-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 136.0 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
822b3a34bce8c702f3389263597e6ee9818c37aca2c1f3bb55ab89b22fd94314
|
|
| MD5 |
5c1f55a9ad8cd32ff71a028453fd37d3
|
|
| BLAKE2b-256 |
53f013fdaa0eee0bd9d4dada641988e127d5c4c3cd41c2ed27e573e0f41e158a
|
Provenance
The following attestation bundles were made for hyperq-0.0.8-cp310-cp310-macosx_11_0_arm64.whl:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8-cp310-cp310-macosx_11_0_arm64.whl -
Subject digest:
822b3a34bce8c702f3389263597e6ee9818c37aca2c1f3bb55ab89b22fd94314 - Sigstore transparency entry: 264414018
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type:
File details
Details for the file hyperq-0.0.8-cp310-cp310-macosx_10_9_x86_64.whl.
File metadata
- Download URL: hyperq-0.0.8-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 137.1 kB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df033f0de3881f5cfa2042fdaa3e9914f90f233496b362b71925170738434c22
|
|
| MD5 |
91b9dca4e98919986372cfc4a3081e17
|
|
| BLAKE2b-256 |
852d0474c8eb8481b27527a39207900abcb863b2d472a895f76470c0d8fadcdf
|
Provenance
The following attestation bundles were made for hyperq-0.0.8-cp310-cp310-macosx_10_9_x86_64.whl:
Publisher:
release.yml on martinmkhitaryan/hyperq
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyperq-0.0.8-cp310-cp310-macosx_10_9_x86_64.whl -
Subject digest:
df033f0de3881f5cfa2042fdaa3e9914f90f233496b362b71925170738434c22 - Sigstore transparency entry: 264414005
- Sigstore integration time:
-
Permalink:
martinmkhitaryan/hyperq@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Branch / Tag:
refs/tags/v0.0.8 - Owner: https://github.com/martinmkhitaryan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6d58a86f05e46f4139e32b5b1ab1e6fb12df2691 -
Trigger Event:
release
-
Statement type: