#cli-applications #applications #ergonomics #cli #command-line-interface #command-line-utilities

ergo

<alpha> 让 Rust 的生态系统更加人性化,因此更加有趣

5 个版本

使用旧的 Rust 2015

0.1.2 2018年1月26日
0.1.1 2018年1月26日
0.0.5 2018年7月13日
0.0.4 2018年4月21日
0.0.1 2018年2月7日

#6 in #application


用于 novault

MIT/Apache

11KB
92 代码行

Ergo:让 Rust 的生态系统更加人性化,因此更加有趣。

Build Status Build status Docs

Ergo 生态系统 的目标是统一 Rust 生态系统的关键部分。目前,它专注于改进命令行界面(CLI)的人性化。为了实现这一目标,它将创建多个针对特定领域的聚合 crate。这些 crate 不仅简单地导出子 crate 的 API,还实现了包装类型以统一它们,并具有经过测试的文档,以确保它们能够可靠地交互。

@autron 在 rust 2018 路线图 中说得最好

CLI 应用程序

Rust 是编写命令行应用程序(CLI)的绝佳语言。对于黑客的舒适度来说,它拥有史上最好的参数解析器之一,拥有史上最好的序列化库,并且可以编译到几乎任何目标,运行速度快。 (@vitiral)

Rust 也在 CLI 领域看到了一些生产级更新,它非常适合这个领域。这是一个 Rust 的可移植性、可靠性和生成静态二进制文件的能力使其极具吸引力的领域。我们已经有了一些非常优秀的库。今年,我们将改进这个生态系统,并将其整合成一个光鲜、连贯的包,供那些检查 Rust 的人使用。阅读 @vitiral 的帖子以及 @killercup 的 crate,以获得一些灵感!

愿景

Ergo 的当前目标是成为一个功能齐全的 CLI SDK,由可组合且独立的子组件构建。您应该能够单独依赖 ergo 库本身或其子组件中的任何一个。

Ergo 致力于提供以下好处

  • 一个标准化的 API,用于不同的类型/方法,使库作者能够开发高质量的简单库,然后可以将其组合成一个具有统一 API 和优秀人性化特性的生态系统。
  • CLI 和应用程序开发者的文档和 How To 指南的起点。我们希望一旦库更加稳定,就发布一份 Ergo 烹饪书
  • 鼓励 Rust 生态系统主要 CLI crate 之间的互操作性、质量和人性化错误,并作为提高质量和一致性的推动力。

子 crate

Ergo 生态系统分为多个 crate,每个都以 ergo_ 为前缀

本身 ergo crate 目前处于 alpha 状态。主要作者正在使用它重写他的 CLI 应用程序,以消除粗糙的边缘,我们正在寻找在此期间来自社区的反馈、贡献者和领导者。

目前,建议使用quicli,该工具将来将与 ergo 生态系统无缝集成。如果您确实使用此软件包,请期待频繁的变更,这些变更可能不符合 semver 规范。

已实现的子软件包

  • ergo_fs:便捷的文件系统操作。(beta 版本
  • ergo_sync:提供使用 Sync 类型(即运行线程和发送消息)的极简 API。(beta 版本
  • ergo_std:“通常需要的工具”—— regexlazy_staticmaplititertoolsordermap。这将是一个非常少的软件包。它主要由可以实际包含在标准库中的东西组成。(beta 版本
  • ergo_config:反序列化和配置文件以及环境变量:rontomlserde_jsonserde_yamlconfigure。(alpha 版本
  • ergo_sys:处理与操作系统的接口。当前示例仅包括信号处理(ctrlc)和随机数(rand),但我们正在寻找其他重要的软件包。(alpha 版本

未来的子软件包

  • ergo_client:成为 HTTP 客户端的接口和方法。子软件包可能包括 reqwesth2 以及一些 json-rpc+soap 协议助手。
  • ergo_term:简单且便捷的终端渲染。
  • ergo_test:提供核心测试功能、模拟等一站式服务。

许可协议

本存储库中的源代码根据以下任一协议授权:

供您选择。

除非您明确声明,否则您有意提交给作品并包含在内的任何贡献,根据 Apache-2.0 许可协议的定义,均应按照上述方式双重许可,不附加任何额外条款或条件。

依赖关系

~12–22MB
~344K SLoC