gzip
Compression
Swift
aws-sdk

SwiftでgzipするにはAWSGZIPが便利(AWS SDKを使っている場合限定)

More than 1 year has passed since last update.

TL;DR

  • AWS SDKに含まれる以下のメソッドが便利
    • NSData#awsgzip_gzippedDataWithCompressionLevel(level: Float)
    • NSData#awsgzip_gzippedData()
    • NSData#awsgzip_gunzippedData

目的

NSDataオブジェクトをgzip形式で圧縮/展開したい。

調査

「Swift gzip」などで検索すると、いくつかライブラリが見つかりますが、テストコードがなかったり、メンテナンスされていなかったりで微妙。

解決

そんな時、別の用途で使っているAWS SDKにAWSGZIP.mというファイルが含まれているのを偶然発見。
問題なく圧縮/展開できました。AWS SDKに含まれるくらいなので、信頼性もある程度あると思われる。
もちろん、これらを使えるのはAWS SDKを使っている場合限定ですが。

AWSGZIP.mファイル内のコメントによると、オリジナルはnicklockwood/GZIPとのこと。もちろんこちらでもOK。