image-rs/image

Encoding and decoding images in Rust

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 23 minutes ago
Added to GitGenius on September 11th, 2026
Created on May 25th, 2014
Open Issues & Pull Requests: 226 (+0)
GitHub issues: Enabled
Number of forks: 721
Total Stargazers: 5,867 (+0)
Total Subscribers: 80 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 6.1 hours
Mean response time: 124.7 days
90th percentile: 270.1 days
Tracked items: 381

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 68% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. Work labelled "kind: dependency-tracked" is answered fastest, typically in about an hour, while "kind: bug" waits about 31 hours. 81% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 8% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 133
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 922 days
Stale 30+ days: 127
Stale 90+ days: 115

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • kind: API (89)
  • kind: new features (67)
  • topic: formats (65)
  • kind: bug (29)
  • kind: incorrect (22)
  • kind: slow (19)
  • next: breaking (16)
  • help wanted (15)

Most active issues this week

Detailed Description

Image is a Rust library for encoding and decoding images in various formats and performing basic image processing operations.

The library solves the problem of reading, writing, and manipulating images across multiple file formats in Rust. It provides a high-level API centered on the `ImageReader` type for loading images and `save` or `write_to` methods for storing them. Image processing functions operate on types implementing the `GenericImageView` and `GenericImage` traits and return an `ImageBuffer`. The library supports many common formats including AVIF, BMP, EXR, GIF, HDR, ICO, JPEG, PNG, PNM, QOI, TGA, TIFF, and WebP through its default feature set. Additional formats are available through the `image-extras` crate, and a plugin interface allows third-party crates to provide format implementations.

Developers should choose this library if they need straightforward image loading, saving, and basic processing in Rust without external dependencies for common formats. The `ImageBuffer` type provides direct pixel access for custom operations, while the `DynamicImage` enum handles runtime-determined image types and reimplements all processing functions for convenience. When publishing libraries that depend on image, the README recommends disabling default features and explicitly enabling only necessary format support to reduce the dependency tree and build time. This is particularly important for single-threaded environments like WebAssembly targets, where the default multithreading behavior via rayon may cause unexpected issues.

The project receives issues from both core maintainers and external users, indicating adoption beyond the core team without an overwhelming support burden. Maintainers typically respond to new issues and pull requests within a day. Work in the issue tracker centers on API design, image format support, and new feature development.