SwiftGzip 是一个框架,可以使用 zlib 来压缩/解压缩数据、文件和流。
该框架使用 InputStream 和 OutputStream 进行压缩/解压缩,而无需将整个数据复制到内存中。 最多,该框架只会分配 2 个 256 kb 的缓冲区用于处理。
您可以通过将 swift-gzip 作为软件包添加到您的 Xcode 项目中。
如果您想在 SwiftPM 项目中使用 swift-gzip,只需将其添加到您的 Package.swift 中即可
dependencies: [
.package(url: "https://github.com/mihai8804858/swift-gzip", branch: "main")
]
然后将该产品添加到任何需要访问该库的目标中
.product(name: "SwiftGzip", package: "swift-gzip")
只需在您的项目中导入 SwiftGzip 即可访问 API
import SwiftGzip
isGzipped验证给定的 Data、[UInt8] 或 URL 是否以 gzip 格式压缩
[UInt8](...).isGzipped
Data(...).isGzipped
URL(...).isGzipped
zip (压缩)let compressor = GzipCompressor(level: .bestCompression)
// Compress `Data`
let zipped = try await compressor.zip(data: data)
// Compress `[UInt8]`
let zipped = try await compressor.zip(bytes: bytes)
// Compress file
let inputURL = URL(...)
let outputURL = URL(...)
try await compressor.zip(inputURL: inputURL, outputURL: outputURL)
// Compress data stream
let inputStream = InputStream(...)
let outputStream = OutputStream(...)
try await compressor.zip(inputStream: inputStream, outputStream: outputStream)
unzip (解压缩)let decompressor = GzipDecompressor()
// Decompress `Data`
let unzipped = try await compressor.unzip(data: data)
// Decompress `[UInt8]`
let zipped = try await compressor.unzip(bytes: bytes)
// Decompress file
let inputURL = URL(...)
let outputURL = URL(...)
try await compressor.unzip(inputURL: inputURL, outputURL: outputURL)
// Decompress data stream
let inputStream = InputStream(...)
let outputStream = OutputStream(...)
try await compressor.unzip(inputStream: inputStream, outputStream: outputStream)
本库基于 MIT 许可证发布。 详情请参阅 LICENSE。