Documentation
¶
Overview ¶
Package zap provides a ZAP binary protocol transport for Hanzo Base.
Instead of HTTP/JSON, clients can communicate with Base using the ZAP zero-copy binary protocol for significantly lower latency and memory usage.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MustRegister ¶
MustRegister registers the ZAP transport plugin with a Base app. Call this before app.Start().
func MustRegisterWithConfig ¶
MustRegisterWithConfig registers the ZAP transport plugin with custom config.
Types ¶
type Config ¶
type Config struct {
// Port to listen on for ZAP connections (default 9999).
Port int
// Address is the host:port to listen on, overriding Port (default
// ZAP_ADDR). Empty means the HTTP server's host on Port, so a Base
// serving HTTP on loopback serves ZAP on loopback too. ":9999" is every
// interface, which is only what an operator gets by writing it.
Address string
// MDNS turns on mDNS: the node advertises itself on the LAN and dials the
// peers it finds there (default ZAP_MDNS, else off). Hanzo nodes reach each
// other through explicit peers, so discovery runs only for an operator who
// asks for it, and never on a loopback address, where no peer that learned
// of the node could reach it.
MDNS bool
// NoMDNS keeps mDNS off even when MDNS asks for it. It predates MDNS, from
// when discovery was on by default, and stays so that configs written for
// v1.5.93 keep meaning what they say.
NoMDNS bool
// ServiceType for mDNS discovery (default "_hanzo-base._tcp").
ServiceType string
// NodeID for ZAP peer identification (default hostname-based).
NodeID string
// Enabled controls whether the ZAP listener starts (default true).
Enabled bool
}
Config for the ZAP transport plugin.
func DefaultConfig ¶
func DefaultConfig() Config
DefaultConfig returns a Config with sensible defaults.
Click to show internal directories.
Click to hide internal directories.