6 个版本

0.0.6 2024年7月27日
0.0.5 2024年7月11日

4#outline

Download history 356/week @ 2024-07-06 31/week @ 2024-07-13 1/week @ 2024-07-20 148/week @ 2024-07-27

536 每月下载量
用于 ruskel

MIT 许可证

88KB
2K SLoC

ruskel

Crates.io Documentation License: MIT

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