⚡ Make Fiber Faster
Custom JSON Encoder/Decoder
Fiber defaults to the standard encoding/json for stability and reliability. If you need more speed, consider these libraries:
Example
package main
import "github.com/gofiber/fiber/v3"
import "github.com/goccy/go-json"
func main() {
app := fiber.New(fiber.Config{
JSONEncoder: json.Marshal,
JSONDecoder: json.Unmarshal,
})
// ...
}
References
- Set custom JSON encoder for client
- Set custom JSON decoder for client
- Set custom JSON encoder for application
- Set custom JSON decoder for application
Alternative Regex Engines for regex() Constraints
Fiber route patterns still do not support general regex routes, but you can swap
the compiler used by regex() parameter constraints through
Config.RegexHandler. This lets you try
high-performance engines such as
coregex on the matching path.
Configure RegexHandler
Set RegexHandler to the compile function you want Fiber to use for regex()
constraints.
Example
package main
import (
"github.com/coregx/coregex"
"github.com/gofiber/fiber/v3"
)
func main() {
app := fiber.New(fiber.Config{
RegexHandler: coregex.MustCompile,
})
app.Get("/api/:id<regex(\\d+)>", func(c fiber.Ctx) error {
return c.SendString("ID: " + c.Params("id"))
})
}
You can also set it explicitly to the standard library default:
Example
package main
import (
"regexp"
"github.com/gofiber/fiber/v3"
)
func main() {
app := fiber.New(fiber.Config{
RegexHandler: regexp.MustCompile,
})
_ = app
}
Notes
RegexHandleronly affectsregex()parameter constraints- invalid patterns still panic during route registration because Fiber uses
MustCompile-style semantics - Fiber may invoke
RegexHandlermore than once per route while parsing raw and normalized route patterns during registration - compiled matchers are reused across requests, so custom matchers must be safe for concurrent use