Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
frame.h File Reference

gRPC message framing and serialization. More...

#include "kcenon/network/detail/utils/result_types.h"
#include <cstdint>
#include <span>
#include <vector>
Include dependency graph for frame.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kcenon::network::protocols::grpc::grpc_message
 gRPC message with compression flag and payload More...
 

Namespaces

namespace  kcenon
 
namespace  kcenon::network
 Main namespace for all Network System components.
 
namespace  kcenon::network::protocols
 
namespace  kcenon::network::protocols::grpc
 gRPC protocol implementation
 
namespace  kcenon::network::protocols::grpc::trailer_names
 gRPC trailing header names
 
namespace  kcenon::network::protocols::grpc::header_names
 gRPC request header names
 
namespace  kcenon::network::protocols::grpc::compression
 gRPC compression algorithms
 

Functions

auto kcenon::network::protocols::grpc::parse_timeout (std::string_view timeout_str) -> uint64_t
 Parse timeout string (e.g., "10S", "100m", "1000u")
 
auto kcenon::network::protocols::grpc::format_timeout (uint64_t timeout_ms) -> std::string
 Format timeout as gRPC timeout string.
 

Variables

constexpr size_t kcenon::network::protocols::grpc::grpc_header_size = 5
 gRPC message header size (5 bytes)
 
constexpr size_t kcenon::network::protocols::grpc::default_max_message_size = 4 * 1024 * 1024
 Maximum gRPC message size (default 4MB)
 
constexpr const char * kcenon::network::protocols::grpc::grpc_content_type = "application/grpc"
 gRPC content-type header value
 
constexpr const char * kcenon::network::protocols::grpc::grpc_content_type_proto = "application/grpc+proto"
 gRPC content-type with proto encoding
 
constexpr const char * kcenon::network::protocols::grpc::trailer_names::grpc_status = "grpc-status"
 
constexpr const char * kcenon::network::protocols::grpc::trailer_names::grpc_message = "grpc-message"
 
constexpr const char * kcenon::network::protocols::grpc::trailer_names::grpc_status_details = "grpc-status-details-bin"
 
constexpr const char * kcenon::network::protocols::grpc::header_names::te = "te"
 
constexpr const char * kcenon::network::protocols::grpc::header_names::content_type = "content-type"
 
constexpr const char * kcenon::network::protocols::grpc::header_names::grpc_encoding = "grpc-encoding"
 
constexpr const char * kcenon::network::protocols::grpc::header_names::grpc_accept_encoding = "grpc-accept-encoding"
 
constexpr const char * kcenon::network::protocols::grpc::header_names::grpc_timeout = "grpc-timeout"
 
constexpr const char * kcenon::network::protocols::grpc::header_names::user_agent = "user-agent"
 
constexpr const char * kcenon::network::protocols::grpc::compression::identity = "identity"
 
constexpr const char * kcenon::network::protocols::grpc::compression::deflate = "deflate"
 
constexpr const char * kcenon::network::protocols::grpc::compression::gzip = "gzip"
 

Detailed Description

gRPC message framing and serialization.

gRPC message framing (length-prefixed binary protocol)

Implements gRPC's 5-byte header framing for encoding and decoding length-prefixed messages over HTTP/2 streams.

Definition in file frame.h.