Skip to content

asyncpp/asyncpp-curl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Async++ CURL library

License Badge Stars Badge

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
ubuntu-2004_clang-10 windows-2019_msvc16
ubuntu-2004_clang-11 windows-2022_msvc17
ubuntu-2004_clang-12
ubuntu-2004_gcc-10
ubuntu-2204_clang-13
ubuntu-2204_clang-14
ubuntu-2204_clang-15
ubuntu-2204_gcc-10
ubuntu-2204_gcc-11

In addition the websocket client is tested for compliance with RFC6455 using the autobahn-testsuite project:

Autobahn WS CI

Provided classes

  • base64 and base64url provides base64 encode and decode helpers
  • cookie provides cookie handling and parsing
  • executor is used for running a curl multi loop in an extra thread and providing a dispatcher interface for use with defer
  • handle is a wrapper around a curl easy handle
  • multi is a wrapper around a curl multi handle
  • sha1 is a standalone sha1 implementation mainly used for implementing the websocket client
  • slist is a wrapper around curl slist's used for e.g. headers. Provides a stl container like interface
  • tcp_client is a wrapper using CURLOPT_CONNECT_ONLY to establish a raw tcp/ssl connection to a remote host
  • uri provides URI parsing and building
  • utf8_validator allows validation of utf8 text for compliance
  • http_request and http_response provide a simplified interface to handle for doing normal HTTP transfers
  • websocket provides a generic websocket client implementation based on tcp_client

Releases

No releases published

Packages

No packages published