image

Rust library for image processing plus encoders/decoders for common image formats

Library
Cargo
v0.25.10
5,884 stars
MIT OR Apache-2.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
80 /100 Excellent
Development Activity 88
Maintenance 52
Community 80
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
83 /100 Excellent
Architecture 87
Code Quality 85
Innovation 80
Learning Curve 78

image is a Rust crate providing image processing functions and methods alongside encoders and decoders for the image formats developers actually use — PNG, JPEG, GIF, WebP, AVIF, BMP, TIFF, ICO, HDR, QOI, and more, enabled through opt-in feature flags. Its high-level ImageReader API loads an image and decodes it in two lines, while lower-level GenericImage/GenericImageView traits give access to pixel-level manipulation.

The crate is designed to be dependency-light by default: applications are encouraged to disable default features and enable only the specific formats they need, keeping compile times and binary size down. A companion crate, image-extras, extends format support further through the same plugin interface used internally.

What You Get

  • A high-level ImageReader API for opening and decoding images in a couple of lines of code
  • Built-in encoders/decoders for AVIF, BMP, EXR, FF, GIF, HDR, ICO, JPEG, PNG, PNM, QOI, TGA, TIFF, and WebP
  • GenericImage/GenericImageView traits and ImageBuffer for pixel-level image manipulation
  • Common image operations (imageops) like resizing, cropping, rotation, and color quantization
  • Optional Rayon-backed multi-threading for parallelizable operations
  • A plugin interface (also used by the image-extras companion crate) for adding support for additional formats

Common Use Cases

  • Loading and decoding uploaded images of unknown format before further processing or validation
  • Resizing, cropping, or converting images between formats (e.g. PNG to WebP) in a build or server pipeline
  • Generating thumbnails or previews for a media-handling application
  • Reading pixel data for computer-vision or machine-learning preprocessing pipelines
  • Writing generated or processed image data back out to disk or over the network in a target format

Under The Hood

Architecture - src/lib.rs defines the crate’s public surface around ImageReader (in src/io.rs) and the GenericImage/GenericImageView traits (src/traits.rs), with each supported format implemented as an independent codec module under src/codecs/ that plugs into a shared decode/encode interface. src/imageops/ implements portable operations (resize, crop, filters) generically over any type implementing those core traits, and src/color.rs/src/images/ define the pixel and buffer types that tie decoders, encoders, and operations together.

Tech Stack - Pure Rust (edition 2021, MSRV 1.88), structured as feature-gated codec modules so consumers pull in only the formats they need; optional dependencies include rayon for parallelism, nasm-accelerated ravif for AVIF encoding, and mp4parse/dav1d for non-Rust AVIF decoding. deny.toml enforces dependency licensing/security policy and clippy.toml enforces lint configuration across the codebase.

Code Quality - The tests/ directory includes dedicated reference-image comparison tests (reference_images.rs), malformed-input handling tests (bad_images.rs), and resource-limit tests (limits.rs, limits_anim.rs) — reflecting the fact that image decoders are a common target for malicious input and need explicit hardening, not just correctness tests. A fuzz/ and fuzz-afl/ directory provide continuous fuzzing of the format decoders.

API Design - The two-tier design — a simple ImageReader::open(...)?.decode()? path for common cases and lower-level trait-based pixel access for advanced manipulation — keeps the common path nearly boilerplate-free while still exposing full control when needed. The explicit guidance to disable default features and cherry-pick formats is an unusual but deliberate ergonomics trade-off: slightly more setup for library authors in exchange for a much smaller dependency tree in the final binary.

Used by 19 apps in this directory

Rust
54%
Other

Cap

Team Chat · Video Conferencing

22,884

Open source Loom alternative with GPU-accelerated recording, instant share links, AI summaries, and full self-hosting via Docker Compose.

View details
89
Repo Health
81
Technical
64
Dependency
Built with
Rust 54%
TypeScript 42%
Updated 4 days ago
Rust
67%
Other

DefGuard

Authentication · Networking · Security

2,849

Self-hosted secure remote access that unifies WireGuard VPN, identity management, and connection-level MFA in one open-source platform.

View details
84
Repo Health
82
Technical
72
Dependency
Built with
Rust 67%
TypeScript 31%
Updated 1 weeks ago
TypeScript
88%
MIT

DevTools-X

Developer Tools

1,534

41 offline-first developer utilities in a single 10MB cross-platform desktop app — no Electron, no cloud, no compromise.

View details
49
Repo Health
68
Technical
68
Dependency
Built with
TypeScript 88%
Updated 4 months ago
Rust
95%
MIT

Fyrox

Game Development

9,568

A production-ready 2D/3D game engine written in Rust with a built-in scene editor, physics, and hot-reloading game scripts

View details
85
Repo Health
79
Technical
68
Dependency
Built with
Rust 95%
Updated 5 days ago
Rust
89%
Apache 2.0

Graphite

Code Editors · Design Tools

27,377

A free, open source procedural 2D design tool that unifies vector, raster, motion graphics, and generative art in a single node-based nondestructive workflow.

View details
84
Repo Health
77
Technical
70
Dependency
Built with
Rust 89%
Updated 5 days ago
Rust
84%
Apache 2.0

liteparse

Developer Tools

12,682

A fast, lightweight, open-source document parser that extracts spatial text, bounding boxes, and Markdown from PDFs and Office files — entirely on your machine.

View details
82
Repo Health
80
Technical
74
Dependency
Built with
Rust 84%
Updated 1 weeks ago
TypeScript
96%
AGPL 3.0

Midday

Invoicing Finance · Productivity

15,042

All-in-one AI-powered business operations platform for freelancers and solo entrepreneurs to manage invoicing, time tracking, banking, and financial intelligence.

View details
53
Repo Health
78
Technical
67
Dependency
Built with
TypeScript 96%
Updated 3 months ago
Rust
55%
GPL 3.0

openfootmanager

Game Development

1,128

A free and open source football management simulation game built with Rust and Tauri, inspired by Football Manager.

View details
94
Repo Health
79
Technical
74
Dependency
Built with
Rust 55%
TypeScript 44%
Updated 1 weeks ago
Python
75%
AGPL 3.0

OpenViking

AI Development · AI Memory · Databases

38,819

An open-source context database that gives AI agents a unified filesystem for memory, resources, and skills with hierarchical tiered retrieval.

View details
85
Repo Health
75
Technical
64
Dependency
Built with
Python 75%
Rust 12%
Updated 4 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers