image

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

Library
Cargo
v0.25.10
5,894 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 →
71 /100 Good
Development Activity 64
Maintenance 40
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
85%
AGPL 3.0

ParadeDB

Analytics · Databases · Search

9,436

Born out of Y Combinator's S2023 batch, ParadeDB is a Postgres extension that delivers Elasticsearch-quality BM25 search and real-time analytics without a separate search cluster to manage.

View details
89
Repo Health
87
Technical
68
Dependency
Built with
Rust 85%
PLpgSQL 15%
Updated 5 days ago
Rust
76%
GPL 3.0

Pipedash

Developer Tools · Devops · Monitoring

1,103

One dashboard to monitor, trigger, and cancel CI/CD pipelines across GitHub, GitLab, Jenkins, Tekton, Buildkite, ArgoCD, and Bitbucket — desktop, Docker, or iOS.

View details
80
Repo Health
64
Technical
73
Dependency
Built with
Rust 76%
TypeScript 24%
Updated 5 days ago
Python
55%
Other

PostHog

Ab Testing Experimentation · Analytics · Developer Tools

40,397

The all-in-one open source product platform combining analytics, session replay, feature flags, error tracking, AI observability, and a built-in data warehouse in a single self-hostable stack.

View details
92
Repo Health
80
Technical
65
Dependency
Built with
Python 55%
TypeScript 36%
Updated 5 days ago
Rust
63%
MIT

Readur

Bookmarks Archiving · File Storage · Knowledge Management

804

A self-hosted document management system that OCRs, indexes, and makes every PDF, scan, and Office file instantly searchable.

View details
83
Repo Health
78
Technical
67
Dependency
Built with
Rust 63%
TypeScript 32%
Updated 5 days ago
Rust
79%
AGPL 3.0

Spacedrive

Collaboration · File Storage

39,292

One file manager for all your devices and clouds — powered by a Virtual Distributed File System built in Rust.

View details
84
Repo Health
84
Technical
63
Dependency
Built with
Rust 79%
TypeScript 18%
Updated 2 weeks ago
Rust
66%
Apache 2.0

Temps

Analytics · Devops · Monitoring

865

A self-hosted Rust PaaS that replaces Vercel, Sentry, PostHog, Pingdom, Resend, and E2B with one binary — plus 440+ CLI operations agents like Claude Code can drive directly.

View details
81
Repo Health
86
Technical
66
Dependency
Built with
Rust 66%
TypeScript 33%
Updated 6 days ago
Rust
79%
Apache 2.0

TensorZero

Ab Testing Experimentation · AI Development · Monitoring

11,708

TensorZero unifies the LLM gateway, observability, evaluation, optimization, and experimentation stack behind a single OpenAI-compatible API, built in Rust for sub-millisecond p99 latency.

View details
53
Repo Health
87
Technical
68
Dependency
Built with
Rust 79%
TypeScript 15%
Updated 4 months ago
Rust
71%
MIT

Trieve

AI Development · Developer Tools · Search

2,721

All-in-one self-hostable platform for hybrid search, RAG, recommendations, and analytics built on Rust and Qdrant.

View details
42
Repo Health
74
Technical
65
Dependency
Built with
Rust 71%
Updated 9 months ago
Rust
50%
Apache 2.0

Vibe Kanban

AI Agents · AI Code Assistants · Project Management

28,441

A kanban board for planning work and dispatching Claude Code, Codex, Gemini CLI, and eight other coding agents into isolated git worktrees, then reviewing and merging their diffs from one UI.

View details
72
Repo Health
75
Technical
63
Dependency
Built with
Rust 50%
TypeScript 46%
Updated 1 months 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