Hopf

Native, asynchronous, non-blocking, event-driven multi-protocol networking framework in Rust. Successor to Gumdrop without the servlet container — same architectural contracts, TPC execution, plain buffers, and in-tree protocol work.

Hopf is not a server-only product. The default topology is a graph of endpoints on one Runtime: listen and dial are equal. Peer compositions (N listeners + M dialers) are normal. Clients routinely host multiple protocols in one process (at minimum DNS under dial).

Why Hopf?

Full feature list

Framework substrate (hopf-core)

TLS (hopf-core::tls)

QUIC and HTTP/3 (hopf-quic, hopf-http)

HTTP (hopf-http)

WebDAV (hopf-webdav)

WebSocket (hopf-websocket)

gRPC (hopf-grpc)

DNS (hopf-dns)

mDNS / DNS-SD (hopf-mdns)

MASQUE (hopf-masque)

SOCKS (hopf-socks)

LDAP (hopf-ldap)

FTP (hopf-ftp)

SMTP (hopf-smtp)

POP3 (hopf-pop3)

NNTP (hopf-nntp)

IMAP (hopf-imap)

MQTT (hopf-mqtt)

AMQP 0-9-1 (hopf-amqp)

AMQP 1.0 (hopf-amqp1)

Mailbox (hopf-mailbox)

Auth (hopf-auth)

Telemetry (hopf-otel)

Protocols at a glance

Protocol Crate Server Client Notes
HTTP/1.x hopf-http ✓ ✓ Stream API
HTTP/2 hopf-http ✓ ✓ h2c + ALPN
HTTP/3 hopf-http + hopf-quic ✓ ✓ in-tree H3
WebDAV hopf-webdav ✓ — on HTTP
WebSocket hopf-websocket ✓ helpers H1/H2/H3 upgrade
gRPC (unary) hopf-grpc ✓ ✓ on HTTP Streams
DNS hopf-dns ✓ ✓ stub + forwarder; DoT/DoQ/DoH (TCP TLS / QUIC); DoDTLS not wired
FTP / FTPS hopf-ftp ✓ ✓ callback-driven client
SMTP / SMTPS hopf-smtp ✓ ✓ callback-driven client
POP3 / POP3S hopf-pop3 ✓ ✓ callback-driven client (Pop3Fetch)
NNTP / NNTPS hopf-nntp — ✓ callback-driven client (NntpSession)
IMAP / IMAPS hopf-imap ✓ ✓ pipelined client (ImapFetch / ImapIdle)
MQTT hopf-mqtt ✓ ✓ 3.1.1 + v5 core; optional WS bridge
AMQP 0-9-1 hopf-amqp — ✓ client-only (RabbitMQ); AMQPS
AMQP 1.0 hopf-amqp1 — ✓ client-only (ISO/IEC 19464); separate crate from hopf-amqp; AMQPS
LDAP hopf-ldap — ✓ client-only; LDAPS/StartTLS; RFC 4533 content sync
Mailbox storage hopf-mailbox SPI — mbox / Maildir++
mDNS / DNS-SD hopf-mdns ✓ ✓ multicast UDP
MASQUE hopf-masque ✓ ✓ CONNECT-UDP full relay; CONNECT-IP is app-driven plumbing; H1/H2/H3
SOCKS hopf-socks ✓ ✓ no RFC 1961 GSSAPI yet
QUIC hopf-quic ✓ ✓ Endpoint per stream; in-tree RFC 9000 transport, no external QUIC library
TLS / DTLS hopf-core ✓ ✓ in-tree TLS 1.2/1.3 and DTLS 1.2/1.3 on AWS-LC; TCP via hopf-core::tls PEM helpers + TcpListenerConfig / TcpConnectorConfig

Feature manuals in the sidebar document RFCs, every configuration knob, handler SPIs, and examples. Start with Getting started or Architecture.