#yaml #generator #config-file #scaffolding #generate-json #code-generation #json-file

bin+lib libmake

LibMake 是一个代码生成器,旨在通过提供创建项目、生成代码和管理依赖项的简单界面来减少重复性任务,构建高质量的 Rust 库和应用程序。

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 开发工具

Download history 154/week @ 2024-05-10 38/week @ 2024-05-17 9/week @ 2024-05-24 1/week @ 2024-05-31 1/week @ 2024-06-07

1,795 每月下载量

MIT/Apache 许可

125KB
1.5K SLoC

LibMake logo

LibMake

一个旨在减少重复性任务并构建高质量 Rust 库的代码生成器。

Mini Functions 库系列的一部分。

Banner of Libmake

Made With Rust Crates.io Lib.rs Docs.rs License Codecov

网站文档报告错误请求功能贡献指南

divider

概述

LibMake 是一个工具,旨在通过生成一系列预填充和预定义的模板文件来快速帮助创建高质量的 Rust 库。这个有偏见的样板搭建工具旨在大幅减少开发时间,最小化重复性任务,让您在强制执行标准、最佳实践、一致性和为您的库提供样式指南的同时,专注于业务逻辑。

使用 LibMake,您可以在几秒钟内轻松生成一个新的 Rust 库代码库结构,其中包括所有必要的文件、布局、构建配置、代码、测试、基准测试、文档等。

该库设计为命令行工具。它可在 Crates.ioLib.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.rslib.rscrates.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