Expand description
Crate zerodds-websocket-bridge. Safety classification: STANDARD.
Complete WebSocket (RFC 6455) stack set — pure-Rust no_std + alloc, forbid(unsafe_code). Implements the full WebSocket
spec including the base framing protocol (§5.2 + §5.3), opening
handshake (§4) with Sec-WebSocket-Accept SHA1 computation,
extension + subprotocol negotiation (§9), close-frame status
code semantics (§7.4) incl. forbidden-on-wire checking,
the permessage-deflate extension (RFC 7692), a URI parser (ws:// /
wss://, RFC 6455 §3), a streaming UTF-8 validator (§8.1) for
text frames, as well as a WebSocket↔DDS topic bridge.
Spec-Referenzen:
- RFC 6455 — The WebSocket Protocol.
- RFC 7692 — Compression Extensions for WebSocket
(
permessage-deflate).
§Layer position
Layer 5 — bridges. Substrate for browser↔DDS endpoint mapping (web UIs, realtime dashboards, DDS web gateway).
§Public API (Stand 1.0.0-rc.1)
Frame/Opcode— frame model (§5.2).encode/decode/CodecError— wire codec including payload length encoding (7-bit / 7+16-bit / 7+64-bit) and mask 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.
§Example
use zerodds_websocket_bridge::{compute_accept};
// RFC 6455 §1.3: Sec-WebSocket-Accept example.
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 model — 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 and subprotocol negotiation per RFC 6455 §9.
- permessage_
deflate - permessage-deflate extension — RFC 7692 §7.
- uri
- WebSocket URI scheme parser per RFC 6455 §3.
- utf8
- UTF-8 validation per RFC 6455 §8.1 + §8.2.