This library provides a c++ wrapper around libcurl supporting async usage with c++20 coroutines. It is an addition to async++ which provides general coroutine tasks and support classes.
Tested and supported compilers:
Linux | Windows |
---|---|
In addition the websocket client is tested for compliance with RFC6455 using the autobahn-testsuite project:
base64
andbase64url
provides base64 encode and decode helperscookie
provides cookie handling and parsingexecutor
is used for running a curl multi loop in an extra thread and providing a dispatcher interface for use withdefer
handle
is a wrapper around a curl easy handlemulti
is a wrapper around a curl multi handlesha1
is a standalone sha1 implementation mainly used for implementing the websocket clientslist
is a wrapper around curl slist's used for e.g. headers. Provides a stl container like interfacetcp_client
is a wrapper usingCURLOPT_CONNECT_ONLY
to establish a raw tcp/ssl connection to a remote hosturi
provides URI parsing and buildingutf8_validator
allows validation of utf8 text for compliancehttp_request
andhttp_response
provide a simplified interface tohandle
for doing normal HTTP transferswebsocket
provides a generic websocket client implementation based ontcp_client