#header #repository #path #parameters #searcher #version #libhif

app feaders

使用libhif编写的头文件搜索器

1个不稳定版本

使用旧的Rust 2015

0.2.0 2016年4月24日

#12 in #searcher

GPLv3 许可证

1.5MB
30K SLoC

feaders-rs

Clippy Linting Result

使用Rust重新实现Feaders项目。

用法

$ feaders -h
Usage: feaders [options] PATH

Options:
    -h, --help          prints this menu
    -r, --repo          repository to use for resolution
    -v, --verbose       verbose mode
    -d, --deduplicate   try to deduplicate headers
        --version       display version information

(注意:当前忽略存储库参数,搜索/etc/yum.repos.d/中找到的所有存储库)

示例运行

$ feaders -d ../Pillow/
python-devel-2.7.10-8.fc22.x86_64
tk-devel-1:8.6.4-2.fc22.x86_64
libjpeg-turbo-devel-1.4.0-2.fc22.x86_64
libtiff-devel-4.0.3-21.fc22.x86_64
openjpeg-devel-1.5.1-14.fc22.x86_64
zlib-devel-1.2.8-7.fc22.x86_64
lcms2-devel-2.7-1.fc22.x86_64
libwebp-devel-0.4.4-1.fc22.x86_64

与原始Feaders的不同之处

除了用Rust而不是Python编写之外,feaders-rs在搜索存储库方面采取了不同的方法。原始实现依赖于librepo下载存储库的sqlite表示形式,将工作流程分为客户端/服务器部分,其中客户端用于在文件系统中搜索C/C++文件,提取#include语句,并查询执行所有sqlite查询的服务器。

feaders-rs使用libhif通过libsolv查询来简化搜索。使用rust-bindgen自动生成libhif的FFI定义,并可在其自己的存储库rust-libhif中找到Docker化的生成器。

注意

我已经使用这个项目来实际学习Rust,如果你发现一个愚蠢的错误或只是“糟糕的Rust”,请打开一个问题或发送一个拉取请求。

依赖关系

~4.5MB
~85K SLoC