asks - async http

async, async-requests, concurrency, curio, http, io, network, python3, requests, trio
pip install asks==3.0.0


Build Status Docs Status


asks is an async requests-like HTTP lib, for use in conjunction with the wonderful curio and trio async libs.

asks aims to have a mostly familiar API, using simple functions/methods like get() for getting and post() for posting. At the heart of asks is a session class which makes interacting with the web in a sustained and fluid way fast, efficient, and simple. Check out the examples!

Check the docs!

Above you'll find detailed docs with a large number of simple examples to help you get off the ground in no time.


Requires: Python 3.6.2 or newer.

pip install asks


# one request
# A little silly to async one request, but not without its use!
import asks
import anyio

async def example():
    r = await asks.get('')
# many requests
# make 1k api calls and store their response objects
# in a list.

import asks
import trio

path_list = ['','']

results = []

async def grabber(s, path):
    r = await s.get(path)

async def main(path_list):
    from asks.sessions import Session
    s = Session('', connections=2)
    async with trio.open_nursery() as n:
        for path in path_list:
            n.start_soon(grabber, s, path), path_list)


2.0.0 - Setting stream=True means that the response returned will be a StreamResponse object rather than the default Response object.

Shoutout to ##lp, and the fine peeps of 8banana