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.11 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]"
import asyncio

from localqueue.bus import (
    BaseEvent,
    CsvRow,
    CsvSource,
    EventBus,
    RetryPolicy,
    event,
)


@event(identity=("import_id", "external_id"))
class UserCreationRequested(BaseEvent):
    event_name = "user.creation-requested"

    import_id: str
    external_id: str
    name: str


bus = EventBus("./data")


@bus.handler(UserCreationRequested)
async def create_user(event: UserCreationRequested, ctx) -> None:
    await api.create_user(
        external_id=event.external_id,
        name=event.name,
        idempotency_key=ctx.event_id,
    )


creator = bus.subscription(UserCreationRequested.event_name)
creator.config.concurrency = 50
creator.config.retry = RetryPolicy.exponential(max_attempts=8)


@bus.source(CsvSource("users.csv"), checkpoint="users:2026-07")
def users(row: CsvRow) -> UserCreationRequested:
    return UserCreationRequested(
        import_id="2026-07",
        external_id=row["external_id"],
        name=row["name"],
    )


users.config.batch_size = 5_000
users.config.max_pending = 100_000


async def main() -> None:
    try:
        result = await bus.execute(users)
        result.raise_for_failures()
        print(result.items_committed, result.deliveries_acknowledged)
    finally:
        bus.close()


asyncio.run(main())

execute() resumes after interruption, starts registered local handlers when needed, and also allows worker processes sharing the database to participate. It waits for this execution's root and descendant deliveries—not global bus idleness. Failed deliveries are terminal and reported in ExecutionResult; raise_for_failures() makes failure explicit. External effects remain at-least-once, so use a stable idempotency key. The caller always owns bus.close().

Lower-level dispatch() plus standalone bus.run() producer/worker deployments remain supported. Each subscription is a durable queue, so local worker processes act as a consumer group. 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.4.1

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.4.1
File Size Uploaded
localqueue-1.4.1.tar.gz 646.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for localqueue 1.4.1
File
localqueue-1.4.1-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
localqueue-1.4.1-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.4.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
localqueue-1.4.1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
localqueue-1.4.1-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
localqueue-1.4.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
localqueue-1.4.1-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.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
localqueue-1.4.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
localqueue-1.4.1-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
localqueue-1.4.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
localqueue-1.4.1-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.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
localqueue-1.4.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
localqueue-1.4.1-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
localqueue-1.4.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
localqueue-1.4.1-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.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
localqueue-1.4.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
localqueue-1.4.1-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details

Total release size: 30.4 MB

Release files / localqueue-1.4.1.tar.gz

Download URL localqueue-1.4.1.tar.gz
Size 646.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8f936716283416f91cf9d2af142c5169fb8ea02075e9d57ea67c6f38a43a0b3b
BLAKE2b-256 checksum
How to use checksums
b0a0065a0c926b6e7296896653f4cc7ce4676843a39425dcfdd55e4bf50108ec
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.4.1-cp314-cp314-win_amd64.whl

Download URL localqueue-1.4.1-cp314-cp314-win_amd64.whl
Size 1.4 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
64a34c47fa90721758be83836eace3ff094cc1a345d31a55f2cce30d960d20b2
BLAKE2b-256 checksum
How to use checksums
a49010983a0ca92d73e633e75a8ab8b079ffdbddd192530ffb40cc3f6539bff8
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.4.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL localqueue-1.4.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8cdfdf7eea15bac63dec12dbf584642a8ff6b87fd2f9cbb8be46673973994c4d
BLAKE2b-256 checksum
How to use checksums
91475a06b03aafc8870c91757b1a3c3611c116851d3c0cb197cedd3432c33317
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.4.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL localqueue-1.4.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.5 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8e5f91f49553c6058c891eff911a3316355fa49174bb20beead9d6a71e514b46
BLAKE2b-256 checksum
How to use checksums
241e4006477c211cd870d0717deefd77d2dcdaebb9f60cacb31fdda11c75d459
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.4.1-cp314-cp314-macosx_11_0_arm64.whl

Download URL localqueue-1.4.1-cp314-cp314-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
92589c5f615fc67d2d3f8e8023c478400db94bf13e7c63319c56517ade999a21
BLAKE2b-256 checksum
How to use checksums
787c1b380d1e2af4eb8db85d1a9121aab7687f792dc268fcb025974ac9e34757
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.4.1-cp314-cp314-macosx_10_12_x86_64.whl

Download URL localqueue-1.4.1-cp314-cp314-macosx_10_12_x86_64.whl
Size 1.5 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a6ad61e08ca8ec119bd483f7dfba949886898ca4a1f9f487d79dd88e785f5ded
BLAKE2b-256 checksum
How to use checksums
b37f867be91f1b4b5b3473ed4ef8545e6709f06b607e6a94cc52380e2f7923f5
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.4.1-cp313-cp313-win_amd64.whl

Download URL localqueue-1.4.1-cp313-cp313-win_amd64.whl
Size 1.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
817a29d9c479bf91d93f3448d0233f692b190f31fa952fef39e31f4c37804cce
BLAKE2b-256 checksum
How to use checksums
28165a4cb31b058587c26de9719c48ee193014d7dbb7db0d3b02be646c0233de
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.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL localqueue-1.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
dbf5f1548a5ab20ab0211b1e1518e861f4c0b1117d855f6f7a1b06cd087a0df0
BLAKE2b-256 checksum
How to use checksums
cb812aa4ab3e8d4a372716186daa3e0b0e2bedbe2cb2a0fce9aa86bc22420b77
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.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL localqueue-1.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.5 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
9ba69cc977fcf0bb8a02bae4b81b780f96871ede1c1f3abe3672e53cdff77eda
BLAKE2b-256 checksum
How to use checksums
c145c7647544f95f42240135262f0835eac9bdceb13047e04d2a4b8a31cb259d
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.4.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL localqueue-1.4.1-cp313-cp313-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3794da340e582029b908e2208f919902327a06d5b252ae20f14e20ab714421a3
BLAKE2b-256 checksum
How to use checksums
21607926b4908586a84b254c421dad812f7f9a52d45014f0cf583f75c63be218
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.4.1-cp313-cp313-macosx_10_12_x86_64.whl

Download URL localqueue-1.4.1-cp313-cp313-macosx_10_12_x86_64.whl
Size 1.5 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f7b82767c9a5d3ae68c79789eaa219209aac0f5fc2cd625aecbbd80e4ac2c7be
BLAKE2b-256 checksum
How to use checksums
c9dbcf87fec0b87975ab02c5f398978ad86147842c7b185a763c1d94d0f4a084
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.4.1-cp312-cp312-win_amd64.whl

Download URL localqueue-1.4.1-cp312-cp312-win_amd64.whl
Size 1.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
2a831aa1efa12dd25ceb7dab0ce8bb1b5b23e6667ec2c0bba86a256b9395f372
BLAKE2b-256 checksum
How to use checksums
238ba4058ec0226afb6a16162fef6fc7b448b7383182dbe0ae584c16b8f3bbb6
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.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL localqueue-1.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
883b0a360f7a7f95c25b1265bc76833d298db1849fd7cd40b21e13a392c31ff7
BLAKE2b-256 checksum
How to use checksums
893dc2100aa9db3b4cdcac504ed51aacac1d1279b5adf2f4d214fe688249087a
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.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL localqueue-1.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.5 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
bf7b2822983cf6ae47d130c6b48ffc9f21650b47633eeaeb142fce40e39f1ea8
BLAKE2b-256 checksum
How to use checksums
381de3d71916dde258f7333e68b69ba1ab8df20002c89878dcd54d91b4b5aca9
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.4.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL localqueue-1.4.1-cp312-cp312-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2c3fe92ce1f5b90247808416b55c829eeb01cc6ba7d09262ce60a03490cd8584
BLAKE2b-256 checksum
How to use checksums
6b2b2e34f9c655251507dce3169367f82e307b8e76b293ee5c0ed2ec4973612d
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.4.1-cp312-cp312-macosx_10_12_x86_64.whl

Download URL localqueue-1.4.1-cp312-cp312-macosx_10_12_x86_64.whl
Size 1.5 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7399d6296399a336b595145af3044fb8922850737c44a19f10b0001550847142
BLAKE2b-256 checksum
How to use checksums
56c7f325f21a6fb1ec535a86cb5603dc4b9a08c9fe9c10de40a8f96406f9105d
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.4.1-cp311-cp311-win_amd64.whl

Download URL localqueue-1.4.1-cp311-cp311-win_amd64.whl
Size 1.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
89c42da5e0faee54e85271e1e1e202a3b7490f72c5c6bf84fd29a87ecc330779
BLAKE2b-256 checksum
How to use checksums
c45432f425d8f1bede7d13520d84b3ccf3f820ef6ea37fd7b85561f09de5bd5c
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.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL localqueue-1.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.6 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b859cd1740a8d446b05f964201454ca31ac48039e574af72f11d07dd5cb6f6c6
BLAKE2b-256 checksum
How to use checksums
ef8094f232865b8ca57cbded014f84ad0a9bbd8e57c8d5da3157877ae851205a
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.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL localqueue-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.5 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
ff8fdaaf08447baee0ac3b4d05b06523e787cca2a24e0cf86d3cd83e5e977083
BLAKE2b-256 checksum
How to use checksums
bd329f0606decd6fae917fe9ea76e04474c6e7a5a2db20f2269e5ed5d4eab920
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.4.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL localqueue-1.4.1-cp311-cp311-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
32c61bca7d457772a1a99c65b438faaf07f5911b4d82db9da06c1e847c13d411
BLAKE2b-256 checksum
How to use checksums
bba499f12cb65b92b80f75a226d11dc2ec816028c17d8f6a8a3a1f500c6e03dd
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.4.1-cp311-cp311-macosx_10_12_x86_64.whl

Download URL localqueue-1.4.1-cp311-cp311-macosx_10_12_x86_64.whl
Size 1.5 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
860389cc6b69c81e7d6b7e79792ca0faa71c76b0cdfd5fa2a47dbf5a09f6987d
BLAKE2b-256 checksum
How to use checksums
60b3c5b60bcdc4d02c074ab38355a461d89a63deb73d2fe1cfa927a1a122da45
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

This release

1.4.1 This release

21 release files

1.4.0

21 release files

1.3.0

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