Home

Awesome

libwebp + Xcode

A wrapper for libwebp + Xcode project. This enables Carthage support This also contains the Swift Package Manager support

CI Status Carthage compatible SwiftPM compatible

Requirements

Installation

CocoaPods

libwebp is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'libwebp'

Carthage

libwebp is (via this repo) available through Carthage.

github "SDWebImage/libwebp-Xcode"

SwiftPM

Libwebp is available through Swift Package Manager.

let package = Package(
    dependencies: [
        .package(url: "https://github.com/SDWebImage/libwebp-Xcode", from: "1.1.0")
    ],
    // ...
)

Usage

Use libwebp as you would normally, this is just a repo that adds an Xcode proj.

For Swift Package Manager user, it's recommended to use the modular import instead of C headers.

@import libwebp;
// or if you don't use module
#import <webp/decode.h>
#import <webp/encode.h>
import libwebp

About sharpyuv

From libwebp v1.2.3, Google separate some functions into a new standalone lib called sharpyuv. However, it dependeny source code from libwebp repo's src as implementation. Like llvm-project monorepo, one repo host multiple targets.

Before v1.3.0, we hide these headers as internal headers.

From v1.3.0, we expose the sharpyuv public headers, but not a standalone CocoaPods/SPM/Carthage Target. (In the future we may consider separate targets)

If you want to use sharpyuv functions, do something like this:

// This does not supports module include
#if __has_include(<sharpyuv/sharpyuv.h>)
#import <sharpyuv/sharpyuv.h>
#else
#import <libwebp/sharpyuv.h> // bundled in libwebp's modulemap
#endif
#if canImport(sharpyuv)
import sharpyuv
#else
import libwebp // bundled in libwebp's modulemap
#endif

License

libwebp is available under the BSD-3 license. See the LICENSE file for more info.