* middleware: add idempotency middleware
* middleware/idempotency: use fiber.Storage instead of custom storage
* middleware/idempotency: only allocate data if really required
* middleware/idempotency: marshal response using msgp
* middleware/idempotency: add msgp tests
* middleware/idempotency: do not export response
* middleware/idempotency: disable msgp's -io option to disable generating unused methods
* middleware/idempotency: switch to time.Duration based app.Test
* middleware/idempotency: only create closure once
* middleware/idempotency: add benchmarks
* middleware/idempotency: optimize strings.ToLower when making comparison
The real "strings.ToLower" still needs to be used when storing the data.
* middleware/idempotency: safe-copy body
app: make app.Test accept a time.Duration timeout
Cases found by running semgrep with an empty .semgrepignore file
semgrep --lang=go -e '$O.Test($X, $Y)'
* - logger: fix custom tag
- use real bytebufferpool dependency instead of the internal
* - logger: fix custom tag
- use real bytebufferpool dependency instead of the internal
* - logger: fix custom tag
- use real bytebufferpool dependency instead of the internal
* - logger: fix custom tag
- use real bytebufferpool dependency instead of the internal
* WIP: Use Parent Error Handler on Mount
* Add suggested boolean guard
* Move flag to App
* Move to copy of config as configured
* Apply the same trick to customMethod
* ctx: simplify Protocol()
* ctx: also mention "X-Url-Scheme" header in Protocol()
* ctx: use the same warning comment about enabling Config.EnableTrustedProxyCheck everywhere
* internal/memory: cache timestamp
* internal/memory: ensure to never delete non-expired items
This fixes a TOCTOU problem between a mutex rlock and a mutex lock.
* internal/memory: move costly operations outside of locked area
* internal/storage: cache timestamp
* internal/storage: ensure to never delete non-expired items
This fixes a TOCTOU problem between a mutex rlock and a mutex lock.
* internal/storage: move costly operations outside of locked area
* helpers: add HTTP status code 306
* helpers: show numeric HTTP status code instead of status code RFC next to errors
* utils: add HTTP status code 425
* helpers,utils: update list of HTTP status codes
* Add URL prefix to pprof middleware
Signed-off-by: Glenn Lewis <6598971+gmlewis@users.noreply.github.com>
* Minor tweak
Signed-off-by: Glenn Lewis <6598971+gmlewis@users.noreply.github.com>
Signed-off-by: Glenn Lewis <6598971+gmlewis@users.noreply.github.com>
* 🔥 chore: removed mount from router
* ✨ feat: new mounting system
* ✨ feat: mount for group
* ✅ test: updated and improve for new mount system
* ♻️ refactor: better variable name
* ♻️ refactor: better function naming
* 🐛 fix: not mounted check
* ✅ test: update onmount test if sub app is not mounted to parent
* 🎨 perf: fix allocs problem
* ✅ test: add benchmark for MountPath
* ✨ feat: access to app's mountpath
* ✅ test: remove parent app's mountpath test
* remove some parts
* add comment
* fix
Co-authored-by: Muhammed Efe Çetin <efectn@protonmail.com>
Co-authored-by: RW <rene@gofiber.io>