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)
- π [docs]: Fix broken link in FAQ section HOT 1
- How to use Middleware handler HOT 3
- π€ [Question]: Why v3 has no option to DisableStartupMessage HOT 2
- π€ [Question]: upstream reply with long time HOT 8
- π€ [Question]: i get v3 docs are not exactly v3 docs HOT 1
- π [Proposal]: Re-introduce the DisableStartupMessage configuration option in Fiber v3 HOT 2
- π€ [Question]: How to disable logger middleware in some endpoints HOT 2
- π [Bug]: Prefork Not Working on Fiber v3 HOT 2
- π [Proposal]: shutdown procedure
- π [Bug]: incorrect routing when adding a default layout HOT 4
- π [Bug]: Middleware Monitor "CPU Usage" is a "static value". HOT 1
- π [Bug]: Appending handlers screws up routing HOT 2
- π€ [Question]: get param from path for proxy pass request HOT 1
- π [Bug]: Abort Signal HOT 4
- π€ [Question]: Enable DisableHeaderNormalizing config will occur wrong cors middleware behaviour HOT 10
- π€ [Question]: Question on ETag Docs HOT 1
- π€ [Question]: Does Fiber handle each request in different goroutines? HOT 2
- π [Feature] [v2]: Add a function to get the session expiry HOT 5
- π [Bug]: setting a Logger that access TLSConnectionState() will break when `app.Server().MaxConnsPerIP` is set to a value HOT 7
- π€ [Question]: Fiber http with Cloudflare ssl reverse leading to 525, SSL handshake failed HOT 2
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.