All Projects → theelous3 → Asks

theelous3 / Asks

Licence: mit
Async requests-like httplib for python.

Programming Languages

python
139335 projects - #7 most used programming language
python3
1442 projects

Projects that are alternatives of or similar to Asks

Swoole Src
🚀 Coroutine-based concurrency library for PHP
Stars: ✭ 17,175 (+3903.5%)
Mutual labels:  async, concurrency, network
Lightio
LightIO is a userland implemented green thread library for ruby
Stars: ✭ 165 (-61.54%)
Mutual labels:  async, concurrency, io
python3-concurrency
Python3爬虫系列的理论验证,首先研究I/O模型,分别用Python实现了blocking I/O、nonblocking I/O、I/O multiplexing各模型下的TCP服务端和客户端。然后,研究同步I/O操作(依序下载、多进程并发、多线程并发)和异步I/O(asyncio)之间的效率差别
Stars: ✭ 49 (-88.58%)
Mutual labels:  concurrency, requests
hunt
A refined core library for D programming language. The module has concurrency / collections / event / io / logging / text / serialization and more.
Stars: ✭ 86 (-79.95%)
Mutual labels:  concurrency, io
Python3 Concurrency Pics 02
爬取 www.mzitu.com 全站图片,截至目前共5162个图集,16.5万多张美女图片,使用 asyncio 和 aiohttp 实现的异步版本只需要不到2小时就能爬取完成。按日期创建图集目录,保存更合理。控制台只显示下载的进度条,详细信息保存在日志文件中。支持异常处理,不会终止爬虫程序。失败的请求,下次再执行爬虫程序时会自动下载
Stars: ✭ 275 (-35.9%)
Mutual labels:  concurrency, requests
Pyee
A port of Node.js's EventEmitter to python
Stars: ✭ 236 (-44.99%)
Mutual labels:  async, concurrency
Network
C# Network Library
Stars: ✭ 237 (-44.76%)
Mutual labels:  async, network
Drone Core
The core crate for Drone, an Embedded Operating System.
Stars: ✭ 263 (-38.69%)
Mutual labels:  async, concurrency
Netdev
Asynchronous multi-vendor library for interacting with network devices
Stars: ✭ 172 (-59.91%)
Mutual labels:  async, network
Promise Fun
Promise packages, patterns, chat, and tutorials
Stars: ✭ 3,779 (+780.89%)
Mutual labels:  async, concurrency
Requests Threads
🎭 Twisted Deferred Thread backend for Requests.
Stars: ✭ 366 (-14.69%)
Mutual labels:  async, requests
Codejam
Set of handy reusable .NET components that can simplify your daily work and save your time when you copy and paste your favorite helper methods and classes from one project to another
Stars: ✭ 217 (-49.42%)
Mutual labels:  async, io
Byte Stream
A non-blocking stream abstraction for PHP based on Amp.
Stars: ✭ 208 (-51.52%)
Mutual labels:  async, io
Curequests
Curio + Requests: Async HTTP for Humans
Stars: ✭ 243 (-43.36%)
Mutual labels:  async, requests
Smol
A small and fast async runtime for Rust
Stars: ✭ 2,206 (+414.22%)
Mutual labels:  async, concurrency
Promise Pool
Map-like, concurrent promise processing
Stars: ✭ 258 (-39.86%)
Mutual labels:  async, concurrency
Redux Arc
A declarative way to make request with redux actions
Stars: ✭ 162 (-62.24%)
Mutual labels:  async, requests
Many requests
Dead easy interface for executing many HTTP requests asynchronously. Also provides helper functions for executing embarrassingly parallel async coroutines.
Stars: ✭ 384 (-10.49%)
Mutual labels:  async, requests
S task
awaitable coroutine library for C
Stars: ✭ 317 (-26.11%)
Mutual labels:  async, network
Ava
Node.js test runner that lets you develop with confidence 🚀
Stars: ✭ 19,458 (+4435.66%)
Mutual labels:  async, concurrency

Build Status Docs Status

asks

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!

http://asks.readthedocs.io/

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

Installation

Requires: Python 3.6.2 or newer.

pip install asks

Examples

# 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('https://example.org')
    print(r.content)

curio.run(example())
# many requests
# make 1k api calls and store their response objects
# in a list.

import asks
import trio

path_list = ['http://fakeurl.org/get','http://example123.org']

results = []


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


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

trio.run(main, path_list)

Changelog

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].