gzip data compression from Swift, OS X & Linux ready
Works on Data
or anything Gzippable
let myData = ... //Data
let myGzipCompressedData = try myData.gzipCompressed() //Data
...
let myGzipUncompressedData = try myGzipCompressedData.gzipUncompressed() //Data
... //PROFIT!
Middleware to suport gzipped content in HTTPClient
.
let request = ... //Request
let response = try client.request(request, middleware: [GzipMiddleware()])
Please note, that GzipMiddleware
should be placed at the end of a chain:
let response = try client.request(request, middleware: [ContentNegotiationMiddleware(mediaTypes: [.json], mode: .client), GzipMiddleware()])
As this library uses a SwiftPM-compatible source of zlib, you don't need to install anything manually before using it. Even though both OS X and Linux have a preinstalled version of zlib
, unfortunately each has a different version, making its potential use inconsistent. In our case everything is compiled from source, so you can be sure to get the same results everywhere. 💯
.Package(url: "https://github.com/Zewo/gzip.git", majorVersion: 0, minor: 8)
Please create an issue with a description of your problem or open a pull request with a fix.
This project was initially inspired by NSData+GZIP, thank you!
MIT
Honza Dvorsky - http://honzadvorsky.com, @czechboy0