Expand description
Crate zerodds-websocket-bridge. Safety classification: STANDARD.
WebSocket (RFC 6455) komplettes Stack-Set — pure-Rust no_std + alloc, forbid(unsafe_code). Implementiert die volle WebSocket-
Spec inklusive Base-Framing-Protocol (§5.2 + §5.3), Opening-
Handshake (§4) mit Sec-WebSocket-Accept-SHA1-Berechnung,
Extension- + Subprotocol-Negotiation (§9), Close-Frame-Status-
Code-Semantik (§7.4) inkl. Forbidden-on-Wire-Pruefung,
permessage-deflate Extension (RFC 7692), URI-Parser (ws:// /
wss://, RFC 6455 §3), Streaming-UTF-8-Validator (§8.1) fuer
Text-Frames, sowie einen WebSocket↔DDS-Topic-Bridge.
Spec-Referenzen:
- RFC 6455 — The WebSocket Protocol.
- RFC 7692 — Compression Extensions for WebSocket
(
permessage-deflate).
§Schichten-Position
Layer 5 — Bridges. Substrat fuer Browser↔DDS-Endpoint-Mapping (Web-UIs, Realtime-Dashboards, DDS-Web-Gateway).
§Public API (Stand 1.0.0-rc.1)
Frame/Opcode— Frame-Modell (§5.2).encode/decode/CodecError— Wire-Codec inklusive Payload-Length-Encoding (7-bit / 7+16-bit / 7+64-bit) und Masking-Application.apply_mask/generate_masking_key/MaskingKeyProvider/InsecureSplitmixProvider/ClosureMaskingKeyProvider— XOR-Masking (§5.3).CloseCode/ClosePayload/encode_close_payload/decode_close_payload— Close-Frame-Codec (§7.4).ClientHandshake/ServerHandshake/compute_accept/parse_client_request/build_server_response/render_server_response/HandshakeError— Opening-Handshake (§4).PermessageDeflateParams/parse_offer/render_accept/append_tail/strip_tail/DEFLATE_TAIL/NegotiationError— RFC 7692 permessage-deflate Negotiation.WebSocketUri/parse_websocket_uri/default_port/is_local_loopback/resource_name/UriError—ws:///wss://URI-Parser (§3).StreamingValidator/validate_utf8/Utf8Error— Text-Frame-UTF-8-Validator (§8.1).SubscriptionRegistry/Notification/BridgeOp/BridgeError/parse_op/render_notification— WebSocket↔DDS-Topic-Bridge.
§Beispiel
use zerodds_websocket_bridge::{compute_accept};
// RFC 6455 §1.3: Sec-WebSocket-Accept-Beispiel.
let accept = compute_accept("dGhlIHNhbXBsZSBub25jZQ==");
assert_eq!(accept, "s3pPLMBiTxaQ9kYGzzhZRbK+xOo=");Re-exports§
pub use close::CloseCode;pub use close::ClosePayload;pub use close::decode_close_payload;pub use close::encode_close_payload;pub use codec::CodecError;pub use codec::decode;pub use codec::encode;pub use dds_bridge::BridgeError;pub use dds_bridge::BridgeOp;pub use dds_bridge::Notification;pub use dds_bridge::SubscriptionRegistry;pub use dds_bridge::parse_op;pub use dds_bridge::render_notification;pub use frame::Frame;pub use frame::Opcode;pub use handshake::ClientHandshake;pub use handshake::HandshakeError;pub use handshake::ServerHandshake;pub use handshake::build_server_response;pub use handshake::compute_accept;pub use handshake::parse_client_request;pub use handshake::render_server_response;pub use masking::ClosureMaskingKeyProvider;pub use masking::InsecureSplitmixProvider;pub use masking::MaskingKeyProvider;pub use masking::apply_mask;pub use masking::generate_masking_key;pub use permessage_deflate::DEFLATE_TAIL;pub use permessage_deflate::NegotiationError;pub use permessage_deflate::PermessageDeflateParams;pub use permessage_deflate::append_tail;pub use permessage_deflate::parse_offer;pub use permessage_deflate::render_accept;pub use permessage_deflate::strip_tail;pub use uri::UriError;pub use uri::WebSocketUri;pub use uri::default_port;pub use uri::is_local_loopback;pub use uri::parse_websocket_uri;pub use uri::resource_name;pub use utf8::StreamingValidator;pub use utf8::Utf8Error;pub use utf8::validate as validate_utf8;
Modules§
- close
- Close-Frame Status-Codes — RFC 6455 §7.4.
- codec
- WebSocket Wire-Codec — RFC 6455 §5.2 + §5.3.
- daemon
zerodds-ws-bridgedDaemon-Implementation.- dds_
bridge - WebSocket↔DDS-Topic-Bridge.
- frame
- WebSocket Frame Modell — RFC 6455 §5.2.
- handshake
- WebSocket Opening-Handshake — RFC 6455 §4.
- masking
- WebSocket Payload Masking — RFC 6455 §5.3.
- message
- Message-Layer (§6.1 Send-Algorithm + §6.2 Receive-Algorithm).
- negotiation
- Generic Extension- und Subprotocol-Negotiation nach RFC 6455 §9.
- permessage_
deflate - permessage-deflate Extension — RFC 7692 §7.
- uri
- WebSocket URI-Scheme-Parser nach RFC 6455 §3.
- utf8
- UTF-8 Validation nach RFC 6455 §8.1 + §8.2.