zerodds-grpc-bridge 1.0.0-rc.1

gRPC-over-HTTP/2 + gRPC-Web Wire-Codec — Length-Prefixed-Message + Path + Timeout + Status + Custom-Metadata + Server-Skeleton. Sitzt auf zerodds-http2 + zerodds-hpack.
Documentation

zerodds-grpc-bridge

License: Apache-2.0 docs.rs

gRPC-over-HTTP/2 + gRPC-Web Wire-Codec: Length-Prefixed-Message (LPM), Path-Parsing (/<service>/<method>), grpc-timeout-Header, grpc-status-Codes, Custom-Metadata-Encoding mit -bin-Suffix- Konvention, gRPC-Web-Trailer-Frames, und ein Server-Skeleton fuer Caller-konfigurierte HTTP/2-Listener. Sitzt auf zerodds-http2 (RFC 9113) + zerodds-hpack (RFC 7541). no_std + alloc, forbid(unsafe_code). Safety classification: STANDARD.

Spec-Mapping

Spec Abschnitt
gRPC HTTP/2 Protocol Length-Prefixed-Message + :path + grpc-timeout + grpc-status + Custom-Metadata + -bin-Suffix
gRPC-Web Specification Trailer-Frame (LPM mit Compressed-Flag-MSB=1) + Content-Types (application/grpc-web / application/grpc-web+proto / application/grpc-web-text / JSON)

Was ist drin

  • encode_message / decode_message — gRPC LPM (Compressed- Flag 1 byte + Message-Length 4-byte BE + Bytes).
  • parse_path/<service>/<method> aus :path.
  • encode_timeout / decode_timeout / TimeoutUnitgrpc-timeout mit Units H/M/S/m/u/n.
  • Status — alle 17 gRPC Status-Codes (0 OK ... 16 UNAUTHENTICATED).
  • encode_header_value / decode_header_value / is_binary_header / BIN_SUFFIX / encode_base64 / decode_base64 — Custom- Metadata mit -bin-Suffix → Base64.
  • request_headers / response_headers / content_types — Standard-Header-Sets fuer Request/Response/gRPC-Web/JSON.
  • GrpcServer / GrpcRequest / GrpcResponse — Server- Skeleton zum Wiren mit Caller-konfigurierten HTTP/2-Listenern.

Schichten-Position

Layer 5 — Bridges. Sitzt auf zerodds-http2 (RFC 9113 Framing + Stream-State + Flow-Control) und zerodds-hpack (RFC 7541 Header- Compression). Konsumenten konfigurieren ihren eigenen TCP/TLS- Listener und delegieren HTTP/2-Connection-Lifecycle an zerodds-http2.

Quickstart

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());

Feature-Flags

Feature Default Zweck
std std::error::Error-Impls.
alloc ✅ (via std) Vec / String.

no_std-fahig: default-features = false, features = ["alloc"].

Stabilitaet

1.0.0-rc.1. Public-API + Wire-Format (gRPC HTTP/2 + gRPC-Web) + Fehler-Diskriminanten sind RC1-stabil; Breaking-Changes erfordern Major-Bump.

Tests

cargo test -p zerodds-grpc-bridge

60 Tests grün (54 unit + 5 fuzz-smoke + 1 doc).

Lizenz

Apache-2.0. Siehe LICENSE.

Siehe auch