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)
- ๐ [Bug]: Data race on shutdown HOT 8
- ๐ค [Question]: Calling other endpoints without network HOT 7
- ๐ [Bug]: memory session store calculating expirations with uint32 HOT 3
- ๐ค [Question]: Parsing `map` in POST `form` HOT 3
- ๐งน [Maintenance]: Update docs to use a consistent indentation style HOT 4
- ๐งน [Maintenance]: Fix pushed merge-conflict in `/docs/api/middleware/earlydata.md`
- ๐ค [Question]: Is the Ctx.BodyParser missing in v3? HOT 3
- ๐ค [Question]: How can i upgrade websocket in fiber HOT 6
- ๐ค [Question]: can't se my cookie in the browser HOT 1
- ๐ค [Question]: How to use BodyParse in v3 ? HOT 3
- ๐ค [Question]: How can I disable 304 responses with c.SendFile(), c.Download(), or Filesystem middleware? HOT 4
- ๐ [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
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.