Skip to main content

localqueue

PyPI Python CI codecov License

A persistent, multiprocess-safe local queue for Python, backed by SQLite and Rust.

localqueue gives scripts and workers durable jobs with ACK/NACK, leases, bounded retries, and dead-letter handling—without a server, daemon, or external service.

API stability: localqueue is evolving quickly. Minor releases may include breaking changes to the Python API. Persisted database compatibility is treated separately and documented for each release.

  • Durable: jobs survive process restarts in a local SQLite database.
  • Safe under concurrency: multiple Python threads and processes can share a queue on the same machine.
  • Failure-aware: expired leases and transient failures are retried; exhausted jobs move to a dead-letter state.
  • Fenced: every delivery has a unique receipt, so stale workers cannot acknowledge a newer delivery.
  • Flexible: use multiple named queues, optional job deduplication, automatic worker heartbeats, and custom serializers.
  • Event-driven: optional durable pub/sub with explicit static topology, atomic fan-out, consumer groups, retries, and dead-letter handling.

Installation · Quick start · Worker · Static typing · Dead letters · Event bus · Benchmarks · Guarantees · Backpressure · Diagnostics · API · Storage compatibility · Migrating to 1.3 · Operational envelope · Changelog · Development

Installation

Using uv:

uv add localqueue

Using pip:

python -m pip install localqueue

localqueue requires Python 3.10 or newer.

Upgrading from 0.5.0 requires code and storage changes because 1.x is a backward-incompatible reimplementation. See Migrating from 0.5.0.

Quick start

Save the two labeled blocks as producer.py and worker.py, then run the producer before starting the worker.

# producer.py
from localqueue import DeliveryPolicy, SimpleQueue


delivery = DeliveryPolicy(lease_seconds=30, max_retries=3)
with SimpleQueue("./data", delivery=delivery) as queue:
    queue.put(
        {"task": "send-email", "to": "hello@example.com"},
        job_id="welcome-email-42",
    )

The producer can stop here. put() commits the job to ./data/localqueue.db; it is not an in-memory dictionary.

# worker.py — run this later, in another process
from localqueue import DeliveryPolicy, SimpleQueue

delivery = DeliveryPolicy(lease_seconds=30, max_retries=3)
with SimpleQueue("./data", delivery=delivery) as queue:
    job = queue.get()

    try:
        print(f"Sending email to {job.data['to']}")
    except Exception as error:
        queue.nack(job, last_error=str(error))
    else:
        queue.ack(job)

The path passed to SimpleQueue is a directory. The queue creates and manages localqueue.db inside it. Payloads are JSON-serialized by default. Jobs survive normal process restarts. Select DurabilityMode.DURABLE when the stronger SQLite durability setting documented in Delivery guarantees is required.

Worker

Worker handles the ACK/NACK lifecycle for you. A successful handler is acknowledged, an unexpected exception is retried, and an exception listed in permanent_errors is sent directly to the dead-letter state.

from localqueue import DeliveryPolicy, SimpleQueue, Worker


class InvalidDeployment(Exception):
    pass


def deploy(job):
    print(f"Deploying {job.data['app']}@{job.data['revision']}")


with SimpleQueue(
    "./data",
    delivery=DeliveryPolicy(lease_seconds=30, max_retries=3),
) as queue:
    worker = Worker(
        queue,
        deploy,
        permanent_errors=(InvalidDeployment,),
        heartbeat_interval=10,
    )
    worker.run()

For long-running handlers, heartbeat_interval renews the lease in the background. It must be shorter than lease_seconds; one-third of the lease is recommended. A handler can also renew it explicitly with job.extend_lease(seconds), using a positive duration.

Static typing

Payload types flow through Serializer[PayloadT], SimpleQueue[PayloadT], Job[PayloadT], and Worker[PayloadT]. EventBus class patterns likewise give handlers the concrete event subtype. These are static relationships: the serializer reconstructs queue payloads at runtime, and Pydantic validates EventBus events. JsonSerializer does not reconstruct arbitrary annotated classes.

See the static typing guide for a custom serializer, typed workers, concrete sync/async event handlers, string/wildcard handlers, and installed-wheel verification.

Dead letters

queue.list_failed() returns immutable typed records with stable FailureReason, exact raw_payload bytes, and per-record decode errors. Replay one record with queue.retry_failed(record.id). EventBus exposes the same workflow through bus.subscription("payments").list_failed() and .retry_failed(id) without internal queue names. See the dead-letter guide for at-least-once replay safety.

Event bus

Optional pub/sub on top of the same durable queues (requires the bus extra):

uv add "localqueue[bus]"
# shared.py
from localqueue.bus import BaseEvent, BusTopology


class UserCreated(BaseEvent):
    event_name = "user.created"

    user_id: str


TOPOLOGY = BusTopology({"email": [UserCreated]})
# producer.py
from localqueue.bus import EventBus

from shared import TOPOLOGY, UserCreated


bus = EventBus("./data", name="app", topology=TOPOLOGY)
bus.dispatch(UserCreated(user_id="123"))  # atomic fan-out, committed
bus.close()
# email_worker.py
import asyncio

from localqueue.bus import EventBus

from shared import TOPOLOGY, UserCreated


bus = EventBus("./data", name="app", topology=TOPOLOGY)
email = bus.subscription("email")


@email.handler(UserCreated)
async def send_welcome(event: UserCreated) -> None: ...


asyncio.run(bus.run())  # consume subscriptions handled by this process

Each subscription is a durable queue (__bus__:{bus}:{subscription}), so workers in multiple processes act as consumer groups. Handlers get the same retry, lease, and dead-letter semantics as regular jobs. The static topology decides where events are persisted; local handlers decide what the current process consumes. Producers do not import handlers, and workers do not participate in dispatch. See docs/event-bus.md.

Delivery guarantees

put() ──> ready ──> leased ──> acked
                     │
                     ├── nack() or expired lease ──> ready
                     │
                     └── fail() or retry limit ────> failed
                                                        │
                                           retry_failed() ──> ready
Behavior Guarantee
Successful put() The job was committed to SQLite and has an internal ID.
Worker crash An unacknowledged job becomes available after its lease expires.
Stale worker ack(), nack(), fail(), and lease extension require the current receipt.
Retries max_retries allows that many retries after the initial delivery; exhaustion moves the job to failed.
Deduplication A job_id is unique within a named queue while its record exists.
Ordering Ready jobs are claimed by insertion ID, but completion order is best effort under concurrency.

DurabilityMode.RELAXED is the default and selects SQLite synchronous=NORMAL, prioritizing throughput. Recent transactions may be lost after abrupt operating-system, host, kernel, or power failure. DurabilityMode.DURABLE selects synchronous=FULL and prioritizes stronger protection for recent commits. Neither mode is an absolute guarantee across every filesystem, kernel, drive cache, controller, or hardware failure.

See Delivery guarantees for the complete durability, lease, retry, fencing, and deduplication contract.

Configuration

from localqueue import DeliveryPolicy, DurabilityMode, SimpleQueue


queue = SimpleQueue(
    "./data",
    name="emails",
    delivery=DeliveryPolicy(
        lease_seconds=60,
        max_retries=3,
    ),
    durability=DurabilityMode.RELAXED,
    serializer=None,
    max_pending_jobs=None,
)
Option Default Description
path required Directory containing the shared localqueue.db file.
name "default" Logical queue name; several queues can share one database.
delivery DeliveryPolicy() Immutable lease duration and retry policy.
durability DurabilityMode.RELAXED Throughput-oriented RELAXED or stronger DURABLE synchronization intent.
serializer JSON Object implementing dumps(obj) -> bytes and loads(bytes) -> obj.
max_pending_jobs None Optional positive limit for ready + processing jobs in this logical queue.

require_subscribers remains a boolean on EventBus: it is one stable dispatch decision, not a group of related invariants. serializer, EventBus topology, and event registry remain explicit strategy objects.

Migrating configuration in v1.3

The old Python constructor parameters are removed without aliases or deprecation shims:

# before
SimpleQueue(path, fsync=True)

# after
SimpleQueue(path, durability=DurabilityMode.DURABLE)

# before
SimpleQueue(path, lease_seconds=30, max_retries=5)

# after
SimpleQueue(
    path,
    delivery=DeliveryPolicy(
        lease_seconds=30,
        max_retries=5,
    ),
)

The same delivery= and durability= arguments apply to EventBus. Public configuration attributes move under the corresponding semantic object:

# before                                  # after
queue.lease_seconds                       queue.delivery.lease_seconds
queue.max_retries                         queue.delivery.max_retries
bus.lease_seconds                         bus.delivery.lease_seconds
bus.max_retries                           bus.delivery.max_retries
bus.fsync                                 bus.durability

The removed attributes have no properties, aliases, or compatibility shims. This is a Python API break only; it does not change the SQLite schema or serialized payload format.

Bounded backlog and backpressure

Limit one logical queue by job count and choose whether producers wait:

from localqueue import Full, SimpleQueue


queue = SimpleQueue("./data", max_pending_jobs=10_000)
try:
    queue.put(payload, block=False)
except Full:
    ...

queue.put(payload, timeout=5.0)

Pending means ready + processing: delayed jobs, active leases, and expired unreclaimed leases count; ACKed and failed jobs do not. The native capacity check, deduplication calculation, and complete insert share one BEGIN IMMEDIATE transaction, so participating processes using the same configured limit cannot oversubscribe it. put_many() is all or nothing, and duplicates that do not create rows consume no new slots, even above the limit. A batch whose deduplicated new-row count exceeds the limit raises Full immediately because it can never fit.

This limits logical backlog, not SQLite/WAL bytes, disk space, or retained terminal records. The setting belongs to each SimpleQueue object and is not persisted: all producers for a logical queue must use the same limit, while an unlimited or direct-SQL client can bypass the contract. EventBus fanout remains unlimited. See the backpressure reference for polling, timeout, transition, multiprocess, and error details.

API overview

Method Purpose
put(data, job_id=None, *, block=True, timeout=None) Enqueue with optional deduplication and capacity waiting.
put_many(items, *, block=True, timeout=None) Atomically enqueue a complete batch, optionally using EnqueueItem for per-item deduplication.
get(block=True, timeout=None) Claim a job and start its lease.
get_nowait() Claim immediately or raise Empty.
ack(job) Confirm successful processing.
nack(job, delay=0, last_error=None) Return a transient failure to the queue, optionally with a non-negative delay.
fail(job, last_error=None) Move a permanent failure to the dead-letter state.
extend_lease(job, seconds) Renew the current delivery lease by a positive duration.
reclaim_expired_leases() Reclaim expired leases explicitly; get() also does this automatically.
stats() Return ready, processing, acked, and failed counts.
diagnostics() Return a typed, immutable, read-only operational snapshot.
check_integrity(*, mode="full", max_errors=100) Run a bounded, typed full or quick SQLite integrity check.
backup(destination_directory) Create a verified online backup in a new exclusive directory.
list_failed(limit=100, offset=0) Inspect dead-letter jobs.
retry_failed(message_id) Non-blockingly move a dead-letter job back to ready, or raise Full.
purge(older_than, include_failed=False) Delete old terminal records.
vacuum() Compact the shared SQLite database. Run during a maintenance window.

Runtime diagnostics

Capture a typed, immutable operational snapshot without opening SQLite directly:

import json

from localqueue import SimpleQueue


queue = SimpleQueue("./data")
report = queue.diagnostics()

print(report)
print(json.dumps(report.to_dict(), indent=2))
queue.close()

Diagnostics schema v2 reports logical counts, configured capacity, pending jobs, available slots, and ages for the selected queue together with effective SQLite settings and best-effort shared database/WAL/SHM sizes. It is read-only and does not reclaim leases, checkpoint WAL, or run an integrity check. See the runtime diagnostics reference for field types, snapshot semantics, clock limitations, and the boundary with integrity/backup maintenance.

Integrity checks and online backups

Run explicit SQLite maintenance without reaching into the native connection:

from localqueue import SimpleQueue


queue = SimpleQueue("./data")
integrity = queue.check_integrity()
if integrity.ok:
    backup = queue.backup("./backups/2026-07-22")
    print(backup.to_dict())
queue.close()

Backups use SQLite's Online Backup API and remain consistent while other connections produce and consume jobs. The destination directory is reserved exclusively and must not already exist. See the maintenance reference for result fields, locking and latency, filesystem requirements, error semantics, independent verification, and recovery steps.

Architecture

The public API is a small Python facade over a native PyO3 extension. Rust owns the transactional state machine, while SQLite WAL mode provides local persistence and coordinates competing writers.

Python application
       │
       ▼
SimpleQueue / Worker       Python API and serialization
       │
       ▼
Rust native extension      leases, receipts, retries, transactions
       │
       ▼
localqueue.db              SQLite WAL, one machine

All queue state lives in one SQLite table. Claims and multi-step transitions use immediate transactions so concurrent processes cannot reserve the same delivery. This is local infrastructure for a shared database on one machine, not a distributed message broker.

Benchmarks

The canonical single-process benchmark is run with the optional benchmark extra:

uv sync --extra benchmark
uv run python -m localqueue.benchmark --profile smoke --output smoke.json
uv run python -m localqueue.benchmark --profile multiprocess-ci --output multiprocess.json

See the benchmark guide for NORMAL/FULL durability and report interpretation. Benchmark output is evidence about a particular host, filesystem, and run; it is not a product performance promise.

Development

Build the extension in a local virtual environment and run the test suite:

uv sync --extra dev
uv run maturin develop
uv run pytest

Run the configured strict type check for the production package:

uv run pyrefly check --progress-bar no

Rust quality checks:

cargo fmt --all --check
cargo clippy --locked --all-targets --all-features -- -D warnings

Build a release wheel:

uv run maturin build --release --locked

License

Licensed under the Apache License 2.0.

Metadata

Release files for localqueue 1.3.0

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

Source distribution (sdist)

Source distribution for localqueue 1.3.0
File Size Uploaded
localqueue-1.3.0.tar.gz 489.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for localqueue 1.3.0
File
localqueue-1.3.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
localqueue-1.3.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
localqueue-1.3.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
localqueue-1.3.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
localqueue-1.3.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
localqueue-1.3.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
localqueue-1.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
localqueue-1.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
localqueue-1.3.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
localqueue-1.3.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
localqueue-1.3.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
localqueue-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
localqueue-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
localqueue-1.3.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
localqueue-1.3.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
localqueue-1.3.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
localqueue-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
localqueue-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
localqueue-1.3.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
localqueue-1.3.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
localqueue-1.3.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
localqueue-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
localqueue-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
localqueue-1.3.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
localqueue-1.3.0-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details

Total release size: 34.4 MB

Release files / localqueue-1.3.0.tar.gz

Download URL localqueue-1.3.0.tar.gz
Size 489.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8d84a3e4bdc0e27751dd280b2e15a1b21588cafecb5942b767fb7077cd194572
BLAKE2b-256 checksum
How to use checksums
f402061298b5cf6d9b71093b248d86551e950a20efeee1116ea9943fc43fb4de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp314-cp314-win_amd64.whl

Download URL localqueue-1.3.0-cp314-cp314-win_amd64.whl
Size 1.2 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
0208960d56743bfcae4fc375fa0770845019d3a5dbb26cc906d1a27e974a4d6d
BLAKE2b-256 checksum
How to use checksums
401b4117aad5094cdcbcb52f0553bfe94fc0c9d80a93f6b36268efe152c49d72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL localqueue-1.3.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.5 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
cbd6d9b746c76e3f20558ad7dd51cce3827762f2bc9198e112870aedcc60d325
BLAKE2b-256 checksum
How to use checksums
f61380dea6f6237ab26364be8a7a32ad0c4d509529dcc755a8228e01798d688d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL localqueue-1.3.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.3 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
a957e27a1e18248e9a7ba41a52c39cbd26a37294de12510cf9ed0480667fc2a4
BLAKE2b-256 checksum
How to use checksums
c8ea16e1b7ecc50cdad0f8dd6bb2ed5ece11db8b051d499a9f9d63989e78009d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL localqueue-1.3.0-cp314-cp314-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6e6e42104a663e95b87cf6181382b982f68c8522be0b5e348bcf3696bd134312
BLAKE2b-256 checksum
How to use checksums
d6e6f31f4d6ae388a5e37794d2d34a10d50dde7c6dd13b61e2e99ef8becbe736
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp314-cp314-macosx_10_12_x86_64.whl

Download URL localqueue-1.3.0-cp314-cp314-macosx_10_12_x86_64.whl
Size 1.4 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
1ee8e9f201aa379aee0ef8c84137a9c98ff612be265d6f9db846b53160628813
BLAKE2b-256 checksum
How to use checksums
6877f437c91c29c64507cfc6d582ec20991e3c4bc4caa14cd5ef48da1ad82a3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp313-cp313-win_amd64.whl

Download URL localqueue-1.3.0-cp313-cp313-win_amd64.whl
Size 1.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
b615175786001657e5a3c1f594301a426e639006617efea3421e59d07ece82ed
BLAKE2b-256 checksum
How to use checksums
e9dcd583d79d9253d4db4797b16934b7021cdab461cdacbfc697b539c7034f3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL localqueue-1.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.5 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
34d2546623d47b71b16b31fb294a6b12239c6fa56e38130619d06a3a64be2681
BLAKE2b-256 checksum
How to use checksums
3e5788ee527fd0826d38ca6fe116a6093b834bee9719fe1ca0e8913f36d938e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL localqueue-1.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.3 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
6b3efdc806531b2f215027a5aa623a518fa6b45122b53d2e6faf294b4dfb1428
BLAKE2b-256 checksum
How to use checksums
41cb5a3b07d6e25210df4c7e03305d79768b4c327b3d77b082fa0e536ca298c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL localqueue-1.3.0-cp313-cp313-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8eac32305abab46a5507b133d13787f35b0c90a0f1e7a6a654b335fd5f9809a1
BLAKE2b-256 checksum
How to use checksums
49b4d820890e3cad8febbfc2ddb780a135dfa037531774876dfe2d4b1bdef4ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp313-cp313-macosx_10_12_x86_64.whl

Download URL localqueue-1.3.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 1.4 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
28450bc14016dbce7fe5b91c4edc6cf1f7bdb2c3a252f8b18f9d16701f2f676e
BLAKE2b-256 checksum
How to use checksums
ce0631d6169fb2d068c2186e1fadf7cff16bef249cf1b7f06d664980d4388e7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp312-cp312-win_amd64.whl

Download URL localqueue-1.3.0-cp312-cp312-win_amd64.whl
Size 1.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
d6e8990dff5500576212c8bc7708bcc10a3b5363bbda0599dcb26c3e94b2d0d7
BLAKE2b-256 checksum
How to use checksums
e234725a31ac0633fc28804ff9e50b1c5e17a69e99fd515fc110119bd29b043a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL localqueue-1.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.5 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2c353b549a8c6a5725098e97f00789c9a2193365f72c143a586d0d683ac82da1
BLAKE2b-256 checksum
How to use checksums
c31bd514789d86c001d8e5e6312a8e3dc2214c51452b14e7d129ac07c67a969b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL localqueue-1.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.3 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
bb2055cfe2522747d8dce87ab2bd79e2c49e1599a69826c2d13b20aa2ea729f6
BLAKE2b-256 checksum
How to use checksums
2fc5122ddd42da487981ef9f53842a17bc9f1e43273dff78fb24aff081484387
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL localqueue-1.3.0-cp312-cp312-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
020a55a6c247ee9f9cb1542fd8009c090c8aed845ac9f7132b6bdc22ff829aba
BLAKE2b-256 checksum
How to use checksums
f2003f6762adf75d70783d92c95e36f8e74e72a4929dde0385997eef2b4e6de4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL localqueue-1.3.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 1.4 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5ea9135e647badb7ec0cbde169869d7a8d7a9b9f94287a93bcfc8170baabd66a
BLAKE2b-256 checksum
How to use checksums
4518f9823bce2440a4677436e45ddfd5c8ea8b13e34bcec16aa390452b84761e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp311-cp311-win_amd64.whl

Download URL localqueue-1.3.0-cp311-cp311-win_amd64.whl
Size 1.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
1eaef100a3ad98c0369c549dd6176a96c5c79ba82fbb7632f4c3da0c6c326439
BLAKE2b-256 checksum
How to use checksums
5d635d252f226894fae988888e392a9195382c0df3b3e8fe541921f86492c5b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL localqueue-1.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.5 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5c56b2a989dc7f2e0560051fcc9200f5cce38dea7f26b7925f6f817d5b153f40
BLAKE2b-256 checksum
How to use checksums
6bb4c86d0128a7a5853c62e50594bf305024fb29189a7a1af2e7c04d75244621
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL localqueue-1.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.3 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
f392f74cac89efab758c3dc05ce52153488fb6368e3d23506f24d6c189597151
BLAKE2b-256 checksum
How to use checksums
891c1830574b4227202768287da96f4666dd307960b1657cfee29023f831b9e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL localqueue-1.3.0-cp311-cp311-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ecc119f98ffe4820a37d1a95b5459f8c4101546581945e501ff542ae401349ca
BLAKE2b-256 checksum
How to use checksums
5dcb64492a3b9cde60414e17a2910c0719be274ff783d28de25b675195f4ee09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL localqueue-1.3.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 1.4 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
9d5505c61873f35870c2fbfcb4f5a1b69e1a9ebfe7c249ba24ff3a370a0aecea
BLAKE2b-256 checksum
How to use checksums
28f79879c90f6726edc8c25e4ec036909239d365782d3d859402c95be7f76a61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp310-cp310-win_amd64.whl

Download URL localqueue-1.3.0-cp310-cp310-win_amd64.whl
Size 1.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
1fd5d279fe0b2e00af0dd3e5fc9bab47671dd74d5b7c314ff660e95ac23b710d
BLAKE2b-256 checksum
How to use checksums
1dc84fc8fea8805ea299d0c361427024e16b824617ff07900b81d5059a89a17d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL localqueue-1.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.5 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
242a83e02d326ba93eaf66f2df88ebde5853f8d26b847d97b05cb695dc123221
BLAKE2b-256 checksum
How to use checksums
f72ef0d1643d45cf41def03b560da499646a6e05a2a02233b4290c208fd49b8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL localqueue-1.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.3 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
eb14dda223928597c345ba517bcbf0bfc26925e2880dae26cffef76c6c3890e6
BLAKE2b-256 checksum
How to use checksums
992a3232ef360c68a8a9766295a529f35925bf678afb38a8d41ae256afc13917
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL localqueue-1.3.0-cp310-cp310-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
19d40e8b85ad3316abddddcd2fd76e455bf49381dac0ce50d58e65dbebe5eba9
BLAKE2b-256 checksum
How to use checksums
7c8fd3d91d93dc9cf5ce2a0ae0f8ef04d5e8f6cb06c1ac9cc3d2ac91b38fc83c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / localqueue-1.3.0-cp310-cp310-macosx_10_12_x86_64.whl

Download URL localqueue-1.3.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 1.4 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
6824f034c34e011c3cccef6396c5693d4ff37b17e155089d47ceab625e37326f
BLAKE2b-256 checksum
How to use checksums
5b0b5df767affea57a1137b1483c8ca6b7efdee34fc2462555ee1f8ee4687259
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

1.4.1

21 release files

1.4.0

21 release files

This release

1.3.0 This release

26 release files

1.2.0

26 release files

1.1.2

32 release files

1.1.1

32 release files

1.1.0

32 release files

1.0.1

32 release files

1.0.0

32 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

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