30 open-source projects similar to imageoptim/gifski, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Gifski alternative.
Gifify is a tool for converting video files into optimized animated GIFs. It functions as a video to GIF converter and optimization utility that extracts specific clips from video files and burns text or subtitle overlays directly into the frames. The project differentiates itself through specialized GIF optimization, using lossy compression, color count limiting, and custom color palette generation to reduce file sizes. It also provides precise control over the output by allowing users to adjust playback speed, reverse playback direction, and resize dimensions. The software covers a broad s
gif.js is a JavaScript GIF encoder and client-side color quantizer that generates animated GIF files directly within the web browser. It functions as an HTML5 canvas exporter and image processor, allowing for the creation of animated images from web sources without the need for a backend server. The library utilizes web workers to offload heavy image encoding tasks to background threads, which prevents the browser user interface from freezing during the generation process. This architecture enables the tool to act as a web worker image processor for dynamic image generation. The system cover
This project is an image processing library designed for manipulating pixel data, applying visual filters, and adjusting image appearance. It functions as a low-level tool for processing raw pixel buffers and managing image data. The library provides a toolkit for image geometry manipulation, including resizing, cropping, flipping, and rotating images. It also serves as an image format converter for encoding and decoding data between common binary file formats and as a metadata extractor for retrieving dimensions and color profiles from file headers. The capabilities cover low-level image pr
Pillow is a Python image processing library and digital image manipulation toolkit used for opening, manipulating, and saving various image file formats. It serves as a multi-format image codec wrapper that enables the reading and writing of diverse standards such as JPEG, PNG, TIFF, and BMP. The library provides tools for programmatic image manipulation, including resizing, cropping, rotating, and transforming visual content through direct pixel data modification. It supports pixel data analysis to extract and modify raw information for custom visual processing and data transformations. The
Gifski is a native macOS desktop application and video processing utility designed to convert video files into high-quality animated GIFs. It functions as a video-to-GIF converter that allows for the adjustment of frame rates and dimensions to balance visual fidelity with file size. The tool features capabilities for animation loop generation, including the creation of bounce effects by reversing video playback. It employs palette-based color quantization and error-diffusion dithering to maintain color accuracy and reduce banding in the final output. The application integrates with macOS sys
This project is a web-based animation tool and GIF meme generator that overlays custom text onto video templates. It functions as a backend system utilizing an ASS subtitle rendering engine and FFmpeg to produce animated GIF files from user inputs. The system is distinguished by its use of Advanced Substation Alpha files to handle the precise timing, positioning, and visual styling of text overlays. It features a directory-based template registry that automatically discovers available video and subtitle pairs by scanning the file system at startup. The tool provides a RESTful API for trigger
gifski-app is a native macOS desktop application used to convert video files into high-quality animated GIFs. It functions as both a standalone tool and a macOS system extension, allowing for the transformation of media files into animations with configurable dimensions, frame rates, and looping options. The application includes a specialized bounce animation generator that creates yo-yo effect images, which play forward and then backward in a continuous loop. Integration with the macOS ecosystem enables conversion directly from the system share menu within other applications. The software a
Libvips is a C-based image processing library designed to manipulate large visual assets through a low-memory, parallel processing pipeline. It functions as a streaming image processor that avoids loading entire files into system memory, enabling the handling of massive images in resource-constrained environments. The library distinguishes itself through a demand-driven architecture that constructs a deferred execution plan, computing only the necessary pixels for a final output. By utilizing a cache-friendly tiled processing model and memory-mapped file access, it minimizes latency and redun
wasm-pack is a build tool and workflow orchestrator for compiling Rust code to WebAssembly. It coordinates the compilation process and generates the JavaScript glue code required to execute Rust logic within web browsers and server-side runtimes. The tool manages binary optimization to reduce file sizes and improve execution speed. It also functions as a package manager, bundling compiled WebAssembly modules into archives compatible with JavaScript registries and bundlers. The project covers language interoperability through the automatic generation of TypeScript type definitions. It further
Binaryen is a WebAssembly compiler toolchain and optimizer designed to transform, validate, and shrink binary modules. It provides a comprehensive intermediate representation framework that converts binary code into a single-assignment form to enable advanced program analysis and code transformation. The project includes a specialized transformation engine that applies iterative optimization passes to increase execution speed and reduce binary size. Additionally, it functions as a transpiler that translates WebAssembly binary modules into executable JavaScript for environments that lack nativ
This project is a high-performance image transformation server and media optimization proxy designed to process, resize, and convert assets on the fly. It functions as a secure pipeline that fetches remote source files and applies transformations—such as cropping, watermarking, and visual filtering—directly through parameters defined in the request URL. The service distinguishes itself through a focus on secure, resource-aware delivery. It protects infrastructure by validating incoming requests with cryptographic signatures to prevent unauthorized access and enforces strict limits on file dim
Scala.js is a compiler and cross-platform language toolchain that transforms Scala source code into JavaScript or WebAssembly. It functions as a statically typed tool for the JavaScript ecosystem, enabling the development of applications for web browsers and Node.js environments. The project serves as a JavaScript interop framework, allowing the creation of type-safe facades and bindings to interact with external libraries and global objects. It provides mechanisms for both static and dynamic JavaScript invocation, including the generation of TypeScript bindings and the ability to export inte
Linfa is a classical machine learning framework and statistical learning suite implemented in Rust. It provides a collection of algorithms for supervised and unsupervised learning, focused on traditional statistical methods such as regression, clustering, and decision trees. The toolkit is distinguished by its ability to be compiled into WebAssembly, enabling analytical models to execute within browser environments. It employs a trait-based algorithm interface to standardize the process of training and prediction across its various models. The library covers a broad range of capabilities, in
json-to-go is a web-based tool for automatically generating Go structs from JSON input. It functions as a JSON to Go type generator, transforming unstructured JSON data or API responses into strongly typed source code structures. The project employs a WebAssembly-based translation engine to run the Go type generator directly within the browser. This architecture utilizes a schema-inference engine and recursive type mapping to analyze nested JSON objects and determine the appropriate Go data types for fields and arrays. The tool also includes utilities for API client development, allowing use
AssemblyScript is a compiler and tooling suite used for WebAssembly module development. It converts a subset of TypeScript syntax into binary modules to achieve high execution speeds and cross-platform binary execution. The project focuses on translating typed source code into the compact binary format required by WebAssembly runtimes. This allows for the movement of computationally heavy logic into binary modules for browser performance optimization and execution across different operating systems. The compilation process involves TypeScript-compatible syntax analysis and the generation of
Trunk is a WebAssembly build tool and orchestrator designed to automate the process of transforming Rust source code into deployable web applications. It serves as a frontend bundler that packages WebAssembly binaries along with HTML and static assets for browser deployment. The system utilizes an HTML-driven build orchestration model, using the index HTML file as the primary configuration source to determine entry points and dependencies. It integrates with the Rust compiler and associated toolchains to transform code into optimized binaries and glue code. The tool provides a development en
TeaVM is a Java bytecode transpiler and browser-based JVM runtime that converts compiled Java class files into JavaScript or WebAssembly. It functions as a compiler and build pipeline tool that enables applications written in various JVM languages to execute natively within a web browser. The project distinguishes itself by transforming bytecode directly into optimized web formats without requiring the original source code. It includes a WebAssembly bytecode compiler for high-performance execution and a specialized emulation system to handle asynchronous multithreading within the single-threa
Color-thief is a color quantization library and image color palette extractor designed to identify the most prominent colors in visual media. It functions as a semantic color classifier and color space converter, providing tools to extract dominant colors and generate representative palettes from images, videos, and canvas elements. The project utilizes a WebAssembly color processor and background workers to perform high-performance pixel analysis. It implements a WCAG contrast analyzer to calculate color contrast ratios and determine accessible foreground text colors based on accessibility s
This project is a suite of basic command line utilities rewritten in Rust, providing a cross-platform implementation of POSIX shell utilities. It serves as a portable CLI toolset designed to run across different operating systems and architectures. The implementation includes a WebAssembly shell environment, which allows these essential command line tools to be executed directly within a web browser without requiring a local installation. The toolset covers a broad range of system capabilities, including filesystem operations, text processing and stream editing, and system administration too
Panel is a Python data application framework used to build interactive dashboards and reactive user interfaces by connecting data visualizations, widgets, and callbacks. It functions as a reactive UI library that synchronizes application state with interface updates based on user interactions. The project distinguishes itself by offering multiple execution models, including a FastAPI-based web application server for scalable session management and a WebAssembly compiler that enables Python applications to run directly in the browser without a backend server. It also includes a specialized too
Pigo is a computer vision library written in Go for locating human faces in images and video streams. It provides tools for face detection, facial landmark identification, and pupil and eye localization. The project is implemented in pure Go to ensure portable execution without external dependencies. It supports compilation to WebAssembly, enabling face detection and image processing to run directly in web browsers without a backend. The library's capabilities include real-time face detection using classifier cascades and gaze tracking localization. It maps anatomical points on the face to a
Porffor is an ahead-of-time compiler that converts JavaScript and TypeScript source code into native machine code or C binaries. It functions as a native binary generator and transpiler, producing standalone executable files that do not require a runtime or virtual machine. The project translates source code into C language files and WebAssembly binary formats. It includes a direct-to-binary pipeline for TypeScript, allowing for the generation of target executables without a separate transpilation step to JavaScript. The toolset also includes an interactive read-eval-print loop for real-time
Walt is a transpiler and typed language that converts a JavaScript-like syntax into WebAssembly binary format. It functions as a toolchain for developing high-performance logic for browsers and runtimes by translating typed source code into WebAssembly text format. The project includes a bundler-integrated loader that automates the recompilation of source files during the build process. It provides a linear memory manager used to define custom data layouts, structs, and memory allocators within a contiguous heap. The language supports defined function signatures, numeric types, and the abili
Vugu is a Go WebAssembly UI library and framework used to build type-safe, component-based single-page applications. It functions as a single-file component framework that bundles markup, styles, and logic into modular units, utilizing a virtual DOM engine to synchronize state changes with the browser output. The project features a Go component generator that converts custom UI templates into executable Go source code at compile time. It distinguishes itself through a WebAssembly-based runtime that executes application logic as a compiled binary in the browser and a server-side rendering tool
TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to resource-constrained microcontrollers and WebAssembly environments. It provides a bare-metal runtime environment that enables high-level code execution without the need for a traditional operating system, utilizing an LLVM-based backend to generate efficient machine instructions. The project distinguishes itself through aggressive optimization techniques tailored for small hardware, including a static memory allocation strategy and whole-program dead code elimination that significantly re
RustPython is a Python 3 compatible interpreter implemented in Rust. It functions as a scripting engine that can be embedded directly into host applications, allowing for the execution of dynamic scripts and the customization of software behavior within a memory-safe environment. The project distinguishes itself through its ability to bridge Python and JavaScript runtimes, enabling data exchange and function invocation across language boundaries. It also provides a portable execution environment by compiling Python code into WebAssembly, which allows for the execution of logic directly within
hashsigs-rs is a Rust cryptography library providing a hash-based signature scheme and a library for generating and verifying one-time digital signatures. It serves as a smart contract signature verifier designed to validate identity and authenticity within on-chain environments. The project implements one-time signature generation and verification to ensure that digital signatures are valid for a single message, preventing key reuse. It supports blockchain authentication workflows and cryptographic identity proofs for validating senders without relying on external servers. The library utili
GraalVM is a polyglot virtual machine and high-performance runtime designed to execute multiple programming languages within a single environment. It functions as a JVM language toolkit for building language implementations, a native image compiler for transforming bytecode into standalone binaries, and an execution environment for LLVM bitcode and WebAssembly modules. The project is distinguished by its polyglot interoperability framework, which allows different languages to share data and execution state with low overhead. It utilizes self-modifying abstract syntax trees to optimize languag