2020-05-28 14:19:14 -06:00
---
title: "Module Namespaces"
---
# Module Namespaces
2022-07-29 14:42:23 -06:00
Caddy guest modules are loaded generically as `interface{}` or `any` types. In order for the host modules to be able to use them, the loaded guest modules are usually type-asserted to a known type first. This page describes the mapping from module namespaces to Go types for all the standard modules.
2020-05-28 14:19:14 -06:00
Documentation for non-standard module namespaces can be found with the documentation for the host module that defines them.
< aside class = "tip" >
One way to read this table is, "If your module is in < namespace> , then it should compile as < type> ."
< / aside >
2022-07-29 14:42:23 -06:00
Namespace | Expected Type | Description | Notes
--------- | ------------- | ----------- | ----------
2020-05-28 14:19:14 -06:00
| | [`caddy.App` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#App ) | Caddy app
2023-01-22 04:54:57 -05:00
caddy.config_loaders | [`caddy.ConfigLoader` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2#ConfigLoader ) | Loads a config | < i > ⚠️ Experimental</ i >
2022-09-06 13:57:07 -06:00
caddy.fs | [`fs.FS` ](https://pkg.go.dev/io/fs#FS ) | Virtual file system | < i > ⚠️ Experimental</ i >
2023-01-22 03:50:11 -05:00
caddy.listeners | [`caddy.ListenerWrapper` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2#ListenerWrapper ) | Wrap network listeners
caddy.logging.encoders | [`zapcore.Encoder` ](https://pkg.go.dev/go.uber.org/zap/zapcore#Encoder ) | Log entry encoder
caddy.logging.encoders.filter | [`logging.LogFieldFilter` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/logging?tab=doc#LogFieldFilter ) | Log field filter
2020-05-28 14:19:14 -06:00
caddy.logging.writers | [`caddy.WriterOpener` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#WriterOpener ) | Log writers
caddy.storage | [`caddy.StorageConverter` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#StorageConverter ) | Storage backends
2023-01-22 03:50:11 -05:00
dns.providers | [`certmagic.ACMEDNSProvider` ](https://pkg.go.dev/github.com/caddyserver/certmagic#ACMEDNSProvider ) | DNS challenge solver
2022-09-20 13:27:27 -06:00
events.handlers | [`caddyevents.Handler` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyevents#Handler ) | Event handlers | < i > ⚠️ Experimental</ i >
2020-05-28 14:19:14 -06:00
http.authentication.hashes | [`caddyauth.Comparer` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/caddyauth?tab=doc#Comparer ) | Password hashers/comparers
http.authentication.providers | [`caddyauth.Authenticator` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/caddyauth?tab=doc#Authenticator ) | HTTP authentication providers
2023-01-22 03:50:11 -05:00
http.encoders | [`encode.Encoder` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/encode#Encoder ) | Usually, compression
2020-05-28 14:19:14 -06:00
http.handlers | [`caddyhttp.MiddlewareHandler` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp?tab=doc#MiddlewareHandler ) | HTTP handlers
2023-01-22 03:50:11 -05:00
http.matchers | [`caddyhttp.RequestMatcher` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp?tab=doc#RequestMatcher ) | HTTP request matchers
2023-01-22 04:54:57 -05:00
http.precompressed | [`encode.Precompressed` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/encode#Precompressed ) | Supported precompress mappings
2020-05-28 14:19:14 -06:00
http.reverse_proxy.circuit_breakers | [`reverseproxy.CircuitBreaker` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy?tab=doc#CircuitBreaker ) | Reverse proxy circuit breakers
2023-01-22 03:50:11 -05:00
http.reverse_proxy.selection_policies | [`reverseproxy.Selector` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy?tab=doc#Selector ) | Load balancing selection policies
2020-05-28 14:19:14 -06:00
http.reverse_proxy.transport | [`http.RoundTripper` ](https://pkg.go.dev/net/http?tab=doc#RoundTripper ) | HTTP reverse proxy transports
2022-07-29 14:42:23 -06:00
http.reverse_proxy.upstreams | [`reverseproxy.UpstreamSource` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy?tab=doc#UpstreamSource ) | Dynamic upstream source | < i > ⚠️ Experimental</ i >
2023-01-22 04:54:57 -05:00
tls.certificates | [`caddytls.CertificateLoader` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls?tab=doc#CertificateLoader ) | TLS certificate source
tls.client_auth | [`caddytls.ClientCertificateVerifier` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#ClientCertificateVerifier ) | Verifies client certificates
tls.handshake_match | [`caddytls.ConnectionMatcher` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls?tab=doc#ConnectionMatcher ) | TLS connection matcher
2023-01-22 03:50:11 -05:00
tls.issuance | [`certmagic.Issuer` ](https://pkg.go.dev/github.com/caddyserver/certmagic?tab=doc#Issuer ) | TLS certificate issuer
2022-11-30 16:01:52 -07:00
tls.get_certificate | [`certmagic.Manager` ](https://pkg.go.dev/github.com/caddyserver/certmagic?tab=doc#Manager ) | TLS certificate manager | < i > ⚠️ Experimental</ i >
2023-01-22 03:50:11 -05:00
tls.stek | [`caddytls.STEKProvider` ](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls?tab=doc#STEKProvider ) | TLS session ticket key source
2022-09-20 13:27:27 -06:00
Namespaces marked as "Experimental" are subject to change. (Please develop with them so we can finalize their interfaces!)