Skip to main content

fastqueue

Tests PyPI versions PyPI license
PyPI

Single-ended fast queues built in C tuned for Python.

Requirements

  • python 3.7+

Installation

To install fastqueue, using pip:

pip install fastqueue-lib

Quickstart

For general use cases fastqueue.Queue() objects are tuned to perform well. The enqueue and dequeue methods perform well over a large sequence of arbitrary operations. fastqueue.Queue() supports many standard sequence methods similar to lists. fastqueue.Queue() minimizes memory usage but maintains the fast queue speeds.

>>> from fastqueue import Queue
>>> queue = Queue()
>>> queue.extend(['🚒', '🛴'])
>>> queue[0]
'🚒'
>>> '🛴' in queue
True
>>> queue.enqueue('🚅')
>>> queue.enqueue('🚗')
>>> queue[-1]
'🚗'
>>> [queue.dequeue() for _ in range(len(queue)) ]
['🚒', '🛴', '🚅', '🚗']

For more specialized cases fastqueue.QueueC() objects are tuned to perform well. The interface for fastqueue.QueueC() is identical to fastqueue.Queue(). The enqueue and dequeue methods perform similarly well over a large sequence of arbitrary operations. fastqueue.QueueC() handles memory differently by doubling the capacity when full. This increases the complexity but maintains fast amortized cost. The benefit of this approach is even faster __getitem__ and __setitem__ speeds

>>> from fastqueue import QueueC

>>> queue_c = QueueC()
>>> queue_c.extend(['🚒', '🛴'])
>>> queue_c[0]
'🚒'
>>> '🛴' in queue_c
True
>>> queue_c.enqueue('🚅')
>>> queue_c.enqueue('🚗')
>>> queue_c[-1]
'🚗'
>>> [queue_c.dequeue() for _ in range(len(queue_c)) ]
['🚒', '🛴', '🚅', '🚗']

Another alternative is fastqueue.LockQueue() which supports all queue operations. fastqueue.LockQueue() is built as a thread-safe alternative to the other queue types.

Example Benchmarks

Queue operations

Ubuntu

Queue_times Queue_types_linux

Windows

Queue_times Queue_types

Iteration

Ubuntu

Iterable_Instantiation Iterable_Iteration

Windows

Iterable_Instantiation Iterable_Iteration

Release files for fastqueue-lib 0.0.17

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastqueue-lib 0.0.17
File Size Uploaded
fastqueue-lib-0.0.17.tar.gz 11.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastqueue-lib 0.0.17
File Interpreter ABI Platform
fastqueue_lib-0.0.17-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-64 Details

Total release size: 75.0 kB

Release files / fastqueue-lib-0.0.17.tar.gz

Download URL fastqueue-lib-0.0.17.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e0911d698f8b10f3f7f6d1101d54b59b37a085b12ad8da793703a303bb4f308f
BLAKE2b-256 checksum
How to use checksums
80e2ec12040e38ba3f8d9797957d384b5953a390d16a1c114e6bc246dbc972ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / fastqueue_lib-0.0.17-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl

Download URL fastqueue_lib-0.0.17-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Size 63.2 kB
Tags CPython 3.9 Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
9ece9f1a61c9d42a8e4c88aac389b2092e82c5feeb37cdec0888f709cec835ee
BLAKE2b-256 checksum
How to use checksums
bd5befa58fb7d507190d33bdccde2564c073b54ca85df6236bb45a661ed5e0e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release history Release notifications | RSS feed

This release

0.0.17 This release

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page