Skip to main content

Crate zerodds_grpc_bridge

Crate zerodds_grpc_bridge 

Source
Expand description

Crate zerodds-grpc-bridge. Safety classification: STANDARD.

gRPC-over-HTTP/2 + gRPC-Web Wire-Codec — pure-Rust no_std + alloc, forbid(unsafe_code). Implementiert die gRPC-spezifischen Wire-Elemente die ueber dem HTTP/2-Stack sitzen: Length-Prefixed- Message (LPM), Path-Parsing, Timeout-Header, Status-Codes, Custom-Metadata-Encoding (inkl. -bin-Suffix-Konvention), gRPC-Web-Trailer-Frames und ein gRPC-Server-Skeleton fuer Caller-konfigurierte HTTP/2-Listener.

Spec: gRPC HTTP/2 Protocol (Length-Prefixed Message + Path + Timeout + Status + Custom-Metadata) + gRPC-Web Specification (Trailer-Frame + Content-Types).

§Schichten-Position

Layer 5 — Bridges. Sitzt auf zerodds-http2 (RFC 9113 Framing + Stream-State + Flow-Control) und zerodds-hpack (RFC 7541 Header- Compression). HTTP/2-Connection-Lifecycle und HEADERS/CONTINUATION- Encoding kommen aus diesen Substrat-Crates; gRPC-Bridge konzentriert sich auf das gRPC-Application-Layer-Wire-Format.

§Public API (Stand 1.0.0-rc.1)

§Beispiel

use zerodds_grpc_bridge::{decode_message, encode_message};

let msg = b"hello-grpc";
let wire = encode_message(msg, false).expect("encode");
let (flag, payload, consumed) = decode_message(&wire).expect("decode");
assert_eq!(flag, 0);
assert_eq!(payload, msg);
assert_eq!(consumed, wire.len());

Re-exports§

pub use frame::FrameError;
pub use frame::decode_message;
pub use frame::encode_message;
pub use metadata::BIN_SUFFIX;
pub use metadata::MetadataError;
pub use metadata::content_types;
pub use metadata::decode_base64;
pub use metadata::decode_header_value;
pub use metadata::encode_base64;
pub use metadata::encode_header_value;
pub use metadata::is_binary_header;
pub use metadata::request_headers;
pub use metadata::response_headers;
pub use path::PathError;
pub use path::parse_path;
pub use server::GrpcRequest;
pub use server::GrpcResponse;
pub use server::GrpcServer;
pub use status::Status;
pub use timeout::TimeoutError;
pub use timeout::TimeoutUnit;
pub use timeout::decode_timeout;
pub use timeout::encode_timeout;

Modules§

bridge_security
gRPC-Bridge §7.x Bridge-Security-Wireup.
daemon_runtime
Cross-Cutting Daemon-Runtime fuer den gRPC-Daemon.
frame
gRPC Length-Prefixed-Message — Spec §“Requests” + §“Responses”.
metadata
Custom-Metadata Encoding nach gRPC-Spec.
path
gRPC HTTP :path Parsing — Spec §“Call-Definition”.
qos_translation
§6 — DDS-QoS → gRPC-Behavior-Translation.
reflection
gRPC Server Reflection Service (grpc.reflection.v1alpha.ServerReflection).
server
gRPC-over-HTTP/2 Server-Skeleton.
service_gen
Auto-Generation gRPC-Service-Definitions pro DDS-Topic.
status
gRPC grpc-status Codes — Spec §“Status”.
timeout
gRPC grpc-timeout Header — Spec §“Timeout”.