|
dot-xx
A personal collection of small C++ modules
|
A feature-poor HTTP server implementation. More...
Classes | |
| struct | dxx::http::ServerError |
| struct | dxx::http::StreamError |
| struct | dxx::http::RequestError |
| class | dxx::http::PathNode< TData > |
| class | dxx::http::Server |
| A simple HTTP server. More... | |
| class | dxx::http::PendingConnection< TResponse > |
| An awaitable object that allows the handler code to respond to the request at a later point in time. More... | |
| struct | dxx::http::Request |
| HTTP request structure. Also used for multipart request data. More... | |
| struct | dxx::http::Response |
| Server's response to the client. More... | |
Enumerations | |
| enum class | dxx::http::Method { Invalid , Get , Head , Post , Put , Delete , Connect , Options , Trace , Patch } |
| enum class | dxx::http::HeaderError { None , Method , Header , Unterminated , StrayData } |
| An error during HTTP request header parsing. More... | |
| enum class | dxx::http::MultipartError { NotMultipart , Unterminated , NoPartBody , UnterminatedHeader , InvalidHeader } |
| An error during parsing of a multipart request. More... | |
| enum class | StatusCode { Continue = 100 , SwitchingProtocols = 101 , Processing = 102 , EarlyHints = 103 , OK = 200 , Created = 201 , Accepted = 202 , NonAuthoritativeInformation = 203 , NoContent = 204 , ResetContent = 205 , PartialContent = 206 , MultiStatus = 207 , AlreadyReported = 208 , IMUsed = 226 , MultipleChoices = 300 , MovedPermanently = 301 , Found = 302 , SeeOther = 303 , NotModified = 304 , UseProxy = 305 , TemporaryRedirect = 307 , PermanentRedirect = 308 , BadRequest = 400 , Unauthorized = 401 , PaymentRequired = 402 , Forbidden = 403 , NotFound = 404 , MethodNotAllowed = 405 , NotAcceptable = 406 , ProxyAuthenticationRequired = 407 , RequestTimeout = 408 , Conflict = 409 , Gone = 410 , LengthRequired = 411 , PreconditionFailed = 412 , ContentTooLarge = 413 , URITooLong = 414 , UnsupportedMediaType = 415 , RangeNotSatisfiable = 416 , ExpectationFailed = 417 , ImATeapot = 418 , MisdirectedRequest = 421 , UnprocessableContent = 422 , Locked = 423 , FailedDependency = 424 , TooEarly = 425 , UpgradeRequired = 426 , PreconditionRequired = 428 , TooManyRequests = 429 , RequestHeaderFieldsTooLarge = 431 , UnavailableForLegalReasons = 451 , InternalServerError = 500 , NotImplemented = 501 , BadGateway = 502 , ServiceUnavailable = 503 , GatewayTimeout = 504 , HTTPVersionNotSupported = 505 , VariantAlsoNegotiates = 506 , InsufficientStorage = 507 , LoopDetected = 508 , NotExtended = 510 , NetworkAuthenticationRequired = 511 } |
Variables | |
| const std::flat_map< std::string_view, Method > | dxx::http::methods_map |
| const std::unordered_map< std::string, std::string > | dxx::http::mime_types |
| Mappings of some file extensions to their corresponding content type. | |
A feature-poor HTTP server implementation.
Implements the server on top of C++20 coroutines which results in a relatively extensible approach, supporting e.g. long polling
See https://github.com/GregTheMadMonk/dot-xx/blob/http/example/main.cc to see what this library is capable of
Files | |
| file | /build-llvm-libcpp/_deps/dot-xx-http-src/src/http.xx |
| Main interface file for dxx.http module. | |
| file | /build-llvm-libcpp/_deps/dot-xx-http-src/src/coro.xx |
| Coroutine types for the server. | |
| file | /build-llvm-libcpp/_deps/dot-xx-http-src/src/errors.xx |
| HTTP server exception types. | |
| file | /build-llvm-libcpp/_deps/dot-xx-http-src/src/method.xx |
| HTTP methods enum and strings. | |
| file | /build-llvm-libcpp/_deps/dot-xx-http-src/src/mime.xx |
| Built-in mime-type mappings. | |
| file | /build-llvm-libcpp/_deps/dot-xx-http-src/src/path.xx |
| The server's path matching. | |
| file | /build-llvm-libcpp/_deps/dot-xx-http-src/src/server.xx |
| A simple HTTP server. | |
| file | /build-llvm-libcpp/_deps/dot-xx-http-src/src/status_codes.xx |
| HTTP status codes enum. | |
| file | /build-llvm-libcpp/_deps/dot-xx-http-src/src/url.xx |
| URL encoding and decoding. | |