All Projects → LeonineKing1199 → Foxy

LeonineKing1199 / Foxy

Licence: bsl-1.0
Session-based Beast/Asio wrapper requiring C++14

Programming Languages

cpp
1120 projects
cpp14
131 projects

Projects that are alternatives of or similar to Foxy

foxy
Session-based Beast/Asio wrapper requiring C++14
Stars: ✭ 61 (+7.02%)
Mutual labels:  http-client, http-proxy, asio, http-server
Qtnetworkng
QtNetwork Next Generation. A coroutine based network framework for Qt/C++, with more simpler API than boost::asio.
Stars: ✭ 125 (+119.3%)
Mutual labels:  http-client, http-proxy, asio, http-server
httoop
HTTOOP - a fully object oriented HTTP protocol library written in python
Stars: ✭ 15 (-73.68%)
Mutual labels:  http-client, http-proxy, http-server
Beast
HTTP and WebSocket built on Boost.Asio in C++11
Stars: ✭ 3,241 (+5585.96%)
Mutual labels:  http-client, asio, http-server
Cxxhttp
Asynchronous, Header-only C++ HTTP-over-(TCP|UNIX Socket|STDIO) Library
Stars: ✭ 24 (-57.89%)
Mutual labels:  http-client, asio, http-server
Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+5850.88%)
Mutual labels:  http-client, http-server
Atom
Java course materials
Stars: ✭ 293 (+414.04%)
Mutual labels:  http-client, http-server
Comet
Modern PHP framework for building blazing fast REST APIs, CRUDs and microservices
Stars: ✭ 328 (+475.44%)
Mutual labels:  http-client, http-server
Http
Event-driven, streaming HTTP client and server implementation for ReactPHP.
Stars: ✭ 507 (+789.47%)
Mutual labels:  http-client, http-server
Dubbogo
a golang micro-service framework compatible with alibaba dubbo
Stars: ✭ 258 (+352.63%)
Mutual labels:  http-client, http-server
Restc Cpp
Modern C++ REST Client library
Stars: ✭ 371 (+550.88%)
Mutual labels:  http-client, asio
Apfree wifidog
A hight performance and lightweight captive portal solution for HTTP(s)
Stars: ✭ 519 (+810.53%)
Mutual labels:  http-client, http-server
Firefly
Firefly is an asynchronous web framework for rapid development of high-performance web application.
Stars: ✭ 277 (+385.96%)
Mutual labels:  http-client, http-server
Jetty.project
Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
Stars: ✭ 3,260 (+5619.3%)
Mutual labels:  http-client, http-server
Php Curl Class
PHP Curl Class makes it easy to send HTTP requests and integrate with web APIs
Stars: ✭ 2,903 (+4992.98%)
Mutual labels:  http-client, http-proxy
Proxy admin free
Proxy是高性能全功能的http代理、https代理、socks5代理、内网穿透、内网穿透p2p、内网穿透代理、内网穿透反向代理、内网穿透服务器、Websocket代理、TCP代理、UDP代理、DNS代理、DNS加密代理,代理API认证,全能跨平台代理服务器。
Stars: ✭ 487 (+754.39%)
Mutual labels:  http-proxy, http-server
Restinio
Cross-platform, efficient, customizable, and robust asynchronous HTTP/WebSocket server C++14 library with the right balance between performance and ease of use
Stars: ✭ 694 (+1117.54%)
Mutual labels:  asio, http-server
Poco
The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems.
Stars: ✭ 5,762 (+10008.77%)
Mutual labels:  http-client, http-server
Sylar
C++高性能分布式服务器框架,webserver,websocket server,自定义tcp_server(包含日志模块,配置模块,线程模块,协程模块,协程调度模块,io协程调度模块,hook模块,socket模块,bytearray序列化,http模块,TcpServer模块,Websocket模块,Https模块等, Smtp邮件模块, MySQL, SQLite3, ORM,Redis,Zookeeper)
Stars: ✭ 895 (+1470.18%)
Mutual labels:  http-client, http-server
EthernetWebServer
This is simple yet complete WebServer library for AVR, Portenta_H7, Teensy, SAM DUE, SAMD21/SAMD51, nRF52, STM32, RP2040-based, etc. boards running Ethernet shields. The functions are similar and compatible to ESP8266/ESP32 WebServer libraries to make life much easier to port sketches from ESP8266/ESP32. Coexisting now with `ESP32 WebServer` and…
Stars: ✭ 118 (+107.02%)
Mutual labels:  http-client, http-server

Foxy Build Status

Low-level HTTP session primitives for Beast/Asio + URL parsing and pct-coding

Examples and Reference

Requirements

  • C++14 and above
  • CMake 3.13+
  • Boost 1.75+
  • OpenSSL
  • Catch2 (for testing)

vcpkg is recommended for easy dependency management.

Supported Compilers

GCC 7+, Clang 6+, MSVC 2019

Why Foxy?

  • You're a Beast user who wants a reliable HTTP session vocabulary type
  • You want a client session abstraction that automatically handles DNS, TLS and certificate verification
  • You want a server session abstraction that can detect TLS handshakes and perform them
  • You need a URL parser
  • You need percent encoding and decoding
  • You need a TLS forward proxy
  • You want a convenient HTTP(S) server abstraction that handles connection setup + teardown

Description

Foxy is a C++14 library that aims to make idiomatic usage of Boost.Beast and Boost.Asio easier.

Foxy offers users low-level HTTP session primitives. These come in 3 forms: session, client_session and server_session.

The session class is direction-agnostic while the client_session and server_session offer additional functionality that implementors of clients and servers may find useful.

The utility of the session abstractions is that they abstract away the typical boilerplate required for using Boost.Beast. Sessions encapsulate sockets, buffers and timers which are all used during stream operations. They also reduce the API surface and enable implementors to focus solely on using Beast's message class and Asio's executor model.

Foxy also touts a best-in-class URL parser along with a set of URI parsing combinators adopted from RFC 3996. In addition, there are routines for percent encoding and dedoding URL components.

Foxy is built on top of Boost.Beast and Boost.Asio along with Boost.Spirit's library, X3. Foxy does not treat these libraries as implementation details but exposes them directly. To this end, Foxy is as powerful as plain Beast/Asio are and anything one can do in Beast, one can do using Foxy.

Foxy aims to be competitive with the HTTP libraries offered by both Node.js and Go.

While these languages are significantly higher-level than C++ is, their standard HTTP libraries are low-level from an abstract perspective. The success of these languages and their libraries has shown that the modern web development is favoring an ever-lower set of HTTP APIs.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].