Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/siddiqsoft/restcl
Focused REST client for modern C++
https://github.com/siddiqsoft/restcl
async cpp20 json-api nlohmann-json nuget rest-client windows winhttp
Last synced: about 1 month ago
JSON representation
Focused REST client for modern C++
- Host: GitHub
- URL: https://github.com/siddiqsoft/restcl
- Owner: SiddiqSoft
- License: bsd-3-clause
- Created: 2021-07-31T01:22:07.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-28T05:10:06.000Z (2 months ago)
- Last Synced: 2024-10-28T07:27:01.400Z (2 months ago)
- Topics: async, cpp20, json-api, nlohmann-json, nuget, rest-client, windows, winhttp
- Language: C++
- Homepage: https://siddiqsoft.github.io/restcl/
- Size: 391 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
restcl : A focused REST Client for Modern C++
-------------------------------------------[![Build Status](https://dev.azure.com/siddiqsoft/siddiqsoft/_apis/build/status/SiddiqSoft.restcl?branchName=main)](https://dev.azure.com/siddiqsoft/siddiqsoft/_build/latest?definitionId=13&branchName=main)
![](https://img.shields.io/nuget/v/SiddiqSoft.restcl)
![](https://img.shields.io/github/v/tag/SiddiqSoft/restcl)
![](https://img.shields.io/azure-devops/tests/siddiqsoft/siddiqsoft/13)# Motivation
Design a library where JSON is a first-class API metaphor for interacting with RESTful servers.
- Focused on REST interactions with JSON. Limiting allows us to simplify the usage and make it feel very C++ instead of the C-like API of Win32 or OpenSSL.
- Modern C++ features: C++20 is required!
- Visual Studio 2022
- Windows version uses WinHTTP library and HTTP/2
- Header only
- Use native implementations for the actual IO: Windows support uses WinHttp library.
- Initial implementation is for Windows using WinHTTP.
- Alternate implementation using OpenSSL tbd.
- Support for literals to allow `_GET`, `_DELETE`, etc. Using the `siddiqsoft::httpqrequest::literals` namespace.
- Support for std::format and concepts.
- Be instructional and use as little code as necessary.
- The focus is on the interface to the end user.
- Performance is not the objective.
- Simplicity (hide the underlying implementation)# Roadmap
- Switch to CMake build
- Do a UNIX version, of course!