Something went wrong. Try again.
An MQTT 5.0 and 3.1.1 client for Zig: a sans-I/O core, TCP, TLS, WebSocket and wss transports, SASL authentication, and reconnection
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435// SPDX-FileCopyrightText: © 2026 Jeffrey C. Ollie <jeff@ocjtech.us>// SPDX-License-Identifier: MIT
//! MQTT 5.0 and 3.1.1, with no I/O in it.//!//! `protocol` is the wire format: packets, properties, topic matching, and the//! two data representations everything else is built from. `Connection` is a//! client session built on top of it -- packet identifiers, the QoS 1 and QoS 2//! handshakes, flow control, topic aliases, keepalive and session resumption --//! which takes bytes in, gives bytes out, and never touches a socket or a//! clock. `session` writes one down so that it survives the process as well as//! the connection.//!//! Nothing here names a transport, and nothing here allocates except//! `Connection`, which needs somewhere to keep an unacknowledged message until//! it is acknowledged.//!//! The `mqtt_client` module is the other half: it moves those bytes along a//! `std.Io.Reader` and a `std.Io.Writer`, and reconnects when one breaks. A//! program driving its own event loop wants this module and not that one.
pub const protocol = @import("protocol.zig");pub const Connection = @import("Connection.zig");
/// Writing a session down so that it survives the process, which is what makes/// QoS 1 and QoS 2 mean anything to a program that can be restarted. See/// `Connection.saveSession` and `Connection.loadSession`.pub const session = @import("session.zig");
test { _ = protocol; _ = Connection; _ = session;}