Skip to main content
http://i.imgur.com/jCPNyOa.png

asynq is a library for asynchronous programming in Python with a focus on batching requests to external services. It also provides seamless interoperability with synchronous code, support for asynchronous context managers, and tools to make writing and testing asynchronous code easier. asynq was developed at Quora and is a core component of Quora’s architecture. See the original blog post here.

The most important use case for asynq is batching. For many storage services (e.g., memcache, redis) it is far faster to make a single request that fetches many keys at once than to make many requests that each fetch a single key. The asynq framework makes it easy to write code that takes advantage of batching without radical changes in code structure from code that does not use batching.

For example, synchronous code to retrieve the names of the authors of a list of Quora answers may look like this:

def all_author_names(aids):
    uids = [author_of_answer(aid) for aid in aids]
    names = [name_of_user(uid) for uid in uids]
    return names

Here, each call to author_of_answer and name_of_user would result in a memcache request. Converted to use asynq, this code would look like:

@asynq()
def all_author_names(aids):
    uids = yield [author_of_answer.asynq(aid) for aid in aids]
    names = yield [name_of_user.asynq(uid) for uid in uids]
    return names

All author_of_answer calls will be combined into a single memcache request, as will all of the name_of_user calls.

Futures

Futures are the basic building blocks of asynq’s programming model. The scheduler keeps track of futures and attempts to schedule them in an efficient way. asynq uses its own hierarchy of Future classes, rooted in asynq.FutureBase. Futures have a .value() method that computes their value if necessary and then returns it.

The following are the most important Future classes used in asynq:

  • AsyncTask, a Future representing the execution of an asynchronous function (see below). Normally created by calling .asynq() on an asynchronous function.

  • ConstFuture, a Future whose value is known at creation time. This is useful when you need to pass a Future somewhere, but no computation is actually needed.

  • BatchBase and BatchItemBase, the building blocks for doing batching. See below for details.

Decorators and asynchronous functions

asynq’s asynchronous functions are implemented as Python generator functions. Every time an asynchronous functions yields one or more Futures, it cedes control the asynq scheduler, which will resolve the futures that were yielded and continue running the function after the futures have been computed.

The framework requires usage of the @asynq() decorator on all asynchronous functions. This decorator wraps the generator function so that it can be called like a normal, synchronous function. It also creates a .asynq attribute on the function that allows calling the function asynchronously. Calling this attribute will return an AsyncTask object corresponding to the function.

You can call an asynchronous function synchronously like this:

result = async_fn(a, b)

and asynchronously like this:

result = yield async_fn.asynq(a, b)

Calling async_fn.asynq(a, b).value() has the same result as async_fn(a, b).

The decorator has a pure=True option that disables the .asynq attribute and instead makes the function itself asynchronous, so that calling it returns an AsyncTask. We recommend to use this option only in special cases like decorators for asynchronous functions.

asynq also provides an @async_proxy() decorator for functions that return a Future directly. Functions decorated with @async_proxy() look like @asynq() functions externally. An example use case is a function that takes either an asynchronous or a synchronous function, and calls it accordingly:

@async_proxy()
def async_call(fn, *args, **kwargs):
    if is_async_fn(fn):
        # Returns an AsyncTask
        return fn.asynq(*args, **kwargs)
    return ConstFuture(fn(*args, **kwargs))

Batching

Batching is at the core of what makes asynq useful. To implement batching, you need to subclass asynq.BatchItemBase and asynq.BatchBase. The first represents a single entry in a batch (e.g., a single memcache key to fetch) and the second is responsible for executing the batch when the scheduler requests it.

Batch items usually do not require much logic beyond registering themselves with the currently active batch in __init__. Batches need to override the _try_switch_active_batch method, which changes the batch that is currently active, and the _flush method that executes it. This method should call .set_value() on all the items in the batch.

An example implementation of batching for memcache is in the asynq/examples/batching.py file. The framework also provides a DebugBatchItem for testing.

Most users of asynq should not need to implement batches frequently. At Quora, we use thousands of asynchronous functions, but only five BatchBase subclasses.

Contexts

asynq provides support for Python context managers that are automatically activated and deactivated when a particular task is scheduled. This feature is necessary because the scheduler can schedule tasks in arbitrary order. For example, consider the following code:

@asynq()
def show_warning():
    yield do_something_that_creates_a_warning.asynq()

@asynq()
def suppress_warning():
    with warnings.catch_warnings():
        yield show_warning.asynq()

@asynq()
def caller():
    yield show_warning.asynq(), suppress_warning.asynq()

This code should show only one warning, because only the second call to show_warning is within a catch_warnings() context, but depending on how the scheduler happens to execute these functions, the code that shows the warning may also be executed while catch_warnings() is active.

To remedy this problem, you should use an AsyncContext, which will be automatically paused when the task that created it is no longer active and resumed when it becomes active again. An asynq-compatible version of catch_warnings would look something like this:

class catch_warnings(asynq.AsyncContext):
    def pause(self):
        stop_catching_warnings()

    def resume(self):
        start_catching_warnings()

Debugging

Because the asynq scheduler is invoked every time an asynchronous function is called, and it can invoke arbitrary other active futures, normal Python stack traces become useless in a sufficiently complicated application built on asynq. To make debugging easier, the framework provides the ability to generate a custom asynq stack trace, which shows how each active asynchronous function was invoked.

The asynq.debug.dump_asynq_stack() method can be used to print this stack, similar to traceback.print_stack(). The framework also registers a hook to print out the asynq stack when an exception happens.

Tools

asynq provides a number of additional tools to make it easier to write asynchronous code. Some of these are in the asynq.tools module. These tools include:

  • asynq.async_call calls a function asynchronously only if it is asynchronous. This can be useful when calling an overridden method that is asynchronous on some child classes but not on others.

  • asynq.tools.call_with_context calls an asynchronous function within the provided context manager. This is helpful in cases where you need to yield multiple tasks at once, but only one needs to be within the context.

  • asynq.tools.afilter and asynq.tools.asorted are equivalents of the standard filter and sorted functions that take asynchronous functions as their filter and compare functions.

  • asynq.tools.acached_per_instance caches an asynchronous instance method.

  • asynq.tools.deduplicate prevents multiple simultaneous calls to the same asynchronous function.

  • The asynq.mock module is an enhancement to the standard mock module that makes it painless to mock asynchronous functions. Without this module, mocking any asynchronous function will often also require mocking its .asynq attribute. We recommend using asynq.mock.patch for all mocking in projects that use asynq.

  • The asynq.generator module provides an experimental implementation of asynchronous generators, which can produce a sequence of values while also using asynq’s batching support.

Compatibility

asynq runs on Python 3.8 and newer.

Previous versions of asynq used the name async for the @asynq() decorator and the .asynq attribute. Because async is a keyword in recent versions of Python 3, we now use the spelling asynq in both places. asynq version 1.3.0 drops support for the old spelling.

Contributors

Alex Yakunin, Jelle Zijlstra, Manan Nayak, Martin Michelsen, Shrey Banga, Suren Nihalani, Suchir Balaji and other engineers at Quora.

Release files for asynq 1.6.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 asynq 1.6.0
File Size Uploaded
asynq-1.6.0.tar.gz 65.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for asynq 1.6.0
File
asynq-1.6.0-pp310-pypy310_pp73-win_amd64.whl PyPy 3.10 PyPy 3.10 7.3 Windows x86-64 Details
asynq-1.6.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.17+ x86-64, Linux glibc 2.5+ x86-64 Details
asynq-1.6.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.17+ x86-32, Linux glibc 2.5+ x86-32 Details
asynq-1.6.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl PyPy 3.10 PyPy 3.10 7.3 macOS 10.15+ x86-64 Details
asynq-1.6.0-pp39-pypy39_pp73-win_amd64.whl PyPy 3.9 PyPy 3.9 7.3 Windows x86-64 Details
asynq-1.6.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.5+ x86-64, Linux glibc 2.17+ x86-64 Details
asynq-1.6.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details
asynq-1.6.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl PyPy 3.9 PyPy 3.9 7.3 macOS 10.15+ x86-64 Details
asynq-1.6.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
asynq-1.6.0-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details
asynq-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
asynq-1.6.0-cp313-cp313-musllinux_1_2_i686.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-32 Details
asynq-1.6.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
asynq-1.6.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.13 CPython 3.13 Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details
asynq-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
asynq-1.6.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
asynq-1.6.0-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details
asynq-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
asynq-1.6.0-cp312-cp312-musllinux_1_2_i686.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-32 Details
asynq-1.6.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
asynq-1.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-32, Linux glibc 2.5+ x86-32 Details
asynq-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
asynq-1.6.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
asynq-1.6.0-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
asynq-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
asynq-1.6.0-cp311-cp311-musllinux_1_2_i686.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-32 Details
asynq-1.6.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
asynq-1.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-32, Linux glibc 2.5+ x86-32 Details
asynq-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
asynq-1.6.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
asynq-1.6.0-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
asynq-1.6.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
asynq-1.6.0-cp310-cp310-musllinux_1_2_i686.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-32 Details
asynq-1.6.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
asynq-1.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.10 CPython 3.10 Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details
asynq-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
asynq-1.6.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
asynq-1.6.0-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
asynq-1.6.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details
asynq-1.6.0-cp39-cp39-musllinux_1_2_i686.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-32 Details
asynq-1.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
asynq-1.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.9 CPython 3.9 Linux glibc 2.5+ x86-32, Linux glibc 2.17+ x86-32 Details
asynq-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details

Total release size: 89.2 MB

Release files / asynq-1.6.0.tar.gz

Download URL asynq-1.6.0.tar.gz
Size 65.9 kB
Tags Source
SHA-256 checksum
How to use checksums
9d30cde5dbfa5fc5d8b0bbe14c8ffe2d54320ee0db8936fd47da53a2b296a22f
BLAKE2b-256 checksum
How to use checksums
13ac89fc0703363062e591e3eb1b1905c4d2613b98f11a9aa0ca919d65e5df15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-pp310-pypy310_pp73-win_amd64.whl

Download URL asynq-1.6.0-pp310-pypy310_pp73-win_amd64.whl
Size 579.6 kB
Tags PyPy 3.10 PyPy 3.10 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
8af8046407d49d87b1a38b724a8c5cc6ceb216e7d92e8f013c08b10894a4c5e3
BLAKE2b-256 checksum
How to use checksums
16cad8a1118a8f5cd4e2393673609f5e503646e27f32d1207c350c7009e5c420
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL asynq-1.6.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 675.7 kB
Tags Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
9093a542313aad2ce16b54a5440e003c036f2d6a4c04578c1befad20e6f88d43
BLAKE2b-256 checksum
How to use checksums
f111e2c4a91d804c4b772c2b377b1e3d59c16a9df1bd8ee49e4418521ef171c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL asynq-1.6.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 686.5 kB
Tags Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
bd460af82f2bcf8f954dab7d76fed4b1bb6d87332a695362dfcef824858761e8
BLAKE2b-256 checksum
How to use checksums
ee5ace3b9326f2e6334d4a6dc1a0d9e2731f4efb08333d391ee160393cdd0c19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl

Download URL asynq-1.6.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
Size 572.2 kB
Tags PyPy 3.10 PyPy 3.10 7.3 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
af2ee60be4cbe3e1c5f4e77466e2d1dbfa778dd254f66b911d656901ae3c3156
BLAKE2b-256 checksum
How to use checksums
273338bc60415f88e56e893de3800640d9aa1780f3b3c72ec300cf59bd3674ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-pp39-pypy39_pp73-win_amd64.whl

Download URL asynq-1.6.0-pp39-pypy39_pp73-win_amd64.whl
Size 578.6 kB
Tags PyPy 3.9 PyPy 3.9 7.3 Windows x86-64
SHA-256 checksum
How to use checksums
32683f7b4a65b910325adf4cd02f35e5632724bdf58f47d14572bbb8b4bcc9dc
BLAKE2b-256 checksum
How to use checksums
ab56144e1e21947add2430922c737aaab4e57eecac22a3bf47d55fb0bf2e986d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL asynq-1.6.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 674.2 kB
Tags Linux glibc 2.17+ x86-64 Linux glibc 2.5+ x86-64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
610a10973ddbcb7f77d46c9958acea1148697b53b605e2669573820add43c870
BLAKE2b-256 checksum
How to use checksums
4c50e37def8b6a712a4206338b4bddae62be7362cb45a6e1ce533596f9b29da0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL asynq-1.6.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 685.4 kB
Tags Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
f772192e500bb14f4bee4ab8822617b65e05b9505b1b9fef4a3c62d09f63520d
BLAKE2b-256 checksum
How to use checksums
b62f0ae278910d9e8346e1c704c5644ac045d69d3781b4e25ee11ff146a17ba5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl

Download URL asynq-1.6.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
Size 571.2 kB
Tags PyPy 3.9 PyPy 3.9 7.3 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
b05b354d8a51f44ba4c6e6d1519f2d89effe7a50ba7c495fc8ddc3361c982e9c
BLAKE2b-256 checksum
How to use checksums
2bf3e62108910ba42d6f7afe05b88bb4ceb30e42ed092f9cfc9761036ff3b60a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp313-cp313-win_amd64.whl

Download URL asynq-1.6.0-cp313-cp313-win_amd64.whl
Size 636.3 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
730f7c0cf23eb4826fdb4998481d99622167c9d895c278d84467bc15b3710615
BLAKE2b-256 checksum
How to use checksums
98f959dc82934c95d3b5ab4861001a20c58977a96eec85fb606df5137ffcb257
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp313-cp313-win32.whl

Download URL asynq-1.6.0-cp313-cp313-win32.whl
Size 566.9 kB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
299c1829a1747dcb58305dbc71191461004a28a48e780d471ace979343f3def8
BLAKE2b-256 checksum
How to use checksums
8bbfe993c4ccee91ac51119c8745708ef4e1ef30fea19cd157270083f259b6ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL asynq-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 3.8 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
75996e16bc7ff912649453ed979352705b7349aa0435696e44c74c45aae83c82
BLAKE2b-256 checksum
How to use checksums
e26ac4893f281b4dfdbe7600fce72f5a7d4c42bbf309c939dfbc70e09680593f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp313-cp313-musllinux_1_2_i686.whl

Download URL asynq-1.6.0-cp313-cp313-musllinux_1_2_i686.whl
Size 3.7 MB
Tags CPython 3.13 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
0b245ecf71cdcf85406add84341d30f30f959a2e39a11d0afb981a84288d22f6
BLAKE2b-256 checksum
How to use checksums
b6f25c04add55d6512e705382f14752201470ec2730e2cd0725eed7607c034bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL asynq-1.6.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.9 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
534f80beeb1839169e1084a1c07ff17883269f136e2fe5de7959cfb291e4db85
BLAKE2b-256 checksum
How to use checksums
11a7b09af5a9b111fcba31498d1ce634166e447e1e35e80badef3cd778b8f2ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL asynq-1.6.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 3.7 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
d03af78701fef8110f00ddc82d7385d66821d67e814b21f36f9e33359854f47f
BLAKE2b-256 checksum
How to use checksums
04a9869e8f32371651bcfe67137e1ec0232f1edea2f451862b1961bb56b558c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl

Download URL asynq-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl
Size 697.3 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
b45de0ab186ec31562c961e1aa6a16722671cdf215a990d30091e8baadb0f414
BLAKE2b-256 checksum
How to use checksums
27677f332985fed1a71a5c53d36c348f57515277a1f5f2f0d7286f064748ebb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp312-cp312-win_amd64.whl

Download URL asynq-1.6.0-cp312-cp312-win_amd64.whl
Size 643.8 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
7f6e5d691d5086d44c5216111281254fbf01f91937502f0994b165919e1a07b5
BLAKE2b-256 checksum
How to use checksums
84e144e4bbcb0b04271118ecac56c4c9db0ca65a5760b47f339cb7c4803df07a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp312-cp312-win32.whl

Download URL asynq-1.6.0-cp312-cp312-win32.whl
Size 572.0 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
fa2c92ced5e4db2ec1413ea57fb71c10704b4986eb27cdf154a9bd3a11fccde5
BLAKE2b-256 checksum
How to use checksums
07e147191a022da08b3afa6b527d7ea9cd34dbe06906c166b12c1ba6029b2c26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL asynq-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 3.9 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
4c64fb28ee6c712e6b73434af63af611c1725767b223c5a78bed32ee1c076103
BLAKE2b-256 checksum
How to use checksums
5e7b216b20b1e7993661262d4bf1ac0834274908435938c473b90240eb8dc0cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp312-cp312-musllinux_1_2_i686.whl

Download URL asynq-1.6.0-cp312-cp312-musllinux_1_2_i686.whl
Size 3.8 MB
Tags CPython 3.12 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
4aca4ea828c7445fbf695e1b65798cb6b08ebaa7e53ba21fc0681992345fe3d2
BLAKE2b-256 checksum
How to use checksums
9beaa8aab7c494a8a4190fa5960d4d3d3707878ff633019f2fc0720899193ba0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL asynq-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.0 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2e54ec34d7983d1493e4e786c8a9de37efbf73d6b87f5fce2373b05bb3d73853
BLAKE2b-256 checksum
How to use checksums
1bd2190d7afe5a6a63f0397d2651aeed8e35b972288da7379885c4819296eb25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL asynq-1.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 3.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
23ac3e292ba1e774541b764f1003da15b8be2e11cc970e370052e3326e43090b
BLAKE2b-256 checksum
How to use checksums
e66f00f56d7f6430f3497b6a8bf1b626468f7dc265de6f56cf6b5ba81f65456a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl

Download URL asynq-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl
Size 711.5 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
e7fb47403fb05dda9cd54f055b1b5065e17c5768ffe7b787fb0206c4086d4b68
BLAKE2b-256 checksum
How to use checksums
cf9877726a172bc7f004b244c5819b0c719d6979d9c0232d8b833dc74dd016f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp311-cp311-win_amd64.whl

Download URL asynq-1.6.0-cp311-cp311-win_amd64.whl
Size 655.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
6f1656d719e4ff1e14b3763e1df8768e2f22b3231552a3cc96cec1e295bf99c9
BLAKE2b-256 checksum
How to use checksums
1a4fb054ee3e4f6198b29f2b9f05403575d113225e7041c8bcf9707ee7a4d2e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp311-cp311-win32.whl

Download URL asynq-1.6.0-cp311-cp311-win32.whl
Size 585.7 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
e96bbea2f85825936bb84cb23ad741e9a90b67b32eb032511cd4121d84f8082b
BLAKE2b-256 checksum
How to use checksums
b235ea78df05140641d2268c27473964869d0713e613cccb168d0b8aee899a08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL asynq-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 3.9 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
acc3e944cfeea459c2de97931af144954cebba4062702228090f9a58a25186bc
BLAKE2b-256 checksum
How to use checksums
33de2c4113f5357e26427b29b87490115930682ec19d026ae9ce2ed9c961e709
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp311-cp311-musllinux_1_2_i686.whl

Download URL asynq-1.6.0-cp311-cp311-musllinux_1_2_i686.whl
Size 3.8 MB
Tags CPython 3.11 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
c28963942bada5f145ec4f65da4e2c5b28ae85d7a77a287ede21f159d83acdb4
BLAKE2b-256 checksum
How to use checksums
ce79b08e95465f8744584c3eabb3fcef982d84b58c00a817f1dea873ded12c29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL asynq-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 4.0 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
10ecf43f0bb3f7c39bcdb560ce4e2bad9f08855ea1e718023a521921619fc524
BLAKE2b-256 checksum
How to use checksums
03c0b8358695e4c02f3280d28f7099f126afc81c3b86d9ea1b1eb529d5537e6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL asynq-1.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 3.8 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
124dc9215eb9058c7a44965ccc7e8a4c67000ae4b78127e89a8479890e1a966f
BLAKE2b-256 checksum
How to use checksums
7c6b81f641704212545c27c6d0b204cc88c1417bf7e14117b14d309f24dc1f4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL asynq-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 713.7 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
e62e3857dff2d0503853956a13d3fb42cda1d6d0cce06998c142006cb396efbe
BLAKE2b-256 checksum
How to use checksums
8a9ab64924d1aaf0281f6f955437ab672d9fcfc802ed40e29072b566f0983048
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp310-cp310-win_amd64.whl

Download URL asynq-1.6.0-cp310-cp310-win_amd64.whl
Size 652.7 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
c08f0fc1b85a7a3ce6921c7eeb8a3d85c7aca65e2d03063a1af315dd3e202fdc
BLAKE2b-256 checksum
How to use checksums
93bb2a206c15e6ad3364131cd868ac4c158369ed5b2eaa9636973dfe921ed36a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp310-cp310-win32.whl

Download URL asynq-1.6.0-cp310-cp310-win32.whl
Size 587.0 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
756ee36e2c6547b58822028858595b66aca9a0a9163165d4b526b37182279274
BLAKE2b-256 checksum
How to use checksums
9cbb147419609d3aa4db9c85c2844c3685828dfcd6cfd65cd91c410fa584f6bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL asynq-1.6.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 3.6 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
193be10639c18497bc5bc361bd2bc75f3c3c8c6984f76d6f8dfb4106dfc3234f
BLAKE2b-256 checksum
How to use checksums
a337fcc38dd24e3f9064a06a16228410b5e2d27c8ef52abca2e61c530eca4879
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp310-cp310-musllinux_1_2_i686.whl

Download URL asynq-1.6.0-cp310-cp310-musllinux_1_2_i686.whl
Size 3.4 MB
Tags CPython 3.10 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
97c3cca777618ba5360f253a0d1d289ef8b2186117fb8f31f1aad03aafc4067f
BLAKE2b-256 checksum
How to use checksums
03cf401749310817af312be42d1843ee745cc79747771b071896e01dc7b8dcd7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL asynq-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.7 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f2c52d498bcdc66ff142b071bfde10e5a75e313fcae05652b17c29652b8349a5
BLAKE2b-256 checksum
How to use checksums
3cb577ca1e4e521889cd73960fc6cddfef5f22d09f05154d3e5fe03315564408
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL asynq-1.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 3.5 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
5c840ebc07e1c351d969fbe4dedaf9d7fe38146501e087c3e353e05241b9942d
BLAKE2b-256 checksum
How to use checksums
d449fc4ea89860df61088ea65f84d4e147b65790290ef11b62563ae35444cdd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl

Download URL asynq-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl
Size 710.7 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
998eace188522a5ee8bd9ebed75dc05dcb7cfd4d076935b568f3ab83eb53bd99
BLAKE2b-256 checksum
How to use checksums
410030ffa96659b85596bbd11c10a51e3a44ae8ebda8758e6cf2c3403e077429
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp39-cp39-win_amd64.whl

Download URL asynq-1.6.0-cp39-cp39-win_amd64.whl
Size 656.3 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
780f7158aa5d11a4f6a9a14977c00ae7dd40c1ac7e831a8af251ac443a3d2c2e
BLAKE2b-256 checksum
How to use checksums
86ddfc39166b27faf5e2fd6539adf72238fc2f1201ad8e099d8a26f71e62e607
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp39-cp39-win32.whl

Download URL asynq-1.6.0-cp39-cp39-win32.whl
Size 590.6 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
c986be03d5278b03a7c042086aca96de44e0d7889c80d506d44d24224cac6ef4
BLAKE2b-256 checksum
How to use checksums
8274fe6ba706679e3cfb7efd4e112b3a8f813ee5cd4f264657fb7ff7d1e9b27f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL asynq-1.6.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 3.6 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e03fe9da34d593ee091608e56d17a1a5034618cbb0b576980e971519ec75880d
BLAKE2b-256 checksum
How to use checksums
0e361f1b22a9a99b09e37e1fada39dea67c53b1ae45d7ad480f0ba602343a6db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp39-cp39-musllinux_1_2_i686.whl

Download URL asynq-1.6.0-cp39-cp39-musllinux_1_2_i686.whl
Size 3.5 MB
Tags CPython 3.9 Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
aaf947d26e0b0b4de006f1d42e96eb5648bc8398c4ed2f935ab2775aa23f8603
BLAKE2b-256 checksum
How to use checksums
1b81b43d38aeacec51e673704eeca34b4e2d539640f63714764bb3e33431168e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL asynq-1.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 3.7 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0c855fe83ec96ad54b1bc3b123cff63eb5bc334afa1b7a7c6fdd117c6c718fd6
BLAKE2b-256 checksum
How to use checksums
a13646ae34140545377f1280eecc2697139a4631cce9cf3807b3dded98a3257b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl

Download URL asynq-1.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Size 3.5 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-32 Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
fc2a12d7b915571272e6e3ff2c202fedb12108ee45de60e364b3fe140cae1413
BLAKE2b-256 checksum
How to use checksums
0ec00fb3b9dc474f6cfae09bf95a8ddce8a6ecd783eebac17fd84f6681942be3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release files / asynq-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl

Download URL asynq-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl
Size 715.0 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
f369151371573a716e898890bcb2cf099e39c6e47e7ed9b8649890bae6836d1b
BLAKE2b-256 checksum
How to use checksums
6e888b7a29a664eccda6fddeb99ef11fc53679442f7102275ff7cd725e5aa2b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release history Release notifications | RSS feed

This release

1.6.0 This release

44 release files

1.5.1

55 release files

1.5.0

55 release files

1.4.0

25 release files

1.3.0

6 release files

1.2.0

5 release files

1.1.0

6 release files

1.0.1

1 release file

1.0

1 release file

0.1.4

1 release file

0.1.3

1 release file

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