6个版本

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

#39 in 机器学习

Download history 316/week @ 2024-07-05 58/week @ 2024-07-12 1/week @ 2024-07-19 160/week @ 2024-07-26 6/week @ 2024-08-02

305 每月下载量

MIT 许可证

115KB
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