Versions in this module Expand all Collapse all v0 v0.19.4 Nov 1, 2026 Changes in this version + func ExtractLanguage(r *http.Request) string + func ExtractLanguageWithDefault(r *http.Request, defaultLang string) string + func FromAcceptLanguageSource(ctx context.Context, r *http.Request, key string) string + func FromContextSource(ctx context.Context, r *http.Request, key string) string + func FromCookieSource(ctx context.Context, r *http.Request, key string) string + func FromHeaderSource(ctx context.Context, r *http.Request, key string) string + func FromQuerySource(ctx context.Context, r *http.Request, key string) string + func GetRemoteIP(remoteAddr string) string + func GetRemotePort(remoteAddr string) string + func GetTLSVersionString(version uint16) string + func NormalizeLanguage(lang string) string + func ParseAcceptLanguage(acceptLang string) (language, region, fullTag string) + type ContextKey string + func (ck ContextKey) String() string + type LanguageExtractor struct + CookieKey string + DefaultLanguage string + HeaderKeys []string + Normalize bool + QueryKeys []string + UseAcceptLang bool + func NewLanguageExtractor(defaultLang string) *LanguageExtractor + func (le *LanguageExtractor) Extract(r *http.Request) string + func (le *LanguageExtractor) ExtractWithContext(r *http.Request, contextKey ContextKey) (*http.Request, string) + type MetadataExtractor struct + func NewMetadataExtractor(ctx context.Context, r *http.Request) *MetadataExtractor + func NewMetadataExtractorFromRequest(r *http.Request) *MetadataExtractor + func (me *MetadataExtractor) Default(val string) *MetadataExtractor + func (me *MetadataExtractor) FromContext(key ContextKey) *MetadataExtractor + func (me *MetadataExtractor) FromCookie(key string) *MetadataExtractor + func (me *MetadataExtractor) FromHeader(key string) *MetadataExtractor + func (me *MetadataExtractor) FromQuery(key string) *MetadataExtractor + func (me *MetadataExtractor) Get() string + func (me *MetadataExtractor) WithProcess(process ProcessFunc) *MetadataExtractor + type ProcessFunc func(val string) string + type RequestMetadata struct + Accept string + AcceptEncoding string + AcceptLanguage string + BotName string + Browser string + BrowserVersion string + CFConnectingIP string + CFIPCountry string + CFRay string + CacheControl string + ClientIP string + Connection string + DNT string + Device string + DeviceType string + DeviceVendor string + IfModifiedSince string + IfNoneMatch string + IsBot bool + IsMobile bool + IsTablet bool + OS string + OSVersion string + Origin string + Protocol string + QueryString string + Referer string + RemoteAddr string + RequestHost string + RequestMethod string + RequestURI string + SecCHUA string + SecCHUAMobile string + SecCHUAPlatform string + SecWebSocketExtensions string + SecWebSocketKey string + SecWebSocketProtocol string + SecWebSocketVersion string + TLSCipherSuite uint16 + TLSServerName string + TLSVersion uint16 + Upgrade string + UserAgent string + XCorrelationID string + XDeviceID string + XForwardedFor string + XForwardedHost string + XForwardedPort string + XForwardedProto string + XRealIP string + XRequestID string + func ExtractRequestMetadata(r *http.Request) *RequestMetadata + func FromMap(data map[string]interface{}) *RequestMetadata + func (m *RequestMetadata) GetHeader(key string) string + func (m *RequestMetadata) SetHeader(key, value string) + func (m *RequestMetadata) ToMap() map[string]interface{} + type SourceFunc func(ctx context.Context, r *http.Request, key string) string