release notes
release notes
Published 5/22/2026
MinorContains new featuresregex() route constraints. Assign a drop-in engine such as coregex.MustCompile for faster matching;Fiber reuses the compiled matcher across requests.
app := fiber.New(fiber.Config{
RegexHandler: coregex.MustCompile, // default: regexp.MustCompile
})
https://docs.gofiber.io/api/fiber#regexhandlerhostauthorization middleware that validates the incoming Host header against an allowlist (exact host, .subdomain wildcard, CIDR range) to protect against DNS rebinding attacks.
app.Use(hostauthorization.New(hostauthorization.Config{
AllowedHosts: []string{"api.myapp.com", ".myapp.com", "10.0.0.0/8"},
}))
https://docs.gofiber.io/middleware/hostauthorizationprefork package and adds PreforkRecoverThreshold (max child restarts before the master exits) and PreforkLogger to ListenConfig.
https://docs.gofiber.io/api/fiber#preforkrecoverthresholdlog.WithContext(c) by configuring a template with log.SetContextTemplate, reusing the middleware/logger engine (including ${value:key} for arbitrary context values).
log.MustSetContextTemplate(log.ContextConfig{Format: log.RequestIDFormat})
app.Get("/", func(c fiber.Ctx) error {
log.WithContext(c).Info("start") // renders the request id
return c.SendString("ok")
})
https://docs.gofiber.io/api/log#bind-contextapp.SharedState() for data shared across workers/processes, with JSON/MsgPack/CBOR/XML helpers and automatic key namespacing. app.State() stays process-local.
app := fiber.New(fiber.Config{
SharedStorage: redis.New(), // any fiber.Storage shared across workers
})
app.SharedState().SetJSON("config", cfg, 0)
https://docs.gofiber.io/api/state#sharedstate-prefork-safemiddleware/sse for Server-Sent Events: SSE headers, event/comment/retry frames, per-write flushing, heartbeats,
Last-Event-ID access, and disconnect detection via stream.Context().
app.Get("/events", sse.New(sse.Config{
Handler: func(c fiber.Ctx, stream *sse.Stream) error {
return stream.Event(sse.Event{Name: "message", Data: fiber.Map{"message": "hello"}})
},
}))
https://docs.gofiber.io/middleware/sse📒 Documentation: https://docs.gofiber.io/next/
💬 Discord: https://gofiber.io/discord
Full Changelog: https://github.com/gofiber/fiber/compare/v3.2.0...v3.3.0
Thank you @ReneWerner87, @elton-peixoto-lu, @gaby, @gtoxlili, @lyyvalhalla, @mutantkeyboard, @pageton and @pratikramteke for making this release possible.
release notes
Published 5/22/2026
MinorContains new featuresregex() route constraints. Assign a drop-in engine such as coregex.MustCompile for faster matching;Fiber reuses the compiled matcher across requests.
app := fiber.New(fiber.Config{
RegexHandler: coregex.MustCompile, // default: regexp.MustCompile
})
https://docs.gofiber.io/api/fiber#regexhandlerhostauthorization middleware that validates the incoming Host header against an allowlist (exact host, .subdomain wildcard, CIDR range) to protect against DNS rebinding attacks.
app.Use(hostauthorization.New(hostauthorization.Config{
AllowedHosts: []string{"api.myapp.com", ".myapp.com", "10.0.0.0/8"},
}))
https://docs.gofiber.io/middleware/hostauthorizationprefork package and adds PreforkRecoverThreshold (max child restarts before the master exits) and PreforkLogger to ListenConfig.
https://docs.gofiber.io/api/fiber#preforkrecoverthresholdlog.WithContext(c) by configuring a template with log.SetContextTemplate, reusing the middleware/logger engine (including ${value:key} for arbitrary context values).
log.MustSetContextTemplate(log.ContextConfig{Format: log.RequestIDFormat})
app.Get("/", func(c fiber.Ctx) error {
log.WithContext(c).Info("start") // renders the request id
return c.SendString("ok")
})
https://docs.gofiber.io/api/log#bind-contextapp.SharedState() for data shared across workers/processes, with JSON/MsgPack/CBOR/XML helpers and automatic key namespacing. app.State() stays process-local.
app := fiber.New(fiber.Config{
SharedStorage: redis.New(), // any fiber.Storage shared across workers
})
app.SharedState().SetJSON("config", cfg, 0)
https://docs.gofiber.io/api/state#sharedstate-prefork-safemiddleware/sse for Server-Sent Events: SSE headers, event/comment/retry frames, per-write flushing, heartbeats,
Last-Event-ID access, and disconnect detection via stream.Context().
app.Get("/events", sse.New(sse.Config{
Handler: func(c fiber.Ctx, stream *sse.Stream) error {
return stream.Event(sse.Event{Name: "message", Data: fiber.Map{"message": "hello"}})
},
}))
https://docs.gofiber.io/middleware/sse📒 Documentation: https://docs.gofiber.io/next/
💬 Discord: https://gofiber.io/discord
Full Changelog: https://github.com/gofiber/fiber/compare/v3.2.0...v3.3.0
Thank you @ReneWerner87, @elton-peixoto-lu, @gaby, @gtoxlili, @lyyvalhalla, @mutantkeyboard, @pageton and @pratikramteke for making this release possible.
⚡️ Express inspired web framework written in Go