gzip data compression from Swift, OS X & Linux ready
Data or anything
let myData = ... //Data let myGzipCompressedData = try myData.gzipCompressed() //Data ... let myGzipUncompressedData = try myGzipCompressedData.gzipUncompressed() //Data ... //PROFIT!
Middleware to suport gzipped content in
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.
Swift Package Manager
.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!