alkhttp 0.5.0

HTTP interface for the alk stack: serves HTTP/1.1 + HTTP/2 on standard ALPNs (with WebSocket upgrade carrying the channels protocol) and hosts the HTTP-backed call-protocol adapters
Documentation
//! WebSocket subsystem: the browser bidirectional path
//! (ADR-067, `docs/architecture/decisions`).
//!
//! A WS session carries the **channels protocol**: the 8-byte chunk
//! header multiplexes N logical channels over the WS binary message
//! stream; channel 0 is pre-negotiated as `alk/call` and dispatched by
//! the shared `Dispatcher`. The WS↔byte-stream adapter (`byte_adapter`)
//! is the single seam between axum's WS and
//! alkcall's byte-oriented channels machinery — shared with the
//! `from_wss` consumer path ([ADR-070]).
//!
//! Feature sides: `upgrade` (and the axum flavor of the adapter)
//! compile under `server`; the tungstenite flavor compiles under `wss`
//! (and under `test-support`); both are available with both features.

#[cfg(any(feature = "server", feature = "wss", test))]
pub mod byte_adapter;
#[cfg(feature = "server")]
pub mod upgrade;

#[cfg(any(feature = "server", feature = "wss", test))]
pub use byte_adapter::{
    WsByteStream, WsPumps, DEFAULT_WS_IDLE_TIMEOUT, DEFAULT_WS_WRITE_TIMEOUT, INBOUND_WS_FRAME_CAP,
    INBOUND_WS_MESSAGE_CAP, MAX_CHUNK_LEN, PENDING_BUFFER_CAP, WS_GOING_AWAY, WS_MESSAGE_CAP,
    WS_PROTOCOL_ERROR,
};

#[cfg(feature = "server")]
pub use byte_adapter::{
    split_ws_to_bytes, split_ws_to_bytes_idle, split_ws_to_bytes_idle_with_write,
};

#[cfg(feature = "server")]
pub use alkcall::channels::operations::ChannelCore;
#[cfg(any(test, feature = "wss"))]
pub use byte_adapter::split_tungstenite_to_bytes;
#[cfg(all(test, feature = "server", feature = "wss"))]
pub(crate) use upgrade::adapter_install_channel_zero;
#[cfg(feature = "server")]
pub use upgrade::{
    run_channels_session, ws_bearer_auth, ws_upgrade_handler, ChannelsPolicy, OpRegisterAcl,
    OpenableAlpn, OpenableAlpns, SessionSlots, SessionState, WsSessions, WsTimeouts,
    DEFAULT_WS_MAX_SESSIONS,
};

#[cfg(all(any(test, feature = "test-support"), feature = "server"))]
pub use upgrade::test_support::{frame_channel0_chunk, ChunkAssembler, FrameAssembler, WsClient};