Skip to main content

Crate plaza_session

Crate plaza_session 

Source
Expand description

Plaza Session: plaza::session::Session implementations for real network transports.

Both transports share one connection manager, targeting implementation, and serialization path (see manager); the per-transport modules are just socket pumps. The wire format is pluggable via codec::WireCodec: JSON by default, but an application can supply MessagePack or bincode.

Enable the actix_ws and/or tcp features to select transports.

Re-exports§

pub use conditioner::Delivery;
pub use conditioner::DirectionProfile;
pub use conditioner::LinkProfile;
pub use conditioner::LinkPublisher;
pub use conditioner::LinkSink;
pub use conditioner::RETRANSMIT_PENALTY;
pub use driver::LinkDriver;
pub use error::SessionLayerError;
pub use admission::ConnectionAdmission;
pub use admission::ConnectionAdmitter;
pub use admission::Farewell;
pub use admission::Peer;
pub use budget::OutboundBudget;
pub use gate::Over;
pub use gate::Rate;
pub use gate::Verdict;
pub use workload::Priority;
pub use workload::Workload;
pub use workload::DEFAULT_SOCKET_BUFFER_BYTES;
pub use workload::MIN_INBOUND_RATE;
pub use workload::RATE_HEADROOM;
pub use manager::ConnectionManager;
pub use manager::ConnectionOrder;
pub use manager::Frame;
pub use manager::InboundOverflow;
pub use manager::InboundVolume;
pub use manager::Limits;
pub use manager::OutboundOverflow;
pub use manager::OutboundVolume;
pub use manager::Overflow;
pub use manager::PresenceOverflow;
pub use manager::Probes;
pub use manager::Queues;
pub use manager::SessionClock;
pub use manager::SessionOptions;
pub use manager::TransportSession;
pub use manager::DEFAULT_BROADCAST_CAPACITY;
pub use manager::DEFAULT_CLIENT_QUEUE_CAPACITY;
pub use manager::DEFAULT_CONDITIONER_CAPACITY;
pub use manager::DEFAULT_MAX_FRAME_BYTES;
pub use manager::DEFAULT_MAX_MESSAGE_BYTES;
pub use manager::DEFAULT_PROBE_FAST_INTERVAL;
pub use manager::DEFAULT_PROBE_FAST_PINGS;
pub use manager::DEFAULT_PROBE_IDLE_INTERVAL;
pub use manager::DEFAULT_PROBE_SLOTS;
pub use actix_ws::ActixWsPlazaSession;
pub use tcp::TcpPlazaSession;

Modules§

actix_ws
WebSocket transport for actix-web.
admission
Admitting a connection on what it presents and how every close says why.
budget
What one connection may be sent, judged where the frames are decided on.
codec
Wire format used by a transport.
conditioner
Impairment on the link, applied where the link is.
control
The frames a session answers for itself: latency probes and their correlation.
driver
The connection loop a transport writes, minus the socket: the parts above assembled the way plaza’s own adapters assemble them. The connection loop every transport writes, minus the socket.
error
Errors produced by the transport implementations in this crate.
gate
How fast one connection may speak, judged before the queue everyone shares.
host
Standing a Plaza application up as a listen server: one process that is the authority, optionally plays, and serves its own browser client from the same port.
manager
Transport-agnostic connection management.
stats
What the transport dropped, which it otherwise only reports in a log line.
tcp
Length-delimited TCP transport.
workload
Queue depths and limits derived from what an application does.

Structs§

JsonCodec
JSON wire format. The default: human-readable and easy to inspect from a browser console or websocat.
MsgPackCodec
MessagePack wire format: compact and what a game usually wants once the protocol has stopped changing shape every day.

Traits§

WireCodec
Encodes and decodes values on the wire.