fasthttp

package module
v0.12.7 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 2024 License: BSD-3-Clause Imports: 23 Imported by: 11

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
}

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 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

func WithDisableHeaderNamesNormalizing added in v0.11.31

func WithDisableHeaderNamesNormalizing() Option

func WithLogger

func WithLogger(l kit.Logger) Option

func WithPredicateKey

func WithPredicateKey(key string) Option

func WithReverseProxy added in v0.11.0

func WithReverseProxy(path string, opt ...proxy.Option) 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) interface{}

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

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