Skip to main content

Fast single ended queue library for python

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastqueue-lib-0.0.17.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

fastqueue_lib-0.0.17-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (63.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.5+ x86-64

File details

Details for the file fastqueue-lib-0.0.17.tar.gz.

File metadata

  • Download URL: fastqueue-lib-0.0.17.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for fastqueue-lib-0.0.17.tar.gz
Algorithm Hash digest
SHA256 e0911d698f8b10f3f7f6d1101d54b59b37a085b12ad8da793703a303bb4f308f
MD5 72dbda0f79abb2f627b777d7e28bdc16
BLAKE2b-256 80e2ec12040e38ba3f8d9797957d384b5953a390d16a1c114e6bc246dbc972ab

See more details on using hashes here.

File details

Details for the file fastqueue_lib-0.0.17-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for fastqueue_lib-0.0.17-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 9ece9f1a61c9d42a8e4c88aac389b2092e82c5feeb37cdec0888f709cec835ee
MD5 13d15c699a1b09789bf51e632c4f5484
BLAKE2b-256 bd5befa58fb7d507190d33bdccde2564c073b54ca85df6236bb45a661ed5e0e5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page