#favicon #icons #cli-tool

bin+lib favilib

从网站中获取和解析favicon的库

6 个版本 (重大更新)

0.5.1 2024年4月16日
0.5.0 2024年4月15日
0.4.0 2024年4月14日
0.3.0 2024年4月12日
0.1.0 2024年4月8日

#1465 in 解析实现

Download history 7/week @ 2024-04-24 4/week @ 2024-05-01 4/week @ 2024-05-08 2/week @ 2024-05-15 20/week @ 2024-05-22 5/week @ 2024-05-29 10/week @ 2024-06-05 7/week @ 2024-06-12 16/week @ 2024-06-19 2/week @ 2024-06-26 6/week @ 2024-07-03 49/week @ 2024-07-24 16/week @ 2024-07-31

每月65次下载

MIT 协议

25KB
492 代码行

crates.io version docs.rs

favilib

使用 Rust 编写的 Favicon Fetcher。包含库以及 CLI 工具。

[!警告] 这还是一个正在进行中的项目。库尚不稳定。

use favilib::{fetch, Favicon, ImageSize, ImageFormat, Url, Client};

let url = Url::parse("https://github.com").unwrap();

// Fetch and export image directly
let _ = fetch(&url, ImageSize::Large, ImageFormat::Png, "favicon.png", None);

// Fetch image and get it as a struct
let client = Client::new(); 
let favicon = Favicon::fetch(&url, Some(client)).unwrap();

let resized_favicon = favicon.resize(ImageSize::Custom(32,32)).unwrap();
let reformatted_favicon = resized_favicon.change_format(ImageFormat::Png).unwrap();
reformatted_favicon.export("favicon.png").unwrap();

CLI

安装

可以通过运行以下命令通过 cargo 安装 CLI:cargo install favilib

界面

# Format will be changed based on the file ending
favilib fetch github.com --size large --path favicon.png 

# Format can also be specified explicitly and bytes can be printed to stdout if path is omitted. And size can be specified explicitly
favilib fetch github.com --size 32,32 --format ico

# Prints the extracted URL of the favicon to stdout
favilib fetch github.com --url-only --stdout

依赖项

~10–21MB
~330K SLoC