Skip to main content

An async Curl library.

Project description

Acurl

It is an asynchronous wrapper around libcurl which is built to interface with the Uvloop python library.

Using Acurl In Mite

The gateway into Acurl is through the CurlWrapper (discussed in Architectural Notes) and requires an event loop being passed to its constructor. Below is the mite implementation of acurl:

class SessionPool:
    ...
    def __init__(self):
        import acurl
        self._wrapper = acurl.CurlWrapper(asyncio.get_event_loop())
        ...

Architectural Notes

Acurl uses a single loop maintained within python using UVloop.

Acurl surfaces the CurlWrapper interface which takes the asyncio event loop as an argument. The wrapper deals directly with the curl_multi interface from libcurl, defining 2 functions (curl_perform_write and curl_perform_read) for checking both read and write availability of file descriptors.

There are 2 notable functions within the core Acurl implementation, notably handle_socket and start_timer:

  • handle_socket is passed as a callback function to the curl_multi interface and upon calls to the curl_multi_socket_action function, will receive updates regarding the socket status. We then handle those statuses by either adding or removing the aforementioned readers or writers.
  • start_timer is another callback function that is passed to the curl_multi interface and is used as a way to handle timeouts and retries within curl. Upon a timeout, the timeout callback will be called and the transfer can be retried.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

acurl-1.0.5.tar.gz (167.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

acurl-1.0.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (89.2 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

acurl-1.0.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (88.9 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

acurl-1.0.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (89.1 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

acurl-1.0.5-cp310-cp310-macosx_11_0_arm64.whl (110.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

acurl-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl (126.1 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

acurl-1.0.5-cp39-cp39-macosx_11_0_arm64.whl (112.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

acurl-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl (128.6 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

acurl-1.0.5-cp38-cp38-macosx_11_0_arm64.whl (111.2 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

acurl-1.0.5-cp38-cp38-macosx_10_9_x86_64.whl (125.1 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

acurl-1.0.5-cp37-cp37m-macosx_10_9_x86_64.whl (122.1 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

acurl-1.0.5-cp36-cp36m-macosx_10_9_x86_64.whl (122.7 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file acurl-1.0.5.tar.gz.

File metadata

  • Download URL: acurl-1.0.5.tar.gz
  • Upload date:
  • Size: 167.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for acurl-1.0.5.tar.gz
Algorithm Hash digest
SHA256 2b4d08a6faff68058e6a392c7c209fac4b429a7ba2c279d0f5c33c516aa95eed
MD5 5b277de579c5cdc0722989fc8f5aee30
BLAKE2b-256 ded25069e19069523e0fa0dc65aa55619266c0e2286e039c1517527c7e6053b4

See more details on using hashes here.

File details

Details for the file acurl-1.0.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for acurl-1.0.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6f03307bb8dc5df532c3f0c01372eb9b349de181f6aa48ce5691e190ce79d4d2
MD5 da51c7aacd470e83d62eec27b576fb5d
BLAKE2b-256 46a01eff52a7dc415ab703a661fedc39d985c1bcefca99c9d3a80f9ffe778191

See more details on using hashes here.

File details

Details for the file acurl-1.0.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for acurl-1.0.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 48648569298154bdf2b18129e1e4625eba62e317bd1899c80e80cd1b57141fa2
MD5 7c12b44101f75a4b81533a91ded2895c
BLAKE2b-256 f62285580cef7dedf3dfbaff637d3c23980c5690186d0fdb621568e2ff5a0d51

See more details on using hashes here.

File details

Details for the file acurl-1.0.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for acurl-1.0.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b03e793e176e42cc2c7bbb0b77a8de0de37a29c60c29ea9ede08d851e95c4875
MD5 3763f5499c5840745787628ee15d0abd
BLAKE2b-256 e3d67c677117f135e378c7cb97414f11d378910ddfed4b5d93baead353f5e095

See more details on using hashes here.

File details

Details for the file acurl-1.0.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for acurl-1.0.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 34402e108c82f11b94d1fc2e3e713eda50556d03032bb2ea5522065c4333817c
MD5 22cd6b4a6236f44569a7b861306ee32c
BLAKE2b-256 283c5da9a17dd6afe867dce3b3546131c2b521c54fb8708942cd508680623aab

See more details on using hashes here.

File details

Details for the file acurl-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for acurl-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 005deb962799de3754e44726d67c33fb81dc14040983b90d0c26a3675b8192d1
MD5 b338d6390f9cf09d01ad63595d563a2b
BLAKE2b-256 11ed5d471ead94000344fbf78f3f06443df6c60c07187f0754367668d338f08c

See more details on using hashes here.

File details

Details for the file acurl-1.0.5-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: acurl-1.0.5-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 112.4 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.5

File hashes

Hashes for acurl-1.0.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 680794b244decda75cbec62076bc22bf513d596bbf78fdfe6e608d5b76202fe4
MD5 1329f80856a1bef1f31f2296a77c2741
BLAKE2b-256 039ef839c7890d306202ea6caa950777ead382e5c364e078a3a8409f1b58bfc6

See more details on using hashes here.

File details

Details for the file acurl-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for acurl-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3078bb92c7f901ecfc172db447fc919f7dfa31e0192a01f65eaa9f9372b3ff6d
MD5 469ffa428806bcd4f0c1afc428f24753
BLAKE2b-256 90ca6ba92dfdf61f09aaad5ac6e54aa28ea49381bd21969d7c5108d8e4d9f011

See more details on using hashes here.

File details

Details for the file acurl-1.0.5-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

  • Download URL: acurl-1.0.5-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 111.2 kB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.5

File hashes

Hashes for acurl-1.0.5-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 df8ebdbe0a185b72df6b14331ad0c8051b2b29c8b540a331f9c8d4a3d4365bd3
MD5 cb8b1601a67004684cdd0fdcb969b8d0
BLAKE2b-256 872b0f8ceaa468b79f37bb67b40366b117f7cb934d3d7450ffb380611110e9b1

See more details on using hashes here.

File details

Details for the file acurl-1.0.5-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for acurl-1.0.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 30d4b0e1bad4b41db2340912265cdb0f39b16df07b968591fa38c9080d4bf15b
MD5 3c99d5ecc13e61ff534412216e3bd8fe
BLAKE2b-256 90b092c0fd6fa3cdd53e56d73524c7e97d5835884b9b0ac03038c04e9e9e68ae

See more details on using hashes here.

File details

Details for the file acurl-1.0.5-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for acurl-1.0.5-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ec469f6acfd7865f7a12b53adba71c72220fb55f43a6f8f1b2b4796ecd2fd85c
MD5 adbb9c3758a4db39d95e6977ae6159e0
BLAKE2b-256 cfe0a657a46b4ba71e3b49cc554f648593b102bcbc4fa27f6b586e990dd3c98b

See more details on using hashes here.

File details

Details for the file acurl-1.0.5-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for acurl-1.0.5-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 342bd3dc984436eb46b37718572f3b9469fbbd147b098e3b1f6a3715a85d3996
MD5 573dfe5009859033e953669e832177b5
BLAKE2b-256 ead1f4ac31a44212bb16f8308649a5a8e789b2d9a299112d71bb37768bc39716

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page