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:
base64andbase64urlprovides base64 encode and decode helperscookieprovides cookie handling and parsingexecutoris used for running a curl multi loop in an extra thread and providing a dispatcher interface for use withdeferhandleis a wrapper around a curl easy handlemultiis a wrapper around a curl multi handlesha1is a standalone sha1 implementation mainly used for implementing the websocket clientslistis a wrapper around curl slist's used for e.g. headers. Provides a stl container like interfacetcp_clientis a wrapper usingCURLOPT_CONNECT_ONLYto establish a raw tcp/ssl connection to a remote hosturiprovides URI parsing and buildingutf8_validatorallows validation of utf8 text for compliancehttp_requestandhttp_responseprovide a simplified interface tohandlefor doing normal HTTP transferswebsocketprovides a generic websocket client implementation based ontcp_client