[package] authors = ["Kornel "] categories = ["multimedia::video", "command-line-utilities"] description = "pngquant-based GIF maker for nice-looking animGIFs" documentation = "https://docs.rs/gifski" homepage = "https://gif.ski" include = ["/README.md", "/Cargo.toml", "/src/**/*.rs", "/src/bin/*.rs"] keywords = ["gif", "encoder", "converter", "maker", "gifquant"] license = "AGPL-3.0-or-later" name = "gifski" readme = "README.md" repository = "https://github.com/ImageOptim/gifski" version = "1.32.0" autobins = false edition = "2021" rust-version = "1.74" [[bin]] doctest = false name = "gifski" required-features = ["binary"] [dependencies] clap = { version = "4.5.4", features = ["cargo"], optional = true } imgref = "1.10.1" gif = { version = "0.13.1", default-features = false, features = ["std", "raii_no_panic"] } gif-dispose = "5.0.0" imagequant = "4.3.0" lodepng = { version = "3.10.1", optional = true } pbr = { version = "1.1.1", optional = true } resize = { version = "0.8.3", features = ["rayon"] } rgb = "0.8.37" wild = { version = "2.2.0", optional = true, features = ["glob-quoted-on-windows"] } natord = { version = "1.0.9", optional = true } quick-error = "2.0.1" dunce = { version = "1.0.4", optional = true } crossbeam-channel = "0.5.11" loop9 = "0.1.5" # noisy-float 0.2 bug num-traits = { version = "0.2.17", features = ["i128", "std"] } crossbeam-utils = "0.8.19" ordered-channel = { version = "1.1.0", features = ["crossbeam-channel"] } y4m = { version = "0.8.0", optional = true } yuv = { version = "0.1.5", optional = true } [dependencies.ffmpeg] package = "ffmpeg-next" version = "6" optional = true default-features = false features = ["codec", "format", "filter", "software-resampling", "software-scaling"] [dev-dependencies] lodepng = "3.10.1" [features] # `cargo build` will skip the binaries with missing `required-features` # so all CLI dependencies have to be enabled by default. default = ["gifsicle", "binary"] # You can disable this feture when using gifski as a library. binary = ["dep:clap", "dep:yuv", "dep:y4m", "png", "pbr", "dep:wild", "dep:natord", "dep:dunce"] capi = [] # internal for cargo-c only png = ["dep:lodepng"] # Links dynamically to ffmpeg. Needs ffmpeg devel package installed on the system. video = ["dep:ffmpeg"] # Builds ffmpeg from source. Needs a C compiler, and all of ffmpeg's source dependencies. video-static = ["video", "ffmpeg/build"] # If you're lucky, this one might work with ffmpeg from vcpkg. video-prebuilt-static = ["video", "ffmpeg/static"] # Support lossy LZW encoding when lower quality is set gifsicle = [] [lib] path = "src/lib.rs" crate-type = ["lib", "staticlib", "cdylib"] [profile.dev] debug = 1 opt-level = 1 [profile.dev.package.'*'] opt-level = 2 debug = false [profile.release] panic = "abort" lto = true debug = false opt-level = 3 strip = true [package.metadata.docs.rs] targets = ["x86_64-unknown-linux-gnu"] [package.metadata.capi.header] subdirectory = false generation = false [package.metadata.capi.install.include] asset = [{from = "gifski.h"}] [patch.crates-io] # ffmpeg-sys-next does not support cross-compilation, which I use to produce binaries https://github.com/zmwangx/rust-ffmpeg-sys/pull/30 ffmpeg-sys-next = { rev = "fd5784d645df2ebe022a204ac36582074da1edf7", git = "https://github.com/kornelski/rust-ffmpeg-sys-1"}