For a detailed view of all changes and the migration guide, visit:
https://docs.gofiber.io/whats_new
Try our new migration tool to help you upgrade from v2 to v3:
go install github.com/gofiber/cli/fiber@latest
fiber migrate --to v3What's Changed
🚀 New Features
- 🚀 App (Docs)
Rename WithTlsConfigmethod toWithTLSConfigin (#2570)- Use any as default Message type of Error struct in (#1925)
- Add support for custom constraints in (#2807)
- Add support for trusted origins in (#2910)
- Add DialDualStack option for upstream IPv6 support in (#2900)
- TrustedOrigins using
https://*.example.comstyle subdomains in (#2925) - Add configuration support to
c.SendFile()in (#3017) - Add CHIPS support to Cookie in (#3047)
- Add TestConfig to
app.Test()for configurable testing in (#3161) - Add buffered streaming support in (#3131)
- Add support for AutoTLS / ACME in (#3201)
- Add support for configuring TLS Min Version in (#3248)
- Fix square bracket notation in Multipart FormData in (#3235)
- Add support for application state management in (#3360)
- Add support for
NewErrorfin (#3463) - Add UNIX socket support in (#3535)
- Add support for Msgpack in (#3565)
- Add default UTF-8 charset in (#3583)
- Support for SendEarlyHints in (#3483)
- Add conditional copy helpers in (#3703)
- Add request inspection helpers in (#3727)
- Add support for redacting values in (#3759)
- Add support for handling unsupported HTTP methods as HTTP 501 in (#3854)
- Add support for ReloadViews() in (#3876)
- Expose startup message customization hooks in (#3824)
- Migrate from UUIDv4 to SecureToken for key generation in (#3946)
- Add ExpirationFunc for dynamic expiration in (#3984)
- Auto-enforce Secure=true for Partitioned cookies in Cookie() in (#3976)
- 📎 Binding (Docs)
- 🌎 Client (Docs)
- Client refactor in (#1986)
- Add support for creating Fiber client from existing FastHTTP client in (#3214)
- Add support for iterator methods to Fiber client in (#3228)
- Add support for HostClient and LBClient in (#3774)
- Add support for streaming response bodies in client and response handling in (#4014)
- 🧠 Context (Docs)
Convert fiber.Ctxtype to interface in (#1928)- Add Drop method to DefaultCtx for silent connection termination in (#3257)
- Add
End()method toCtxin (#3280) - Improve and Optimize
ShutdownWithContextFunc in (#3162) - Add support for
context.Contextin keyauth middleware in (#3287) Fiber.Contextimplementcontext.Contextin (#3382)- Add NewWithCustomCtx initialization helper in (#3476)
- Add context methods to fiber.Storage interface in (#3566)
- Add Fiber Context to BasicAuth Authorizer in (#3621)
- Implement OverrideParam override behavior for DefaultCtx in (#3962)
- Add context common request helpers in (#4007)
- Adding GetReqHeaders and GetRespHeaders in (#2831)
- Add Req and Res API in (#2894)
- 🔬 Extractors (Docs)
- 🧰 Generic (Docs)
- 🚀 Listen (Docs)
- 🔌 Addons/retry (Docs)
- Add retry mechanism in (#1972)
- 🧬 Middleware – adaptor (Docs)
- 🧬 Middleware – basicauth (Docs)
- 🧬 Middleware – cache (Docs)
- 🧬 Middleware – compression (Docs)
- 🧬 Middleware – cors (Docs)
- Add support for Access-Control-Allow-Private-Network in (#2908)
- 🧬 Middleware – csrf (Docs)
- Add support for Sec-Fetch-Site header in CSRF middleware in (#3913)
- 🧬 Middleware – encryptcookie (Docs)
- Add cookie name authentication for EncryptCookie middleware in (#3788)
- 🧬 Middleware – favicon (Docs)
- Add MaxBytes to favicon middleware in (#4016)
- 🧬 Middleware – earlydata (Docs)
- Add earlydata middleware in (#2270)
- 🧬 Middleware – healthcheck (Docs)
- 🧬 Middleware – idempotency (Docs)
- Add idempotency middleware in (#2253)
- 🧬 Middleware – keyauth (Docs)
- Add support for custom KeyLookup functions in the Keyauth middleware in (#3028)
- 🧬 Middleware – logger (Docs)
- 🧬 Middleware – proxy (Docs)
- 🧬 Middleware – requestid (Docs)
- 🧬 Middleware – responsetime (Docs)
- Add response time middleware in (#3891)
- 🧬 Middleware – session (Docs)
- 🧬 Middleware – static (Docs)
- Add static middleware in (#3006)
- 🧬 Middleware – timeout (Docs)
- Add config for Timeout middleware in (#3604)
- 🔄️ Redirect (Docs)
- New redirection methods in (#2014)
- 🗺️ Router (Docs)
- Router interface changes in (#2176)
- Native support for
net/httpand fasthttp handlers in (#3769) - New Route method in (#2065)
- New mounting system in (#2022)
- Add support for RebuildTree in (#3074)
- Add support for Express.js style req/res handlers in (#3809)
- Add support for DisableAutoRegister of HEAD routes in (#3817)
- Enhance CheckConstraint method for improved error handling in (#3356)
- Add Support for Removing Routes in (#3230)
- Add support for embedded Koa-Style Req and Res structs in (#3533)
- Support Express-style next callback handlers in (#4029)
- 🧩 Services (Docs)
- Add Support for service dependencies in (#3434)
🧹 Updates
- ⚙️ Core & API
- Replace string functions in (#3923)
- Update conditional instructions for startup skip in (#3475)
- Update AGENTS startup instructions in (#3474)
- Add
[]bytesupport toutils.EqualFoldin (#2029) - Change startup message in (#2041)
- Update to use gofiber/utils/v2 in (#2184)
- Router: return status 501 instead of 400 on unknown method in (#2220)
- Cleanup in (#2255)
- Fix ContextKey collisions in (#2781)
- Update Ctx.Format to match Express's res.format in (#2766)
- Update handler signature for v3 in (#2794)
- Change
interface{}to any in (#2796) - Added respects body immutability to ctx.Body() and ctx.BodyRaw() functions. in (#2812)
- Print to stderr if log fails for default format in (#2830)
- Clean up errcheck config in (#2841)
- Update startup message formatting in (#2847)
- Simplify content negotiation code in (#2865)
- Rename "ClientNew" Function to "New" in (#2896)
- Remove repetitive words in (#2917)
- Improper query/body parsing with embedded structs in (#2906)
- Improve and simplify logic of ctx.Next() in (#3063)
- Use Named Fields Instead of Positional and Align Structures to Reduce Memory Usage in (#3079)
- Use utils Trim functions instead of the strings/bytes functions in (#3087)
- Consolidate Logic of Handling the Request Body in (#3093)
- Use msgp for flash message encoding/decoding in (#3099)
- Replace vendored gorilla/schema package in (#3152)
- Improve naming convention for Context returning functions in (#3193)
- Nil pointer dereference with Must Bind binding in (#3171)
- Mark go1.23 as minimum go version in (#3226)
- Rename the Method Names of FormData and FormDatas (#3251) in (#3255)
- Reduce the Memory Usage of ignoreHeaders in (#3322)
- Migrate randString to rand v2 in (#3329)
- Sorting error in sortAcceptedTypes in (#3331)
- Reduce the memory usage of RoutePatternMatch in (#3335)
- Replace findLastCharsetPosition with strings.LastIndexByte in (#3338)
- Replace isInCharset with bytes.IndexByte in (#3342)
- Remove two string fields in DefaultCtx to save 32 bytes in (#3353)
- Replace treePath with treePathHash in DefaultCtx to reduce memory usage in (#3368)
- Remove redundant field
methodinDefaultCtxin (#3372) - Add findNextNonEscapedCharPosition for single-byte charset cases in (#3378)
- Change
c.Redirect()default status in (#3415) - Improve routing treeBuild flow in (#3456)
- Make genericParseType return error in (#3473)
- Update minimum go version to 1.24 in (#3481)
- Use slices.Contains to simplify code in (#3486)
- Use maps.Copy to simplify code in (#3490)
- Update loop syntax for retry mechanism in (#3516)
- Update codecov configuration in (#3528)
- Use GetState to reduce duplicate code in (#3542)
- Improve
Cookie()validation in (#3546) - Improve
Accept*compliance with RFC 9110 in (#3548) - Refactor fasthttp iter calls to range loops in (#3559)
- Add iterator helpers for client types in (#3560)
- Update utils dependency in (#3576)
- Refactor Opt-in support for CBOR in (#3580)
- Simplify generic function calls in (#3578)
- Replace math/rand with crypto/rand in (#3508)
- Add sync pool and release helpers for Bind in (#3660)
- Add CBOR support to AutoFormat() in (#3665)
- Fix AcceptsLanguages() RFC compliance in (#3672)
- Respect immutable config in Params(), Protocol(), and Body() in (#3676)
- Delay routing error creation in (#3683)
- Using
reflect.TypeAssertin (#3698) - Handle Transfer-Encoding bodies in HasBody in (#3748)
- Improve error handling when using storage drivers in (#3754)
- Use sync.Pool for Client hooks in (#3758)
- Avoid locking in gc() if nothing to delete in (#3765)
- Cleanup return error logic in Bind() in (#3764)
- Update RouteChain function in (#3761)
- Make boundary a const in (#3783)
- Preallocate slice size in
Client::Param()in (#3782) - Skip locking garbage collector if nothing to delete in (#3787)
- Enhance Body handling in setConfigToRequest for better type su… in (#3820)
- Improve propagation of context.Context in (#3822)
- Inline Request state wrappers in (#3827)
- Remove unneeded "utils" alias in (#3834)
- Add
FullPath()helper to context in (#3837) - Handle nil map targets in Binder in (#3839)
- Extracted generic releasePooledBinder function in (#3841)
- Return error during EncryptCookie failure in (#3842)
- Fix gocritic httpNoBody and hugeParam issues in (#3855)
- Refactor internal errors to use sentinel values in (#3864)
- Improve byte-range handling for SendFile() in (#3870)
- Use int64 when dealing with HTTP Ranges in (#3874)
- Replace strings.TrimSpace with utils.TrimSpace in (#3918)
- Replace strings.Index with strings.Cut for improved readallity in (#3956)
- Validate constraint by bit operation in (#3963)
- Use sync.Pool for form and multipart binding in (#3967)
- Use sync.Pool for redirect old input map in (#3971)
- Replace anonymous struct key with named type in (#4020)
- 🧬 Middleware & Addons
- Document "null" origin handling in CORS middleware in (#4001)
(Docs) - Refactor CSRF middleware and enhance documentation in (#3598)
- Fix pprof middleware docs and default config in (#3642)
- Fix CORS docs and comments in (#3637)
- Fix CSRF error message mismatch with documentation in (#3636)
- Refactor filesystem middleware with
io/fsin (#2027) (Docs) - Remove mutex lock in logger middleware in (#2840)
- Update CSRF and Limiter to remove repetitive names in (#2846)
- Refactor(middleware/cors): Config, lists as list types. in (#2962)
- Enforce key length for EncryptCookie middleware default functions in (#3056)
- Middleware/CORS Remove Scheme Restriction in (#3163)
- Unify and enhance timeout middleware in (#3275)
- Simplify HealthCheck middleware in (#3380)
- Improve proxy middleware in (#3468)
- Enhance KeyAuth middleware to better comply with RFC 6750 in (#3482)
- Enhance BasicAuth middleware to better comply with RFC 6750 in (#3484)
- Improve cache middleware RFC compliance in (#3488)
- Enhance config validation in EncryptCookie middleware in (#3491)
- Refactor EnvVar middleware in (#3513)
- Improve CORS middleware response headers in (#3505)
- Improve BasicAuth middleware default security in (#3522)
- Improve static middleware security in (#3595)
- Remove SHA-1/MD5 support in BasicAuth middleware in (#3634)
- Remove support for PasswordFromContext from BasicAuth middleware in (#3638)
- Refactor KeyAuth Middleware: Extractor-Based Configuration and Enhanced Flexibility in (#3685)
- Return generic errors in KeyAuth middleware in (#3692)
- Fix CSRF subdomain wildcard boundary in (#3694)
- Improve Cache middleware defaults in (#3740)
- Migrate Session middleware to new extractors package in (#3744)
- Improve Compress middleware RFC compliance in (#3745)
- Improve KeyAuth middleware RFC compliance in (#3742)
- Update CSRF middleware to use shared extractors in (#3746)
- Update keyauth middleware to use shared extractors in (#3747)
- Fix cache cleanup and redact token values in (#3757)
- Ensure middleware prefix matching requires slash boundary in (#3755)
- Reduce the memory usage of cacheableStatusCodes in (#3789)
- Refactor configuration management for favicon and envvar middlewares in (#3898)
- Improve Cache middleware compliance in (#3973)
- Further improvements to Cache middleware in (#3989)
- Skip caching oversized responses in idempotency middleware in (#4018)
- Document "null" origin handling in CORS middleware in (#4001)
- ⚡️ Performance & Benchmarks
- Optimize the menu item text in (#3267)
- Remove
utils.Trim*because stdlib has same performance in go1.19 in (#2030) - Performance improvements in (#2838)
- Add parallel benchmarks to adaptor middleware in (#2870)
- Expand Tests and Benchmarks for Log package in (#2886)
- Performance optimizations in (#2947)
- Add Benchmarks for IsProxyTrusted() in (#2933)
- Optimize Cache middleware handler in (#3031)
- Update benchmarks for Logger Middleware in (#3061)
- Improve performance of Adaptor Middleware in (#3078)
- Refactor Benchmark Results Workflow in (#3082)
- Improve performance of helper functions in (#3086)
- Improve Performance of
c.Body()by 125% in (#3090) - Add Benchmarks for Rewrite Middleware in (#3092)
- Optimize
IsFromLocal()performance in (#3140) - Improve Performance of Fiber Router in (#3261)
- Improve Performance of getSplicedStrList in (#3318)
- Optimize routeParser by using sync.Pool in (#3343)
- Add Immutable benchmarks for default case in (#3374)
- Performance optimizations in (#3477)
- Improve performance for "equalFieldType" function in (#3479)
- Fix compression benchmarks in (#3561)
- Improve iterator performance. in (#3562)
- Improve sanitizePath performance in (#3601)
- Skip unstable GenericParseType benchmarks in (#3614)
- Reduce allocation in AutoFormat in (#3652)
- Optimize Fresh header parsing for fasthttp 1.65 in (#3687)
- Improve Req/Res Benchmarks in (#3693)
- Improve performance analyseConstantPart in (#3753)
- Improve allocations for Request Params() in (#3766)
- Reduce allocations in Request (saves ~16% B/op) in (#3768)
- Benchmark for cache miss case in (#3836)
- Improve performance of
RebuildTree()by 68% in (#3895) - Optimize string handling and memory allocations in (#3922)
- Improve performance (reduce allocations) in (#3964)
- 🛠️ Testing & Tooling
- Use testify for assertion in (#2036)
- Generate msgp tests in (#2263)
- V3 Feature: Make app.Test accept a time.Duration timeout in (#2269)
- Speed up addon/retry tests in (#2800)
- Re-enable tparallel linter in (#2801)
- Fix testifylint errors in middleware in (#2805)
- Fix remaining testifylint errors in (#2806)
- Fix force type assertions in session_test.go in (#2815)
- Address multiple lint rules in (#2869)
- Do not retry flaky tests in (#2875)
- Enabling shuffling, cleanup and consistency across tests in (#2931)
- Adding a generator to generate the CTX interface in (#3024)
- Test(middleware/session): Remove extra release and acquire ctx calls in session_test.go in (#3044)
- Test(ctx_test): Fix race condition in (#3081)
- The value of map is unused in uniqueRouteStack in (#3320)
- Mark unused tests with t.SkipNow in (#3366)
- Fix proxy middleware tests for offline environments in (#3467)
- Add unit-test for header injection in (#3470)
- Add URI Test case for Test_Ctx_Binders in (#3480)
- Test: Enhance CSRF tests to address unsafe header value issue (#2045) in (#3485)
- Improve EarlyData middleware tests coverage in (#3520)
- Improve Idempotency middleware tests coverage in (#3521)
- Improve Helmet middleware tests coverage in (#3523)
- Improve Retry addon tests coverage in (#3526)
- Add missing CSRF token extractor tests in (#3527)
- Improve hooks test coverage in (#3524)
- Improve Binder tests coverage in (#3529)
- Improve CORS tests coverage in (#3530)
- Improve CSRF tests coverage in (#3531)
- Improve Router tests coverage in (#3550)
- Add tests for quoteRawString in (#3613)
- Fix Makefile to install tools before running them in (#3612)
- Fix Cookie SameSite constants to Pascal case per RFC specification in (#3608)
- Fix timing for streaming test in (#3628)
- Add missing checks in Ctx tests in (#3670)
- Stabilize interrupted stream writer test in (#3669)
- Use ephemeral ports in unit tests in (#3686)
- Use project toolchain for go run tools in (#3709)
- Expand Binder tests coverage in (#3714)
- Prevent CopyContextToFiberContext panic and add comprehensive test coverage in (#3770)
- Add flushing-related unit tests for net/http adaptor in (#3807)
- Fix fatal error calls in adapter_test.go in (#3810)
- Test HEAD request compliance in (#3868)
- Improve OPTIONS wildcard regression test in (#3869)
- Add table-driven integration tests in (#3894)
- Improve timing robustness in flaky cache and session tests in (#3994)
🐛 Bug Fixes
- Fix logger benchmarks in (#2074)
- Fix benchmark results related to handler, next in (#2130)
- Testifylint failure that fell through the cracks in (#2821)
- Inconsistent and flaky unit-tests in (#2892)
- CORS handling in (#2938)
- Fix some struct names in comments in (#2974)
- Fixes #3038 "v3 Flash Message with redirect is not working" in (#3046)
- Mutex for thread safety in (#3049)
- Fix data-race with sync.Pool in (#3051)
- Fasthttp errors cause panic when Params is used in (#3055)
- Use Content-Length for bytesReceived and bytesSent tags in Logger Middleware in (#3066)
- Cache middleware: runtime error: "index out of range [0] with length 0" in (#3075)
- Error check in Form binder in (#3110)
- Client: fix SetProxyURL functionality in (#3109)
- Fix handle un-matched open brackets in the query params in (#3126)
- Fix issue with default logger when creating RequestCtx in (#3134)
- Fix typo in (#3145)
- Behavior of
DefaultCtx.Freshwhen 'Last-Modified' and 'If-Modified-Since' are equal in (#3150) - Adaptor middleware duplicates cookies in (#3151)
- Close File After SaveFileToStorage in (#3197)
- Make SetValWithStruct set zero values and support more types #3167 in (#3227)
- Fix EnableSplittingOnParsers is not functional in (#3231)
- Memory leak removal in the idempotency middleware in (#3263)
- Make Render bind parameter type any again in (#3270)
- Fix app.Test() auto-failing when a connection is closed early in (#3279)
- Align cache middleware with RFC7231 in (#3283)
- Goroutine leakage in (#3306)
- GenericParseType parsing large uint leads to overflow in (#3315)
- Fix handler order in routing in (#3321)
- Update binder in form_test in (#3336)
- Fix client iterators when using break statement in (#3357)
- Fix: Logger Middleware tests to use regex for time validation in (#3392)
- Handling of next param position in (#3418)
- Fix redirection flash messages violate cookie structure in (#3457)
- Fix AGENTS markdown lint in (#3460)
- Parsing of IPv6 addresses in (#3466)
- Middlewares immutable config handling in (#3494)
- Subdomains offset handling in (#3495)
- Fix Cache-Control header parsing in (#3534)
- Fix Content-Type comparison in Is() in (#3536)
- Fix
Subdomains()parsing for IDNs in (#3538) - Fix
Range()parsing of bytes unit in (#3541) - Fix Etag validation per RFC 9110 in (#3554)
- Fix
Range()handling of HTTP 416 per RFC 9110 in (#3552) - Fix Accept-Language matching per RFC 4647 in (#3553)
- Fix Cache middleware handling of Age in (#3547)
- Fix Content-Disposition header per RFC 6266 in (#3551)
- Fix
Body()handling of Content-Encoding per RFC 9110 in (#3543) - Fix multipart boundary for Client per RFC 2046 in (#3563)
- Fix address parsing for leading/trailing spaces in (#3569)
- Fix missing Allow header in EnvVar middleware per RFC 9110 in (#3570)
- Fix static/favicon middlewares file descriptor leaks in (#3579)
- Fix CookieJar domain logic in (#3564)
- Fix handling of negative BodyLimit in (#3599)
- Fix MIME type equality checks in (#3602)
- Fix retry config handling in (#3609)
- Fix limiter middleware not counting fiber.NewErrorf responses as failed requests in (#3623)
- Fix race in cookie tests in (#3629)
- Fix bind
All()merging logic in (#3659) - Fix Static middleware browser support for subdirectories in (#3673)
- Fix CORS subdomain wildcard boundary in (#3690)
- Fix support for context.Context in (#3720)
- Improve BasicAuth middleware RFC compliance in (#3743)
- Handle Unix sockets in adaptor middleware in (#3760)
- Fix usage of runtime RO data for ppc64 and s390x platforms in (#3772)
- Respect DisablePathNormalizing during client requests in (#3773)
- Always close form file in (#3786)
- Fix recover middleware panic output formatting in (#3816)
- Correct fresh flag logic in getSession in (#3825)
- Prevent memory corruption in internal memory storage from pooled buffers in (#3828)
- Avoid writing into released Response in core::execFunc() in (#3830)
- Remove Flash Cookie from Response headers after parsing in (#3840)
- Fix binder splitting for pointer-backed slice fields in (#3844)
- Fix typos in some files in (#3847)
- Execute middleware routes when handling errors in (#3846)
- Fix copying of key/values in internal/memory in (#3829)
- Fix maintain CustomCtx across middlewares in (#3852)
- Fix default value for MaxFunc in Limiter middleware in (#3871)
- Fix handling of wildcard matching in acceptsOffer in (#3880)
- Fix handling of no-body HTTP statuses in (#3883)
- Fix and improvements for the sliding window Limiter in (#3893)
- Improve suffix range normalization in (#3902)
- Enhance Origin and Referer Validation in CSRF middleware in (#3904)
- Respect Authorization when caching responses in (#3905)
- Fprint to use format instead of fmtArgs in (#3925)
- Enforce body limits in SaveFileToStorage in (#3929)
- V3 fix custom errorhandler invokation in (#3930)
- Fix example in whats_new.md in (#3949)
- Ensure flash messages are consumed after retrieval in (#3936)
- Fix FIPS-140 compliance for EncryptCookie middleware in (#3955)
- Guard Binds decoder sync.Pool in (#3969)
- Fix Early-Data trusted proxy handling in (#3974)
- Preserve session data map across resets in (#3968)
- Improve cookie decryption handling by deleting invalid cookies after iteration in (#3988)
- Respect body limit configuration in adaptor middleware in (#3990)
- Security: Enforce case-sensitive null origin validation in CORS in (#3995)
- Optimize CORS origin validation to avoid unnecessary processing in (#3996)
- Validate CORS origins before using AllowOriginsFunc in (#3991)
- Trim forwarded host values in (#4012)
- Normalize forwarded scheme parsing in (#4011)
- Return immediately on timeout and propagate context correctly in (#4009)
- Trim values from getSplicedStrList in (#4026)
- Return bytes read from readContent in (#4027)
- Reload mounted view engines in ReloadViews in (#4031)
- Handle typed-nil http handler funcs in (#4030)
🛠️ Maintenance
- Bump github.com/valyala/fasthttp from 1.51.0 to 1.69.0 in (#2857, #3000, #3037, #3146, #3183, #3244, #3314, #3391, #3440, #3557, #3586, #3684, #3790, #3819, #3992)
- Updated fasthttp to 1.54.0 release in (#3010)
- Bump github.com/gofiber/schema from 1.2.0 to 1.6.0 in (#3308, #3462, #3504, #3574)
- Bump github.com/gofiber/utils/v2 from 2.0.0-beta.3 to 2.0.0-rc.6 in (#2935, #3062, #3174, #3389, #3540, #3568, #3689, #3853, #3914, #3926, #3997)
- Bump github.com/tinylib/msgp from 1.1.8 to 1.6.3 in (#3147, #3182, #3185, #3240, #3447, #3716, #3823, #3920, #3977, #3978)
- Bump github.com/shamaton/msgpack/v2 from 2.2.3 to 2.4.0 in (#3678, #3719, #3808)
- Bump github.com/klauspost/compress from 1.18.1 to 1.18.3 in (#3911, #4013)
- Bump github.com/google/uuid from 1.5.0 to 1.6.0 in (#2810)
- Bump golang.org/x/crypto from 0.28.0 to 0.45.0 in (#3243, #3247, #3274, #3305, #3327, #3341, #3395, #3438, #3506, #3737, #3796, #3863, #3882)
- Bump golang.org/x/net from 0.31.0 to 0.47.0 in (#3293, #3544, #3572, #3738, #3791, #3795, #3861)
- Bump golang.org/x/text from 0.29.0 to 0.33.0 in (#3797, #4003)
- Bump golang.org/x/sys from 0.39.0 to 0.40.0 in the golang-modules group in (#4000)
- Bump github.com/mattn/go-colorable from 0.1.13 to 0.1.14 in (#3277)
- Bump github.com/fxamacker/cbor/v2 from 2.7.0 to 2.9.0 in (#3384, #3581)
- Upgrade shamaton/msgpack from v2.4.0 to v3.0.0 in (#4023)
- Bump minimum version of Go to 1.21 in (#2911)
- Bump golangci-lint from v1.56.1 to v1.62.0 in (#2842, #2862, #3029, #3119, #3135, #3196)
- Make golangci-lint config stricter in (#2874)
- Add support for longtests during CI in (#3054)
- Bump nick-fields/retry from 2 to 3 in (#2824)
- Bump benchmark-action/github-action-benchmark from 1.16.2 to 1.20.7 in (#2827, #2950, #3008, #3177, #3730, #3736)
- Bump release-drafter/release-drafter from 5 to 6.2.0 in (#2826, #4022, #4025)
- Bump golangci/golangci-lint-action from 3 to 9.2.0 in (#2855, #2986, #2994, #3896, #3916)
- Bump github.com/stretchr/testify from 1.8.4 to 1.11.1 in (#2888, #3217, #3712, #3715)
- Bump codecov/codecov-action from 4.0.1 to 5.5.2 in (#2901, #2941, #2959, #2993, #2999, #3009, #3035, #3154, #3207, #3209, #3210, #3213, #3234, #3256, #3292, #3295, #3334, #3413, #3459, #3701, #3734, #3935)
- Bump actions/setup-go from 4 to 6.2.0 in (#2789, #3732, #3886, #4006)
- Bump github/codeql-action from 2 to 4.32.0 in (#2788, #3792, #3866, #3878, #3897, #3910, #3927, #3945, #3950, #4004, #4034, #4036)
- Bump actions/cache from 3 to 5.0.3 in (#2803, #3944, #3947, #4017, #4040)
- Bump fuxingloh/multi-labeler from 2 to 4 in (#2856)
- Bump DavidAnson/markdownlint-cli2-action from 16 to 22.0.0 in (#3128, #3208, #3266, #3453, #3873, #3932)
- Bump streetsidesoftware/cspell-action from 8.0.0 to 8.2.0 in (#3938, #3993, #4039)
- Bump kenchan0130/actions-system-info from 1.3.0 to 1.4.0 in (#3492, #3679)
- Bump actions/setup-node from 4 to 6.2.0 in (#3733, #3804, #3915, #4008)
- Bump actions/checkout from 3 to 6.0.2 in (#3083, #3681, #3877, #3887, #3917, #4028)
- Bump lewagon/wait-on-check-action from 1.4.1 to 1.5.0 in (#4033)
- Bump the golang-modules group with 4 updates in (#3931)
- Bump the golang-modules group with 2 updates in (#4005)
- Add go1.22 to test matrix in (#2835)
- Replace release-drafter autolabel with fuxingloh/multi-labeler in (#3872)
- Add CODEOWNERS file in (#2851)
- Update golangci-lint to v1.55.2 in (#2817)
- Update golangci-lint to enable more lint rules in (#2923)
- Add support for go1.23 and golangci-lint v1.60.1 in (#3101)
- Add go1.24 to CI matrix in (#3325)
- Add modernize lint in (#3590)
- Add inamedparam linter in (#2848)
- Remove repo codecov.yml in (#3525)
- Enable govet shadow in (#3617)
- Fix benchmark results in (#1982)
- Fix spelling issues in (#3813)
- Golangci-lint issue for go1.25.0 in (#3775)
- Require Go 1.25 in (#3682)
- Run tests against Apple M1 platform in (#2852)
- Update AGENTS.md in (#3901)
📚 Documentation
- Update Version Numbers in Docs in (#2853)
- Updates to fiberlog benchmarks and documentation in (#3059)
- Remove deprecated comments and documenting recent changes in (#3498)
- Update godoc for
fiber.New()in (#3928) - Undocumented function in session.md in (#2795)
- Fix typo in documentation in (#2802)
- Fix a misspelled comment in (#2809)
- Update Typo documentation in (#2820)
- Typo in routing.md in (#2836)
- Fix code snippet indentation in /docs/api/middleware/keyauth.md in (#2868)
- Fix TrustedProxies documentation related to IP ranges in (#2887)
- Update docs to reflect fiber.Ctx struct to interface change in (#2880)
- Improve translation in (#2899)
- Update Copilot docs and setup in (#3585)
- Refactor Documenation for HealthCheck in (#2905)
- Fixed a typo in app.go in (#2912)
- Cleanup and updates to README files in (#2914)
- Fix merge conflict in documentation in (#2957)
- Fix broken link to slim template in FAQ in (#2969)
- Update config TrustedOrigin comments in (#2963)
- Consolidate and Document Core Changes in v3 in (#2934)
- Fix some comments in (#2983)
- CORS middleware in (#2979)
- Add docs for new client in (#2991)
- Update intro.md to make clear
fiber.Ctxis not thread-safe. in (#3014) - Improve ctx.Locals method description, godoc and example in (#3032)
- Add zero-allocation section to README in (#3039)
- Add support for consistent documentation using markdownlint in (#3064)
- Update example in middleware/cors to v3 in (#3116)
- Update recover docs to not use reserved keyword in (#3129)
- Fix typos in client hooks documentation in (#3133)
- Replaced link to russian mozilla docs in (#3142)
- Removed zero width white space from logger docs in (#3144)
- Fix typo on comment in (#3158)
- Typo in hooks documentation in (#3164)
- Update README.md in (#3165)
- Update What's New documentation in (#3181)
- Clarify SendFile Docs in (#3172)
- Update intro documentation in (#3204)
- Updates to API documentation and README in (#3205)
- Updates to Context documentation in (#3206)
- Update documentation for Fiber client in (#3249)
- Fix static middleware CacheDuration data type typo in (#3273)
- Add
ctx.Drop()to whats_new.md in (#3284) - Add
c.Drop()example towhats_new.mdin (#3285) - Update intro.md Static Files section in (#3303)
- Update adapter middleware documentation in (#3317)
- Add Retry Addon documentation in (#3330)
- Update Helmet Middleware default values in (#3348)
- Update helmet.md default values in (#3350)
- Add more validation examples in (#3369)
- Update docs for State Management in (#3388)
- Fix CSRF handler example in (#3412)
- Adjust Funding Custom URL in (#3432)
- Fix examples in middleware/session in (#3435)
- Idempotency add more detailed description for next method in (#3443)
- Document usage of Custom Tags in Logger middleware in (#3446)
- Fix typos in (#3464)
- Fix more typos across code base in (#3465)
- Fix typos in code and docs in (#3507)
- Enhance CORS middleware documentation with preflight request details and infrastructure considerations in (#3509)
- Add custom constraint example in (#3539)
- Incorrect usage of backslash characters in the constraint … in (#3549)
- Add net/http compatiblity section in (#3556)
- Add documentation for Stale() in (#3555)
- Update utils guide documentation in (#3575)
- Fix EarlyData middleware docs in (#3646)
- Fix Skip middleware docs in (#3649)
- Fix context changes doc in (#3650)
- Fix RequestID docs in (#3648)
- Fix Proxy middleware docs in (#3647)
- Fix Compress middleware docs in (#3645)
- Fix Cache middleware docs in (#3644)
- Fix Favicon middleware documentation in (#3640)
- Fix Static middleware docs in (#3643)
- Fix Healthcheck middleware documentation in (#3657)
- Fix KeyAuth middleware docs in (#3641)
- Improve Timeout middleware documentation in (#3675)
- Add context guide in (#3677)
- Add Learning Resources section with Go Interview Practice platform in (#3691)
- Fix typos in documentation in (#3695)
- Add early hints documentation in (#3697)
- Document utils package migration in (#3704)
- Note CSRF ContextKey removal in (#3706)
- Note removal of context keys in (#3707)
- Add migration tool info in (#3708)
- Improve wording and fix typos in (#3713)
- Full audit of documentation in (#3717)
- Add RoutePatternMatch documentation in (#3722)
- Clarify context interface implementation in (#3729)
- Ensure all exported elements are documented in (#3752)
- Document usage of reverse proxies for SendEarlyHints in (#3778)
- Fix broken link in the Routing guide in (#3831)
- Update docs/whats_new.md in (#3889)
- Clarify handler execution order and usage in Add() in (#3890)
- Update cache migration guidance in (#3908)
- Clarify client migration examples in (#3921)
- Add goroutine cancellation example using context.WithTimeout in (#3884)
- Fix some comments to improve readability in (#3943)
- Update logger middleware format constants in (#3951)
- Refresh adaptor middleware guidance in (#3981)
- Update Services icon and prefork warning for State Management in (#4002)
Thank you to all contributors:
@ad3n, @akilesh1706, @alequilesl, @alexandear, @Alijeyrad, @aliziyacevik, @andradei, @arturmelanchyk, @asyslinux, @AuroraTea, @axrav, @balcieren, @Behzad-Khokher, @BigJoe17, @brunodmartins, @canks69, @ckoch786, @cuiweixie, @darwin808, @dave-gray101, @deferdeter, @devhaozi, @devhsoj, @Dishank-Sen, @dockercui, @dojutsu-user, @dozheiny, @dreamscached, @duhnnie, @edvardsanta, @efectn, @emirhansirkeci, @ErfanMomeniii, @Fenny, @findfluctuate, @gaby, @gandaldf, @glensargent, @gopkg-dev, @gozeloglu, @grivera64, @guerzon, @haikalSusanto, @haochunchang, @hcancelik, @hotrungnhan, @hungthai1401, @imsk17, @ItsMeSamey, @JIeJaitt, @jsoref, @K0ng2, @KatzuYoru, @khanhkhanhlele, @kianmeng, @kirankumar-grootan, @kiuber, @KrisCarr, @ksw2000, @ktat, @LaptopCat, @Larinax999, @Lars-Schumann, @laughing-nerd, @leonklingele, @linogomez, @luk3skyw4lker, @mazyaryousefinia, @mdelapenya, @mitulagr2, @miyamo2, @MonkyMars, @negrel, @nexovec, @nickajacks1, @nnnkkk7, @oktayozkan0, @omaskery, @omer-cengel, @orvillesimba, @pjebs, @rabarar, @racerole, @ReneWerner87, @RezaSi, @ryanbekhen, @s19835, @SantiagoBobrik, @sebytza23, @shamaton, @sigmundxia, @SivaPA08, @sixcolors, @StrawHatHacker, @sunnyyssh, @techerfan, @the-hotmann, @TheAspectDev, @theleeeo, @tongjicoder, @trim21, @vhespanha, @wangjq4214, @xEricL, @yinheli, @yorickdewid, @ZihxS, @zingi
Full Changelog: v2.52.11...v3.0.0
For a detailed view of all changes and the migration guide, visit:
https://docs.gofiber.io/whats_new