Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
No. 1693Tools index

Previous survey · No. 1699 ·

Pricing
Open Source
Type
TOOL
Builder
GyulyVGC
GitHub
7 stars
Date

About

Get process icons in a cross-platform way from Rust.

What it does

Picon turns an executable path or application name into an icon ready for an Iced interface. It selects a native retrieval strategy for each supported operating system, then returns either an image handle or an SVG handle. Missing or unsupported icons produce no result.

Why it's ranked here

Picon solves a narrow desktop problem with substantial platform-specific work already handled. Windows supports packaged and conventional applications, macOS uses the system workspace, and Linux or BSD searches desktop metadata and icon themes. The verdict is positive for Iced applications, but its deliberate framework coupling sharply limits broader reuse.

What's good

The platform implementations respect native conventions instead of forcing one brittle lookup method everywhere. Windows cleans up operating-system graphics resources automatically and checks packaged application manifests before executable extraction. macOS locates enclosing application bundles, crops padding, and resizes output. Continuous integration builds, lints, formats, and tests across every declared platform family.

Tradeoffs

The returned values are tied directly to Iced, and the author explicitly says the crate is not general purpose. Inputs also differ by platform: executable paths on Windows and macOS, names elsewhere. Linux and BSD accept only PNG or SVG results. The public test module is empty, so the repository provides little executable behavioral coverage.

How to use it well

Use Picon inside an Iced desktop application that needs recognizable process or application icons across several operating systems. Check platform support, supply the input form expected by the target system, and handle missing results. Choose another library or adapt this code when you need framework-neutral bytes, arbitrary image formats, or a general icon-discovery service.

Technical notes+

Cargo.toml defines a Rust 2024 library crate with target-specific dependencies and Iced image and SVG features. src/lib.rs exposes IS_OS_SUPPORTED, IconHandle, and get_icon, while src/platform/mod.rs selects implementations at compile time. src/platform/windows/manifest.rs parses AppxManifest.xml and chooses the asset nearest 64 pixels; src/platform/windows/hicon.rs converts Windows HICON data from BGRA to RGBA with RAII cleanup. src/platform/macos/mod.rs obtains NSImage data through NSWorkspace, crops ten percent per edge, and renders 64 by 64 TIFF bytes. src/platform/linux/mod.rs scans desktop entries and resolves PNG or SVG theme assets. .github/workflows/ci.yml covers Ubuntu, macOS, Windows, FreeBSD, OpenBSD, and NetBSD, although src/lib.rs contains only an empty test module.

Observed

License
MIT
Primary language
Rust
Packaging
Cargo library package published through the crates.io surface
Interface
Rust library API returning Iced image or SVG handles
Platform support
Windows, Linux, macOS, FreeBSD, OpenBSD, and NetBSD
Continuous integration
Formatting, build, lint, and test jobs cover all declared operating system families
Test structure
The public library source contains an empty test module

Read from README.md, Cargo.toml, src/lib.rs, src/platform/mod.rs, src/platform/linux/mod.rs, src/platform/macos/mod.rs, src/platform/windows/mod.rs, src/platform/windows/hicon.rs, src/platform/unsupported/mod.rs, src/platform/windows/manifest.rs, LICENSE, CHANGELOG.md, .github/dependabot.yml, .github/workflows/ci.yml.

What it can do

  • Extract process icons from running applications

    Process ID or process nameProcess icon image

  • Retrieve application icons across different operating systems

    Application executable pathApplication icon in standard format

  • Convert process icons to Rust-compatible image formats

    Raw process icon dataRust image data structure

  • Query system processes for their associated icons

    System process listIcon data for each process

Tags

rusticonscross-platformprocesses

Tech Stack

Rust

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.