package module
Version: v0.13.0 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2021 License: AGPL-3.0 Imports: 15 Imported by: 1



Package caddy provides a handler for Caddy Server ( allowing to transform any Caddy instance into a Mercure hub.



This section is empty.


This section is empty.


This section is empty.


type JWTConfig

type JWTConfig struct {
	Key string `json:"key,omitempty"`
	Alg string `json:"alg,omitempty"`

type Mercure

type Mercure struct {
	// Allow subscribers with no valid JWT.
	Anonymous bool `json:"anonymous,omitempty"`

	// Dispatch updates when subscriptions are created or terminated
	Subscriptions bool `json:"subscriptions,omitempty"`

	// Enable the demo.
	Demo bool `json:"demo,omitempty"`

	// Enable the UI.
	UI bool `json:"ui,omitempty"`

	// Maximum duration before closing the connection, defaults to 600s, set to 0 to disable.
	WriteTimeout *caddy.Duration `json:"write_timeout,omitempty"`

	// Maximum dispatch duration of an update.
	DispatchTimeout caddy.Duration `json:"dispatch_timeout,omitempty"`

	// Frequency of the heartbeat, defaults to 40s.
	Heartbeat caddy.Duration `json:"heartbeat,omitempty"`

	// JWT key and signing algorithm to use for publishers.
	PublisherJWT JWTConfig `json:"publisher_jwt,omitempty"`

	// JWT key and signing algorithm to use for subscribers.
	SubscriberJWT JWTConfig `json:"subscriber_jwt,omitempty"`

	// Origins allowed to publish updates
	PublishOrigins []string `json:"publish_origins,omitempty"`

	// Allowed CORS origins.
	CORSOrigins []string `json:"cors_origins,omitempty"`

	// Transport to use.
	TransportURL string `json:"transport_url,omitempty"`

	// Number of cache counters, defaults to 6e7, set to -1 to disable the cache. See for details.
	CacheNumCounters *int64 `json:"cache_max_counters,omitempty"`

	// Maximum cache cost, defaults to 100MB, set to -1 to disable the cache. See for details.
	CacheMaxCost *int64 `json:"cache_max_cost,omitempty"`
	// contains filtered or unexported fields

Mercure implements a Mercure hub as a Caddy module. Mercure is a protocol allowing to push data updates to web browsers and other HTTP clients in a convenient, fast, reliable and battery-efficient way.

func (Mercure) CaddyModule

func (Mercure) CaddyModule() caddy.ModuleInfo

CaddyModule returns the Caddy module information.

func (*Mercure) Cleanup

func (m *Mercure) Cleanup() error

func (*Mercure) Provision

func (m *Mercure) Provision(ctx caddy.Context) error

func (Mercure) ServeHTTP

func (m Mercure) ServeHTTP(w http.ResponseWriter, r *http.Request, next caddyhttp.Handler) error

func (*Mercure) UnmarshalCaddyfile

func (m *Mercure) UnmarshalCaddyfile(d *caddyfile.Dispenser) error

UnmarshalCaddyfile sets up the handler from Caddyfile tokens.

Source Files


Path Synopsis
Copied from
Copied from

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL