Skip to content

A Rust library that provides filetype glyphs (icons) for a wide range of common file formats.

License

Notifications You must be signed in to change notification settings

alexpasmantier/rust-devicons

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub branch check runs docs.rs Crates.io Total Downloads GitHub License Crates.io Version Crates.io Size

🦀 rust-devicons

A Rust library inspired by vim-devicons, that provides filetype glyphs (icons) for a wide range of common file formats.

rust-devicons

Features

  • 🦞 Icon Retrieval: Get file or directory icons based on file name/extension.
  • 🦞 Icon Color: Retrieve the color associated with the icon depending on the specified theme.
  • 🦞 Filetype Support: Supports a wide range of filetypes and filename conventions (dockerfile, makefile, etc.).
  • 🦞 Customizable Themes: Supports both light and dark themes.
Screenshot 2024-09-21 at 16 54 16

Installation

cargo add devicons

NOTE: you'll need to use a NerdFont to properly display the icons.

Usage

Here’s a simple example of how to use devicons to retrieve a file icon with the dark theme:

use std::path::Path;
use devicons::{File, Theme, icon_for_file, FileIcon};

fn main() {
    // getting the icon from a path with a specified theme
    let path = Path::new("Cargo.toml");
    let icon = icon_for_file(path, Some(Theme::Dark));

    // getting the icon from a string with a specified theme
    let icon = icon_for_file("Cargo.toml", Some(Theme::Dark));

    // getting the icon from a path with the default theme
    let icon = FileIcon::from(path);

    // directly getting an icon from a filename
    let icon = FileIcon::from("Cargo.toml");

    println!("File: {}", path.to_string_lossy());
    println!("Icon: {}", icon.icon);
    println!("Color: {}", icon.color);
}

Running the Examples

You can find more usage examples in the examples directory. To run them, use:

cargo run --example <example_name>

License

This project is licensed under the Apache 2.0 License.

About

A Rust library that provides filetype glyphs (icons) for a wide range of common file formats.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages