6个版本
0.0.6 | 2024年7月27日 |
---|---|
0.0.5 | 2024年7月11日 |
#39 in 机器学习
305 每月下载量
115KB
2K SLoC
ruskel
Ruskel生成Rust包的骨架化概要。它渲染出一个包的公共API的单页表示,省略了所有实现,但仍生成语法正确的Rust代码。
Ruskel有两个主要用途
- 从命令行快速访问Rust文档。
- 将包的完整公共API导出为单个文件,以传递给LLM和其他工具。
功能
- 生成任何Rust包的骨架化视图
- 支持本地包和crates.io上的远程包
- 终端输出语法高亮显示
- 可选包含私有项和自动实现特质
- 支持自定义功能标志和版本指定
ruskel命令行工具
ruskel
是Ruskel功能的命令行接口,易于使用。
cargo install ruskel
由于Ruskel在cargo doc
中使用夜间仅有的功能,因此您需要安装夜间工具链才能运行它,但不需要安装它。
使用方法
基本使用
ruskel [TARGET]
其中 TARGET
可以是目录、文件路径或模块名称。如果省略,则默认为当前目录。
示例选项
--all-features
:启用所有功能--auto-impls
:渲染自动实现特质--features <FEATURES>
:指定要启用的功能(逗号分隔)--highlight
:强制启用语法高亮显示--no-default-features
:禁用默认功能--no-highlight
:禁用语法高亮显示--no-page
:禁用分页--offline
:不要从crates.io获取--private
:渲染私有项
有关详细信息,请参阅
ruskel --help
Ruskel具有灵活的目标规范,旨在在各种情况下都能正确地执行。
# Current project
ruskel
# If we're in a workspace and we have a crate mypacakage
ruskel mypackage
# A dependency of the current project, else we fetch from crates.io
ruskel serde
# A sub-path within a crate
ruskel serde::de::Deserialize
# Path to a crate
ruskel /my/path
# A module within that crate
ruskel /my/path::foo
# A crate from crates.io with a specific version
ruskel [email protected]
libruskel库
libruskel
是一个库,可以被集成到其他 Rust 项目中,以提供 Ruskel 功能。
以下是在 Rust 代码中使用 libruskel
的基本示例
use libruskel::Ruskel;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let rs = Ruskel::new("/path/to/target")?;
let rendered = rs.render(false, false)?;
println!("{}", rendered);
Ok(())
}
依赖关系
~88MB
~2M SLoC