http_proto
http_proto copied to clipboard
HTTP/1 parsing and serialization algorithms using C++11
http://master.http-proto.cpp.al/[image:https://raw.githubusercontent.com/CPPAlliance/http_proto/master/doc/images/repo-logo.png[Boost.Http.Proto]]
[width="100%",cols="7%,66%,27%",options="header",] |===
|Branch
|https://github.com/cppalliance/http_proto/tree/master[master
]
|https://github.com/cppalliance/http_proto/tree/develop[develop
]
|https://develop.http-proto.cpp.al/[Docs] |https://master.http-proto.cpp.al/[image:https://img.shields.io/badge/docs-master-brightgreen.svg[Documentation]] |https://develop.http-proto.cpp.al/[image:https://img.shields.io/badge/docs-develop-brightgreen.svg[Documentation]]
|https://github.com/[GitHub Actions] |https://github.com/cppalliance/http_proto/actions/workflows/ci.yml?query=branch%3Amaster[image:https://github.com/cppalliance/http_proto/actions/workflows/ci.yml/badge.svg?branch=master[CI]] |https://github.com/cppalliance/http_proto/actions/workflows/ci.yml?query=branch%3Adevelop[image:https://github.com/cppalliance/http_proto/actions/workflows/ci.yml/badge.svg?branch=develop[CI]]
|https://drone.io/[Drone] |https://drone.cpp.al/cppalliance/http_proto/branches[image:https://drone.cpp.al/api/badges/cppalliance/http_proto/status.svg?ref=refs/heads/master[Build Status]] |https://drone.cpp.al/cppalliance/http_proto/branches[image:https://drone.cpp.al/api/badges/cppalliance/http_proto/status.svg?ref=refs/heads/develop[Build Status]]
|https://codecov.io[Codecov] |https://app.codecov.io/gh/cppalliance/http_proto/tree/master[image:https://codecov.io/gh/cppalliance/http_proto/branch/master/graph/badge.svg[codecov]] |https://app.codecov.io/gh/cppalliance/http_proto/tree/develop[image:https://codecov.io/gh/cppalliance/http_proto/branch/develop/graph/badge.svg[codecov]]
|===
== Boost.Http.Proto
=== This is currently NOT an official Boost library.
=== Overview
Boost.Http.Proto is a portable, low-level C++ library which provides containers and algorithms for implementing the HTTP/1.1 protocol described in the document https://datatracker.ietf.org/doc/html/rfc7230[Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing], henceforth referred to as https://datatracker.ietf.org/doc/html/rfc7230[rfc7230].
Boost.Http.Proto offers these features:
- Require only C++11
- Works without exceptions
- Fast compilation, no templates
- Strict compliance with rfc7230
=== Requirements
- Requires Boost and a compiler supporting at least C++11
- Aliases for standard types use their Boost equivalents
- Link to a built static or dynamic Boost library, or use header-only (see below)
- Supports -fno-exceptions, detected automatically
==== Header-Only
To eliminate the requirement to link a program to a static or dynamic Boost.Http.Proto library, simply place the following line in exactly one source file in your project.
#include <boost/http_proto/src.hpp>
==== Embedded
Boost.HTTP.Proto works great on embedded devices. It is designed to work without exceptions if desired.
==== Supported Compilers
Boost.Http.Proto has been tested with the following compilers:
- clang: 3.8, 4, 5, 6, 7, 8, 9, 10, 11, 12
- gcc: 5, 6, 7, 8, 9, 10, 11, 12
- msvc: 14.0, 14.1, 14.2, 14.3
==== Quality Assurance
The development infrastructure for the library includes these per-commit analyses:
- Coverage reports
- Benchmark performance comparisons
- Compilation and tests on Drone.io, Azure Pipelines, Appveyor
- Fuzzing using clang-llvm and machine learning
=== Visual Studio Solution Generation
cmake -G "Visual Studio 17 2022" -A win32 -B bin -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE="C:/Users/vinnie/src/boost/libs/http_proto/cmake/toolchains/msvc.cmake"
cmake -G "Visual Studio 17 2022" -A x64 -B bin64 -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE="C:/Users/vinnie/src/boost/libs/http_proto/cmake/toolchains/msvc.cmake"
=== License
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)