Comments (9)
I currently got the compression working, here is my proposal for v1.8.1
:
PS: This API is not final yet, just want to hear your thoughts.
func main() {
app := fiber.New(&fiber.Settings{
Compression: true, // global compression enabled
})
app.Get("/", func(c *fiber.Ctx) {
c.Send("Hello, World!") // compressed
})
app.Get("/demo", func(c *fiber.Ctx) {
c.Compress(false)
c.Send("hello, World!") // not compressed
})
}
func main() {
app := fiber.New() // compression disabled by default
app.Get("/", func(c *fiber.Ctx) {
c.Compress()
c.Send("Hello, World!") // compressed
})
app.Get("/demo", func(c *fiber.Ctx) {
c.Send("hello, World!") // not compressed
})
}
// Write own middleware
func gzip(c *fiber.Ctx) {
c.Compress()
c.Next()
}
func main() {
app := fiber.New() // compression disabled by default
app.Get("/", gzip, func(c *fiber.Ctx) {
c.Send("Hello, World!") // compressed
})
app.Get("/demo", func(c *fiber.Ctx) {
c.Send("hello, World!") // not compressed
})
}
@renanbastos93, @hyingreborn, @koddr, let me know what you guys think.
from fiber.
@hyingreborn, we have the option to disable gzipping for the Static
files and c.SendFile
method. If I'm correct you would like to have an option to enable gzipping for any kind of response besides files?
from fiber.
I want gzip to work in my custom pathοΌnot only static filesοΌfor example
// gzip work in static path
app.Static("/app/", "./public/")
app.Use("/app", gzip())
// gzip work in api module
app := app.Group("/api", gzip())
//...
from fiber.
@hyingreborn after Fiber v1.7.0
, we can use multiple middlewares at app.Method
and app.Group
. You can write your own midware func and use it.
@Fenny good idea to exclude gzip
feature to github.com/gofiber/middlewares
for easy use on everywhere in app code.
from fiber.
I will use these two middleware when developing with gin, hoping to provide you with inspiration
github.com/gin-contrib/static
github.com/nanmu42/gzip
from fiber.
Thanks @hyingreborn for your suggestion, we will release a middleware folder soon and I will take a look if a gzipping middleware is possible with fasthttp!
from fiber.
Hi guys
Can I help you? I wish this challenge.
For context about it.
Do we you wishing implement GZIP in all routes don't just files, right?
Using according to example
app.Static("/app/", "./public/")
app.Use("/app", fiber.gzip())
app := app.Group("/api", fiber.gzip())
See ya
from fiber.
I saw now and FastHTTP have a compress gzip
https://github.com/valyala/fasthttp/blob/32793db72d04141d333eb04ce60170db6e79e6d2/compress.go
So, we should use Content-Encoding
how gzip.
example:
func Gzip(c *fiber.Ctx) {
c.Set("Content-Encoding", "gzip")
c.Next()
}
app.Group("/api", gzip)
Well, I believe that is possible using gzip on Fiber then I liked this approach to create a package for our middlewares.
Can we create a todo list to implement these middlewares?
I can't test this approach now, when possible I'll test.
see ya
from fiber.
Added in v1.8.1
from fiber.
Related Issues (20)
- π [Proposal]: Improving route matching and url parsing performance with Ada Url HOT 7
- Improve Error Handling in CSRF Middleware Storage
- π€ [Question]: v3 when ready for production HOT 1
- π [Bug]: Unclear "json: invalid use of ,string struct tag, trying to unmarshal unquoted value into uint64" HOT 9
- π€ [Question]: Cache Next is not called when KeyGenerator is Defined HOT 6
- π [Bug]: v3 Flash Message with redirect is not working HOT 3
- π [Proposal]: Upgrade fiber.NewError() for error handle HOT 4
- π [Proposal]: Reduce memory usage for "prefork" mode of the master process HOT 2
- π§Ή [Maintenance]: Add Parallel Benchmarks
- π€ [Question]: zero allocation - why is this any different from how Chi or others behave? Can you document an example of what you mean? HOT 8
- π€ [Question]: FX with Fiber graceful shutdown Failed to stop cleanly: context deadline exceeded HOT 15
- π€ [Question]: whats the session id injection issue in github report HOT 4
- π [Bug]: Mutex issues with Idempotency middleware
- π [Bug]: Logger module causes OOM with ${bytesSent} and ${bytesReceived} HOT 10
- π€ [Question]: limiter supports dynamic setting of βMaxβ parameter HOT 8
- π [Proposal]: Add StartupProbe support to healthcheck Middleware HOT 6
- [Question]: Can't debug in Goland in Routes HOT 2
- π [Bug]: cache middleware: runtime error: index out of range [0] with length 0 HOT 15
- π [Proposal]: Get session by its ID HOT 1
- π [Proposal]: Support for Application State Management HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fiber.