René
16fd8edbf1
fix Benchmark_MemoryLock
...
panic: runtime error: index out of range [1] with length 1
goroutine 67 [running]:
github.com/gofiber/fiber/v3/middleware/idempotency_test.Benchmark_MemoryLock(0xc00012c2c8)
/home/runner/work/fiber/fiber/middleware/idempotency/locker_test.go:74 +0x23d
testing.(*B).runN(0xc00012c2c8, 0x1)
/opt/hostedtoolcache/go/1.24.4/x64/src/testing/benchmark.go:219 +0x190
testing.(*B).run1.func1()
/opt/hostedtoolcache/go/1.24.4/x64/src/testing/benchmark.go:245 +0x48
created by testing.(*B).run1 in goroutine 1
/opt/hostedtoolcache/go/1.24.4/x64/src/testing/benchmark.go:238 +0x90
exit status 2
2025-07-18 08:53:53 +02:00
M. Efe Çetin
192d1dff0d
feat: add context methods to fiber.Storage interface ( #3566 )
...
* feat: add context methods to fiber.Storage interface
* fix linter
* create new file for storage interface (storage_interface.go)
* add simple context check to internal storage
* update docs
* add fallback context for session
---------
Co-authored-by: René <rene@gofiber.io>
2025-07-18 03:19:50 +02:00
RW
2f8fdc454b
Add modernize lint ( #3590 )
2025-07-17 14:48:43 +02:00
Juan Calderon-Perez
09eaaf3be8
🐛 bug: Fix CookieJar domain logic ( #3564 )
2025-07-17 14:48:08 +02:00
Aarav Arora
2832ae32d0
🧹 chore: Simplify generic function calls ( #3578 )
2025-07-16 14:50:15 +02:00
dependabot[bot]
93de9c59eb
build(deps): bump github.com/valyala/fasthttp from 1.63.0 to 1.64.0 ( #3586 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-15 21:16:23 +02:00
Juan Calderon-Perez
cc19248552
Merge pull request #3581 from gofiber/dependabot/go_modules/github.com/fxamacker/cbor/v2-2.9.0
...
build(deps): bump github.com/fxamacker/cbor/v2 from 2.8.0 to 2.9.0
2025-07-15 09:37:50 -04:00
RW
41a19e010b
🧹 chore: Refactor Opt-in support for CBOR ( #3580 )
...
Co-authored-by: M. Efe Çetin <efectn@protonmail.com>
2025-07-15 14:19:02 +02:00
RW
2fafc10194
Update Copilot docs and setup ( #3585 )
2025-07-15 13:02:39 +02:00
René
8503eeffca
remove unneeded benchmark "Benchmark_SlashRecognition"
2025-07-15 10:35:47 +02:00
dependabot[bot]
e9f2e87d35
build(deps): bump github.com/fxamacker/cbor/v2 from 2.8.0 to 2.9.0
...
Bumps [github.com/fxamacker/cbor/v2](https://github.com/fxamacker/cbor ) from 2.8.0 to 2.9.0.
- [Release notes](https://github.com/fxamacker/cbor/releases )
- [Commits](https://github.com/fxamacker/cbor/compare/v2.8.0...v2.9.0 )
---
updated-dependencies:
- dependency-name: github.com/fxamacker/cbor/v2
dependency-version: 2.9.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 15:46:59 +00:00
Juan Calderon-Perez
c1e9ae3ff9
🐛 bug: Fix static/favicon middlewares file descriptor leaks ( #3579 )
2025-07-14 15:16:57 +02:00
Kudou Sterain
8f02e0176b
🔥 feat: Add support for Msgpack ( #3565 )
2025-07-14 14:55:22 +02:00
RW
87370cfee6
Update utils dependency ( #3576 )
2025-07-14 08:45:19 +02:00
RW
0d03102542
📒 docs: Update utils guide documentation ( #3575 )
2025-07-13 14:12:15 +02:00
Juan Calderon-Perez
77540e2100
Merge pull request #3574 from gofiber/dependabot/go_modules/github.com/gofiber/schema-1.6.0
...
build(deps): bump github.com/gofiber/schema from 1.5.0 to 1.6.0
2025-07-13 01:38:10 -04:00
dependabot[bot]
163902979d
build(deps): bump github.com/gofiber/schema from 1.5.0 to 1.6.0
...
Bumps [github.com/gofiber/schema](https://github.com/gofiber/schema ) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/gofiber/schema/releases )
- [Commits](https://github.com/gofiber/schema/compare/v1.5.0...v1.6.0 )
---
updated-dependencies:
- dependency-name: github.com/gofiber/schema
dependency-version: 1.6.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-12 17:07:50 +00:00
dependabot[bot]
2d3229aa44
build(deps): bump golang.org/x/net from 0.41.0 to 0.42.0 ( #3572 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-11 20:02:16 +02:00
Juan Calderon-Perez
8ef317cbae
🐛 bug: Fix missing Allow header in EnvVar middleware per RFC 9110 ( #3570 )
2025-07-11 08:42:57 +02:00
Juan Calderon-Perez
c877b9d753
🐛 bug: Fix address parsing for leading/trailing spaces ( #3569 )
2025-07-10 13:36:33 +02:00
Juan Calderon-Perez
e98e09ed7b
Merge pull request #3568 from gofiber/dependabot/go_modules/github.com/gofiber/utils/v2-2.0.0-beta.10
...
build(deps): bump github.com/gofiber/utils/v2 from 2.0.0-beta.9 to 2.0.0-beta.10
2025-07-09 09:24:21 -04:00
dependabot[bot]
14b734d7fc
build(deps): bump github.com/gofiber/utils/v2
...
Bumps [github.com/gofiber/utils/v2](https://github.com/gofiber/utils ) from 2.0.0-beta.9 to 2.0.0-beta.10.
- [Release notes](https://github.com/gofiber/utils/releases )
- [Commits](https://github.com/gofiber/utils/compare/v2.0.0-beta.9...v2.0.0-beta.10 )
---
updated-dependencies:
- dependency-name: github.com/gofiber/utils/v2
dependency-version: 2.0.0-beta.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-07-09 12:59:10 +00:00
Juan Calderon-Perez
10e92eb203
🐛 bug: Fix multipart boundary for Client per RFC 2046 ( #3563 )
...
🩹 Fix: remove leading dashes from multipart boundary
2025-07-03 18:30:47 +02:00
Kashiwa
01d8543bed
♻️ Refactor: improve iterator performance. ( #3562 )
...
* ♻️ Refactor: improve iterator performance.
```
goos: darwin
goarch: arm64
pkg: github.com/gofiber/fiber/v3/client
cpu: Apple M4
│ old.txt │ new.txt │
│ sec/op │ sec/op vs base │
_Request_Headers-10 140.15n ± 0% 99.39n ± 1% -29.08% (n=50)
_Request_Params-10 135.70n ± 0% 41.01n ± 0% -69.78% (n=50)
_Request_AllFormData-10 135.60n ± 0% 94.67n ± 0% -30.18% (n=50)
_Headers-10 291.3n ± 0% 156.8n ± 1% -46.17% (n=50)
geomean 165.6n 88.20n -46.73%
│ old.txt │ new.txt │
│ B/op │ B/op vs base │
_Request_Headers-10 200.0 ± 0% 184.0 ± 0% -8.00% (n=50)
_Request_Params-10 232.00 ± 0% 88.00 ± 0% -62.07% (n=50)
_Request_AllFormData-10 232.0 ± 0% 184.0 ± 0% -20.69% (n=50)
_Headers-10 296.0 ± 0% 376.0 ± 0% +27.03% (p=0.000 n=50)
geomean 237.6 182.9 -23.00%
│ old.txt │ new.txt │
│ allocs/op │ allocs/op vs base │
_Request_Headers-10 7.000 ± 0% 6.000 ± 0% -14.29% (n=50)
_Request_Params-10 9.000 ± 0% 4.000 ± 0% -55.56% (n=50)
_Request_AllFormData-10 9.000 ± 0% 6.000 ± 0% -33.33% (n=50)
_Headers-10 9.000 ± 0% 6.000 ± 0% -33.33% (n=50)
geomean 8.452 5.422 -35.85%
```
* 🩹 Fix: fix wrong logic and revert Headers()
2025-07-02 20:35:03 +02:00
RW
e041d63ce9
🧹 chore: Add iterator helpers for client types ( #3560 )
...
* feat: add All iterators for client cookie and path params
* Remove deprecated VisitAll helpers
2025-07-02 13:39:25 +02:00
Juan Calderon-Perez
e9e036716a
🧹 chore: Fix compression benchmarks ( #3561 )
...
fix benchmark expectations for compression
2025-07-02 07:48:05 +02:00
RW
dd739687d3
Refactor fasthttp iter calls to range loops ( #3559 )
...
refactor: replace fastHTTP iter calls with for loops
2025-07-01 14:14:56 +02:00
dependabot[bot]
eddecf22e4
build(deps): bump github.com/valyala/fasthttp from 1.62.0 to 1.63.0 ( #3557 )
...
* build(deps): bump github.com/valyala/fasthttp from 1.62.0 to 1.63.0
Bumps [github.com/valyala/fasthttp](https://github.com/valyala/fasthttp ) from 1.62.0 to 1.63.0.
- [Release notes](https://github.com/valyala/fasthttp/releases )
- [Commits](https://github.com/valyala/fasthttp/compare/v1.62.0...v1.63.0 )
---
updated-dependencies:
- dependency-name: github.com/valyala/fasthttp
dependency-version: 1.63.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump github.com/valyala/fasthttp from 1.62.0 to 1.63.0
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: René <rene@gofiber.io>
2025-07-01 11:06:50 +02:00
Juan Calderon-Perez
4597bc8f81
📒 docs: Add documentation for Stale() ( #3555 )
...
* Update docs for Stale()
* Apply suggestions from code review
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-07-01 09:09:30 +02:00
Juan Calderon-Perez
433d570202
📒 docs: Add net/http compatiblity section ( #3556 )
...
* General documentation updates
* Update README.md
2025-07-01 09:08:45 +02:00
Juan Calderon-Perez
fd188301e8
🐛 bug: Fix Body() handling of Content-Encoding per RFC 9110 ( #3543 )
...
* Adjust Body() decoding loop
* Handle identity and compress encodings
* Adjust Body status handling
* test: cover multi-encoding decode
* Address review feedback
2025-06-30 09:07:06 +02:00
Juan Calderon-Perez
d79fa01f0f
🐛 bug: Fix Content-Disposition header per RFC 6266 ( #3551 )
...
* Use raw UTF-8 filenames in Content-Disposition
* Fix lint issues
* Fix issue with new funct
* Improve and fix quoteRawString
* fix issues
* Fix lint issues
* fix golangci-lint
* Update static_test.go
* Update static_test.go
2025-06-30 09:06:11 +02:00
Laptop
cfa5b3a404
🔥 feat: Add UNIX socket support ( #3535 )
...
* set unix socket filemode and remove old unix socket before listening
* add UnixSocketFileMode to docs
* create NetworkUnix constant
* Add testing for listening on Unix network
* fix: always remove temporary directory in test
* try fix test on windows
* align ListenConfig struct
* document unix socket support in whats_new.md
* change default UnixSocketFileMode to 0770
* extend unix socket test
* reword about unix sockets support in whats_new.md
* Update docs/whats_new.md
---------
Co-authored-by: Juan Calderon-Perez <835733+gaby@users.noreply.github.com>
Co-authored-by: RW <rene@gofiber.io>
2025-06-30 09:04:52 +02:00
Juan Calderon-Perez
bdd9e22bd7
🐛 bug: Fix Cache middleware handling of Age ( #3547 )
...
* Revert benchmark loop changes
* test: cover Age header parsing
* generate msgp files
* Update cache.go
* Cast result
* Update cache.go
2025-06-30 09:04:35 +02:00
Juan Calderon-Perez
55e7b1eb9c
🐛 bug: Fix Accept-Language matching per RFC 4647 ( #3553 )
...
* test: expand Accept-Language coverage
* Refine Accept-Language matching
2025-06-30 08:58:25 +02:00
Juan Calderon-Perez
fc803ec250
🐛 bug: Fix Range() handling of HTTP 416 per RFC 9110 ( #3552 )
...
* fix range compliance
* Update ctx.go
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Update ctx.go
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-06-30 08:57:53 +02:00
Thai Nguyen Hung
9d683ba421
🐛 fix(docs): incorrect usage of backslash characters in the constraint … ( #3549 )
...
fix(docs): incorrect usage of backslash characters in the constraint examples
2025-06-30 08:55:25 +02:00
Juan Calderon-Perez
30bb809255
🐛 bug: Fix Etag validation per RFC 9110 ( #3554 )
...
* Add strong ETag comparison helper
* Review fixes
* update normalizeEtag
* cleanup new tests, add more cases.
* lint
* name param
* more fixes
* more fixes
* add missing param
* fix funct name
* string not bytes
* format is correct
* fix lint?
* enable debug output for linter
* Fix linter issue
2025-06-30 08:52:01 +02:00
Juan Calderon-Perez
55818fb5bb
🧹 chore: Improve Accept* compliance with RFC 9110 ( #3548 )
...
* fix Accepts header compliance
* Simplify joinHeaderValues using bytes.Join
* Handle errors in unescapeHeaderValue
* test: cover header helpers
* Add paramsMatch escape error test
2025-06-28 21:29:19 +02:00
Juan Calderon-Perez
596c59a018
🧹 chore: Improve Router tests coverage ( #3550 )
...
* Integrate router additional tests
* Fix linter issue
2025-06-28 21:28:08 +02:00
Juan Calderon-Perez
43ad9f7928
🐛 bug: Fix Range() parsing of bytes unit ( #3541 )
...
refactor(ctx): use utils helpers for Range
2025-06-26 14:13:40 +02:00
Juan Calderon-Perez
8e2ab968db
🧹 chore: Improve Cookie() validation ( #3546 )
...
* validate cookies with net/http
* refactor: sanitize cookie via net/http
* Address review comments
* refactor: set cookie attrs via setters
* Update ctx.go
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update ctx.go
* Update ctx.go
* Update ctx.go
* Add more unit-tests
* Fix test
* Add default case for samesite
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-06-25 16:50:11 +02:00
Juan Calderon-Perez
f9547df609
Merge pull request #3544 from gofiber/dependabot/go_modules/golang.org/x/net-0.41.0
...
build(deps): bump golang.org/x/net from 0.40.0 to 0.41.0
2025-06-25 07:18:22 -04:00
dependabot[bot]
2b510897c4
build(deps): bump golang.org/x/net from 0.40.0 to 0.41.0
...
Bumps [golang.org/x/net](https://github.com/golang/net ) from 0.40.0 to 0.41.0.
- [Commits](https://github.com/golang/net/compare/v0.40.0...v0.41.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/net
dependency-version: 0.41.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-06-24 12:55:25 +00:00
Kashiwa
0ebe65d711
♻️ refact(state): Use GetState to reduce duplicate code ( #3542 )
...
♻️ refact: use GetState to reduce duplicate code
2025-06-23 18:11:29 +02:00
Juan Calderon-Perez
a258661de3
🐛 bug: Fix Subdomains() parsing for IDNs ( #3538 )
...
* Use utils.ToLower in Subdomains
* test: cover Unicode fallback path
* fix subdomain extraction for rfc compliance
* Address review comments on Subdomains
* Address review comments
2025-06-23 14:59:34 +02:00
RW
e58db87475
Add custom constraint example ( #3539 )
...
docs: add custom constraint example
2025-06-23 12:52:24 +02:00
RW
ad64f2cd8f
Add NewWithCustomCtx initialization helper ( #3476 )
...
* Make custom context setup via NewWithCustomCtx
* Update docs/api/app.md
* fix lint issues
* small optimizations
* Fix perf 3476 (#3499 )
* perf: modify app.pool
goos: darwin
goarch: arm64
pkg: github.com/gofiber/fiber/v3
cpu: Apple M4
│ old.txt │ new.txt │
│ sec/op │ sec/op vs base │
_Communication_Flow-10 36.26n ± 0% 34.51n ± 0% -4.83% (p=0.000 n=30)
│ old.txt │ new.txt │
│ B/op │ B/op vs base │
_Communication_Flow-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=30) ¹
¹ all samples are equal
│ old.txt │ new.txt │
│ allocs/op │ allocs/op vs base │
_Communication_Flow-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=30) ¹
¹ all samples are equal
* perf: optimize defaultCtx in app.next
```
goos: darwin
goarch: arm64
pkg: github.com/gofiber/fiber/v3
cpu: Apple M4
│ new.txt │ new4.txt │
│ sec/op │ sec/op vs base │
_Communication_Flow-10 34.51n ± 0% 30.02n ± 0% -13.01% (p=0.000 n=30)
│ new.txt │ new4.txt │
│ B/op │ B/op vs base │
_Communication_Flow-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=30) ¹
¹ all samples are equal
│ new.txt │ new4.txt │
│ allocs/op │ allocs/op vs base │
_Communication_Flow-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=30) ¹
¹ all samples are equal
```
---------
Co-authored-by: Kashiwa <13825170+ksw2000@users.noreply.github.com>
* Improve performance #3476 (#3532 )
* Make custom context setup via NewWithCustomCtx
* Update docs/api/app.md
* fix lint issues
* small optimizations
* perf: modify app.pool
goos: darwin
goarch: arm64
pkg: github.com/gofiber/fiber/v3
cpu: Apple M4
│ old.txt │ new.txt │
│ sec/op │ sec/op vs base │
_Communication_Flow-10 36.26n ± 0% 34.51n ± 0% -4.83% (p=0.000 n=30)
│ old.txt │ new.txt │
│ B/op │ B/op vs base │
_Communication_Flow-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=30) ¹
¹ all samples are equal
│ old.txt │ new.txt │
│ allocs/op │ allocs/op vs base │
_Communication_Flow-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=30) ¹
¹ all samples are equal
* perf: optimize defaultCtx in app.next
```
goos: darwin
goarch: arm64
pkg: github.com/gofiber/fiber/v3
cpu: Apple M4
│ new.txt │ new4.txt │
│ sec/op │ sec/op vs base │
_Communication_Flow-10 34.51n ± 0% 30.02n ± 0% -13.01% (p=0.000 n=30)
│ new.txt │ new4.txt │
│ B/op │ B/op vs base │
_Communication_Flow-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=30) ¹
¹ all samples are equal
│ new.txt │ new4.txt │
│ allocs/op │ allocs/op vs base │
_Communication_Flow-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=30) ¹
¹ all samples are equal
```
* perf: revert nextCustom
```
goos: darwin
goarch: arm64
pkg: github.com/gofiber/fiber/v3
cpu: Apple M4
│ head.txt │ revert-1.txt │
│ sec/op │ sec/op vs base │
_Communication_Flow-10 30.04n ± 0% 28.74n ± 0% -4.33% (p=0.000 n=30)
│ head.txt │ revert-1.txt │
│ B/op │ B/op vs base │
_Communication_Flow-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=30) ¹
¹ all samples are equal
│ head.txt │ revert-1.txt │
│ allocs/op │ allocs/op vs base │
_Communication_Flow-10 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=30) ¹
¹ all samples are equal
```
---------
Co-authored-by: RW <rene@gofiber.io>
---------
Co-authored-by: Juan Calderon-Perez <835733+gaby@users.noreply.github.com>
Co-authored-by: Kashiwa <13825170+ksw2000@users.noreply.github.com>
2025-06-23 12:47:52 +02:00
dependabot[bot]
b06ce1327f
build(deps): bump github.com/gofiber/utils/v2 from 2.0.0-beta.8 to 2.0.0-beta.9 ( #3540 )
...
build(deps): bump github.com/gofiber/utils/v2
Bumps [github.com/gofiber/utils/v2](https://github.com/gofiber/utils ) from 2.0.0-beta.8 to 2.0.0-beta.9.
- [Release notes](https://github.com/gofiber/utils/releases )
- [Commits](https://github.com/gofiber/utils/compare/v2.0.0-beta.8...v2.0.0-beta.9 )
---
updated-dependencies:
- dependency-name: github.com/gofiber/utils/v2
dependency-version: 2.0.0-beta.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 12:31:59 +02:00
Juan Calderon-Perez
fcf5755c7c
🐛 bug: Fix Content-Type comparison in Is() ( #3536 )
...
* test: validate Is fails for JSON subtype
* Update ctx.go
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
* Update ctx.go
* Use immutable-aware getter for Content-Type
* Update ctx.go
---------
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: RW <rene@gofiber.io>
2025-06-23 08:04:21 +02:00