26 个版本
0.2.6 | 2024 年 5 月 15 日 |
---|---|
0.2.4 | 2024 年 3 月 29 日 |
0.2.0 | 2023 年 11 月 7 日 |
0.1.8 | 2023 年 5 月 7 日 |
0.1.3 | 2023 年 3 月 8 日 |
#129 in 开发工具
1,795 每月下载量
125KB
1.5K SLoC
LibMake
一个旨在减少重复性任务并构建高质量 Rust 库的代码生成器。
是 Mini Functions 库系列的一部分。
• 网站 • 文档 • 报告错误 • 请求功能 • 贡献指南
概述
LibMake
是一个工具,旨在通过生成一系列预填充和预定义的模板文件来快速帮助创建高质量的 Rust 库。这个有偏见的样板搭建工具旨在大幅减少开发时间,最小化重复性任务,让您在强制执行标准、最佳实践、一致性和为您的库提供样式指南的同时,专注于业务逻辑。
使用 LibMake
,您可以在几秒钟内轻松生成一个新的 Rust 库代码库结构,其中包括所有必要的文件、布局、构建配置、代码、测试、基准测试、文档等。
该库设计为命令行工具。它可在 Crates.io 和 Lib.rs 上找到。
目录
功能
LibMake
提供以下功能和优势
- 简单性:通过CLI或CSV、JSON、TOML或YAML配置文件轻松创建Rust库。
- 速度:立即使用标准结构和基本模板生成新库。
- 自动化:生成预定义的GitHub Actions工作流程,以便进行流畅的开发和测试。
- 基础:使用自动生成的函数、方法和宏启动您的项目。
- 标准:从开始就采用最佳实践,包括入门文档、测试和基准。
入门指南
以下说明将帮助您在本地机器上获得项目的副本,并用于开发和测试。
先决条件
您需要在系统上安装Rust和Cargo。如果您还没有安装,可以从官方Rust网站安装。
使用 LibMake
启动仅需几秒钟。
安装
一旦您安装了Rust工具链,可以使用以下命令安装 LibMake
cargo install libmake
然后,您可以运行帮助命令以查看可用选项
libmake --help
要求
目前最低支持的Rust工具链版本是Rust 1.60
或更高版本(稳定版)。
LibMake
在以下平台上受支持并已进行测试
一级平台
Rust Tier 1 目标得到官方支持并保证能正常工作。
操作系统 | 目标 | 描述 | |
---|---|---|---|
✅ | Linux | aarch64-unknown-linux-gnu | 基于ARM架构的64位Linux系统 |
✅ | Linux | i686-unknown-linux-gnu | 32位Linux(内核3.2+,glibc 2.17+) |
✅ | Linux | x86_64-unknown-linux-gnu | 64位Linux(内核2.6.32+,glibc 2.11+) |
✅ | macOS | x86_64-apple-darwin | 64位macOS(10.7 Lion或更高版本) |
✅ | Windows | i686-pc-windows-gnu | 32位Windows(7或更高版本) |
✅ | Windows | i686-pc-windows-msvc | 32位Windows(7或更高版本) |
✅ | Windows | x86_64-pc-windows-gnu | 64位Windows(7或更高版本) |
✅ | Windows | x86_64-pc-windows-msvc | 64位Windows(7或更高版本) |
二级平台
Rust Tier 2 目标受构建支持,但可能不支持运行。
操作系统 | 目标 | 描述 | |
---|---|---|---|
✅ | Linux | aarch64-unknown-linux-musl | 基于ARM架构的64位Linux系统 |
✅ | Linux | arm-unknown-linux-gnueabi | ARMv6 Linux(内核3.2,glibc 2.17) |
✅ | Linux | arm-unknown-linux-gnueabihf | ARMv7 Linux,硬浮点(内核3.2,glibc 2.17) |
✅ | Linux | armv7-unknown-linux-gnueabihf | ARMv7 Linux,硬浮点(内核3.2,glibc 2.17) |
✅ | macOS | aarch64-apple-darwin | 64位macOS(10.7 Lion或更高版本) |
✅ | Windows | aarch64-pc-windows-msvc | 64位Windows(7或更高版本) |
GitHub Actions 显示了 LibMake
库测试运行的平台。
如果您在上述任何平台上遇到库的问题,请 报告错误。我们将尽力尽快解决此问题。如果您想帮助我们支持更多平台,请提交拉取请求。
文档
信息:请访问我们的 网站 获取更多信息。您可以在 docs.rs、lib.rs 和 crates.io 上找到我们的文档。
使用方法
命令行界面
LibMake
提供命令行界面以生成新的库项目。有一些选项可以帮助您开始。
传递配置文件
使用 CSV 文件生成新库
以下命令从CSV文件生成库模板。
请查看tests/data/mylibrary.csv
文件以获取示例,并请随意将其用作您自己的库模板。
libmake file --csv tests/data/mylibrary.csv
或者如果您已经克隆了仓库,则本地也有。
cargo run -- file --csv tests/data/mylibrary.csv
使用INI文件生成新的库
以下命令从一个INI文件生成库模板。
请查看tests/data/mylibrary.ini
文件以获取示例,并请随意将其用作您自己的库模板。
libmake file --ini tests/data/mylibrary.ini
或者如果您已经克隆了仓库,则本地也有。
cargo run -- file --ini tests/data/mylibrary.ini
使用JSON文件生成新的库
以下命令从一个JSON文件生成库模板。
请查看tests/data/mylibrary.json
文件以获取示例,并请随意将其用作您自己的库模板。
libmake file --json tests/data/mylibrary.json
或者如果您已经克隆了仓库,则本地也有。
cargo run -- file --json tests/data/mylibrary.json
使用TOML文件生成新的库
以下命令从一个TOML文件生成库模板。
请查看tests/data/mylibrary.toml
文件以获取示例,并请随意将其用作您自己的库模板。
libmake file --toml tests/data/mylibrary.toml
或者如果您已经克隆了仓库,则本地也有。
cargo run -- file --toml tests/data/mylibrary.toml
使用YAML文件生成新的库
以下命令从一个YAML文件生成库模板。
请查看tests/data/mylibrary.yaml
文件以获取示例,并请随意将其用作您自己的库模板。
libmake file --yaml tests/data/mylibrary.yaml
或者如果您已经克隆了仓库,则本地也有。
cargo run -- file --yaml tests/data/mylibrary.yaml
直接使用命令行界面(CLI)生成新的库
以下命令使用命令行界面生成库模板。
libmake manual\
--author "John Smith" \
--build "build.rs" \
--categories "['category 1', 'category 2', 'category 3']" \
--description "A Rust library for doing cool things" \
--documentation "https://docs.rs/my_library" \
--edition "2021" \
--email "[email protected]" \
--homepage "https://my_library.rs" \
--keywords "['rust', 'library', 'cool']" \
--license "MIT" \
--name "my_library" \
--output "my_library" \
--readme "README.md" \
--repository "https://github.com/example/my_library" \
--rustversion "1.60" \
--version "0.1.0" \
--website "https://example.com/john-smith"
或者如果您已经克隆了仓库,则本地也有。
cargo run -- manual --author "John Smith" \
--build "build.rs" \
--categories "['category 1', 'category 2', 'category 3']" \
--description "A Rust library for doing cool things" \
--documentation "https://docs.rs/my_library" \
--edition "2021" \
--email "[email protected]" \
--homepage "https://my_library.rs" \
--keywords "['rust', 'library', 'cool']" \
--license "MIT" \
--name "my_library" \
--output "my_library" \
--readme "README.md" \
--repository "https://github.com/example/my_library" \
--rustversion "1.60" \
--version "0.1.0" \
--website "https://example.com/john-smith"
示例
要开始使用LibMake
,您可以查看项目examples
目录中提供的示例。
要运行示例,请克隆仓库,然后在项目根目录下从您的终端运行以下命令。
示例 | 描述 | 命令 |
---|---|---|
generate_from_args |
使用命令行界面生成库模板。 | cargorun --examplegenerate_from_args |
generate_from_config |
从配置文件生成库模板。 | cargorun --examplegenerate_from_config |
generate_from_csv |
从CSV文件生成库模板。 | cargorun --examplegenerate_from_csv |
generate_from_ini |
从INI文件生成库模板。 | cargorun --examplegenerate_from_ini |
generate_from_json |
从JSON文件生成库模板。 | cargorun --examplegenerate_from_json |
generate_from_toml |
从TOML文件生成库模板。 | cargorun --examplegenerate_from_toml |
generate_from_yaml |
从YAML文件生成库模板。 | cargorun --examplegenerate_from_yaml |
语义版本控制策略
为了透明化我们的发布周期并努力保持向后兼容性,libmake
遵循语义版本控制。
许可证
本项目根据MIT许可证和Apache许可证(版本2.0)的条款进行许可。
贡献
我们欢迎所有想要贡献的人。请参阅贡献指南以获取更多信息。
对本项目的任何形式(问题、拉取请求等)的贡献必须遵守Rust的行为准则。
除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可证的定义,应如上所述双重许可,不附加任何额外条款或条件。
致谢
非常感谢libmake的所有杰出贡献者,他们的帮助和支持。特别感谢Rust Reddit社区,他们为如何改进此项目提供了许多有用的建议。
依赖项
~16–49MB
~798K SLoC