fasthttp

package module
v0.23.9 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2026 License: BSD-3-Clause Imports: 26 Imported by: 12

Documentation

Index

Constants

View Source
const (
	MethodGet      = "GET"     // RFC 7231, 4.3.1
	MethodHead     = "HEAD"    // RFC 7231, 4.3.2
	MethodPost     = "POST"    // RFC 7231, 4.3.3
	MethodPut      = "PUT"     // RFC 7231, 4.3.4
	MethodPatch    = "PATCH"   // RFC 5789
	MethodDelete   = "DELETE"  // RFC 7231, 4.3.5
	MethodConnect  = "CONNECT" // RFC 7231, 4.3.6
	MethodOptions  = "OPTIONS" // RFC 7231, 4.3.7
	MethodTrace    = "TRACE"   // RFC 7231, 4.3.8
	MethodWildcard = "*"
)

HTTP methods were copied from net/http.

View Source
const (
	MIMETextXML               = "text/xml"
	MIMETextHTML              = "text/html"
	MIMETextPlain             = "text/plain"
	MIMEApplicationXML        = "application/xml"
	MIMEApplicationJSON       = "application/json"
	MIMEApplicationJavaScript = "application/javascript"
	MIMEApplicationForm       = "application/x-www-form-urlencoded"
	MIMEOctetStream           = "application/octet-stream"
	MIMEMultipartForm         = "multipart/form-data"

	MIMETextXMLCharsetUTF8               = "text/xml; charset=utf-8"
	MIMETextHTMLCharsetUTF8              = "text/html; charset=utf-8"
	MIMETextPlainCharsetUTF8             = "text/plain; charset=utf-8"
	MIMEApplicationXMLCharsetUTF8        = "application/xml; charset=utf-8"
	MIMEApplicationJSONCharsetUTF8       = "application/json; charset=utf-8"
	MIMEApplicationJavaScriptCharsetUTF8 = "application/javascript; charset=utf-8"
)

MIME types that are commonly used

View Source
const (
	StatusContinue                      = 100 // RFC 7231, 6.2.1
	StatusSwitchingProtocols            = 101 // RFC 7231, 6.2.2
	StatusProcessing                    = 102 // RFC 2518, 10.1
	StatusEarlyHints                    = 103 // RFC 8297
	StatusOK                            = 200 // RFC 7231, 6.3.1
	StatusCreated                       = 201 // RFC 7231, 6.3.2
	StatusAccepted                      = 202 // RFC 7231, 6.3.3
	StatusNonAuthoritativeInformation   = 203 // RFC 7231, 6.3.4
	StatusNoContent                     = 204 // RFC 7231, 6.3.5
	StatusResetContent                  = 205 // RFC 7231, 6.3.6
	StatusPartialContent                = 206 // RFC 7233, 4.1
	StatusMultiStatus                   = 207 // RFC 4918, 11.1
	StatusAlreadyReported               = 208 // RFC 5842, 7.1
	StatusIMUsed                        = 226 // RFC 3229, 10.4.1
	StatusMultipleChoices               = 300 // RFC 7231, 6.4.1
	StatusMovedPermanently              = 301 // RFC 7231, 6.4.2
	StatusFound                         = 302 // RFC 7231, 6.4.3
	StatusSeeOther                      = 303 // RFC 7231, 6.4.4
	StatusNotModified                   = 304 // RFC 7232, 4.1
	StatusUseProxy                      = 305 // RFC 7231, 6.4.5
	StatusTemporaryRedirect             = 307 // RFC 7231, 6.4.7
	StatusPermanentRedirect             = 308 // RFC 7538, 3
	StatusBadRequest                    = 400 // RFC 7231, 6.5.1
	StatusUnauthorized                  = 401 // RFC 7235, 3.1
	StatusPaymentRequired               = 402 // RFC 7231, 6.5.2
	StatusForbidden                     = 403 // RFC 7231, 6.5.3
	StatusNotFound                      = 404 // RFC 7231, 6.5.4
	StatusMethodNotAllowed              = 405 // RFC 7231, 6.5.5
	StatusNotAcceptable                 = 406 // RFC 7231, 6.5.6
	StatusProxyAuthRequired             = 407 // RFC 7235, 3.2
	StatusRequestTimeout                = 408 // RFC 7231, 6.5.7
	StatusConflict                      = 409 // RFC 7231, 6.5.8
	StatusGone                          = 410 // RFC 7231, 6.5.9
	StatusLengthRequired                = 411 // RFC 7231, 6.5.10
	StatusPreconditionFailed            = 412 // RFC 7232, 4.2
	StatusRequestEntityTooLarge         = 413 // RFC 7231, 6.5.11
	StatusRequestURITooLong             = 414 // RFC 7231, 6.5.12
	StatusUnsupportedMediaType          = 415 // RFC 7231, 6.5.13
	StatusRequestedRangeNotSatisfiable  = 416 // RFC 7233, 4.4
	StatusExpectationFailed             = 417 // RFC 7231, 6.5.14
	StatusTeapot                        = 418 // RFC 7168, 2.3.3
	StatusMisdirectedRequest            = 421 // RFC 7540, 9.1.2
	StatusUnprocessableEntity           = 422 // RFC 4918, 11.2
	StatusLocked                        = 423 // RFC 4918, 11.3
	StatusFailedDependency              = 424 // RFC 4918, 11.4
	StatusTooEarly                      = 425 // RFC 8470, 5.2.
	StatusUpgradeRequired               = 426 // RFC 7231, 6.5.15
	StatusPreconditionRequired          = 428 // RFC 6585, 3
	StatusTooManyRequests               = 429 // RFC 6585, 4
	StatusRequestHeaderFieldsTooLarge   = 431 // RFC 6585, 5
	StatusUnavailableForLegalReasons    = 451 // RFC 7725, 3
	StatusInternalServerError           = 500 // RFC 7231, 6.6.1
	StatusNotImplemented                = 501 // RFC 7231, 6.6.2
	StatusBadGateway                    = 502 // RFC 7231, 6.6.3
	StatusServiceUnavailable            = 503 // RFC 7231, 6.6.4
	StatusGatewayTimeout                = 504 // RFC 7231, 6.6.5
	StatusHTTPVersionNotSupported       = 505 // RFC 7231, 6.6.6
	StatusVariantAlsoNegotiates         = 506 // RFC 2295, 8.1
	StatusInsufficientStorage           = 507 // RFC 4918, 11.5
	StatusLoopDetected                  = 508 // RFC 5842, 7.2
	StatusNotExtended                   = 510 // RFC 2774, 7
	StatusNetworkAuthenticationRequired = 511 // RFC 6585, 6
)

HTTP status codes were copied from net/http.

Variables

This section is empty.

Functions

func MustNew

func MustNew(opts ...Option) kit.Gateway

func New

func New(opts ...Option) (kit.Gateway, error)

func RPCs added in v0.10.40

func RPCs(predicate ...string) []kit.RouteSelector

RPCs is a shortcut for multiple RPC selectors

Types

type CORSConfig

type CORSConfig struct {
	AllowedHeaders    []string
	AllowedMethods    []string
	AllowedOrigins    []string
	ExposedHeaders    []string
	IgnoreEmptyOrigin bool
	AllowCredentials  bool
}

type CompressionLevel added in v0.10.7

type CompressionLevel int

CompressionLevel is numeric representation of compression level

const (
	CompressionLevelDisabled        CompressionLevel = -1
	CompressionLevelDefault         CompressionLevel = 0
	CompressionLevelBestSpeed       CompressionLevel = 1
	CompressionLevelBestCompression CompressionLevel = 2
)

Represents compression level that will be used in the middleware

type DecoderFunc

type DecoderFunc func(reqCtx *RequestCtx, data []byte) (kit.Message, error)

type Option

type Option func(b *bundle)

func Listen

func Listen(addr string) Option

func SuperFast added in v0.11.10

func SuperFast() Option

func WithAutoDecompressRequests added in v0.17.7

func WithAutoDecompressRequests(t bool) Option

WithAutoDecompressRequests if set TRUE, it automatically decompresses the request body based on the Content-Encoding header.

func WithBufferSize

func WithBufferSize(read, write int) Option

func WithCORS

func WithCORS(cfg CORSConfig) Option

func WithCompressionLevel added in v0.10.7

func WithCompressionLevel(level CompressionLevel) Option

WithCompressionLevel will enable compressing response body based on the Accept-Encoding header of the client request

func WithDisableHeaderNamesNormalizing added in v0.11.31

func WithDisableHeaderNamesNormalizing() Option

func WithLogger

func WithLogger(l kit.Logger) Option

func WithMaxRequestBodySize added in v0.21.26

func WithMaxRequestBodySize(size int) Option

func WithPredicateKey

func WithPredicateKey(key string) Option

func WithReverseProxy added in v0.11.0

func WithReverseProxy(path string, opt ...proxy.Option) Option

func WithServeFS added in v0.16.0

func WithServeFS(path string, root string, fs fs.FS) Option

func WithServerName

func WithServerName(name string) Option

func WithWebsocketEndpoint

func WithWebsocketEndpoint(endpoint string) Option

type Param added in v0.11.10

type Param struct {
	Key   string
	Value string
}

Param is a single URL parameter, consisting of a key and a value.

type Params

type Params []Param

Params is a Param-slice, as returned by the httpMux. The slice is ordered, the first URL parameter is also the first slice value. It is therefore safe to read values by the index.

func GetParams added in v0.12.7

func GetParams(ctx *RequestCtx) Params

func (Params) ByName added in v0.11.10

func (ps Params) ByName(name string) string

ByName returns the value of the first Param which key matches the given name. If no matching Param is found, an empty string is returned.

type RequestCtx added in v0.12.7

type RequestCtx = fasthttp.RequestCtx

type Selector

type Selector struct {
	Method    string
	Path      string
	Predicate string
	Decoder   DecoderFunc
	Encoding  kit.Encoding
}

Selector implements kit.RouteSelector and also kit.RPCRouteSelector and kit.RESTRouteSelector

func DELETE

func DELETE(path string) Selector

DELETE a shortcut for REST(http.MethodDelete, path)

func GET

func GET(path string) Selector

GET a shortcut for REST(http.MethodGet, path)

func PATCH

func PATCH(path string) Selector

PATCH a shortcut for REST(http.MethodPatch, path)

func POST

func POST(path string) Selector

POST a shortcut for REST(http.MethodPost, path)

func PUT

func PUT(path string) Selector

PUT a shortcut for REST(http.MethodPut, path)

func REST

func REST(method, path string) Selector

REST returns a Selector which acts on http requests.

func RPC

func RPC(predicate string) Selector

RPC returns a Selector which acts on websocket requests

func (Selector) GetEncoding

func (r Selector) GetEncoding() kit.Encoding

func (Selector) GetMethod

func (r Selector) GetMethod() string

func (Selector) GetPath

func (r Selector) GetPath() string

func (Selector) GetPredicate

func (r Selector) GetPredicate() string

func (Selector) Query

func (r Selector) Query(q string) any

func (Selector) SetDecoder added in v0.9.17

func (r Selector) SetDecoder(f DecoderFunc) Selector

func (Selector) SetEncoding

func (r Selector) SetEncoding(enc kit.Encoding) Selector

func (Selector) String added in v0.21.14

func (r Selector) String() string

Directories

Path Synopsis
internal
Package proxy of reverse handler based fasthttp this lib ref to: Issue: https://github.com/valyala/fasthttp/issues/64 Code: https://golang.org/src/net/http/httputil/reverseproxy.go Pool Ref: https://github.com/fatih/pool/blob/master/channel.
Package proxy of reverse handler based fasthttp this lib ref to: Issue: https://github.com/valyala/fasthttp/issues/64 Code: https://golang.org/src/net/http/httputil/reverseproxy.go Pool Ref: https://github.com/fatih/pool/blob/master/channel.

Jump to

Keyboard shortcuts

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