6 个版本
0.0.6 | 2024年7月27日 |
---|---|
0.0.5 | 2024年7月11日 |
4 在 #outline
536 每月下载量
用于 ruskel
88KB
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