5 个版本
使用旧的 Rust 2015
0.1.2 |
|
---|---|
0.1.1 |
|
0.0.5 | 2018年7月13日 |
0.0.4 | 2018年4月21日 |
0.0.1 | 2018年2月7日 |
#6 in #application
用于 novault
11KB
92 代码行
Ergo:让 Rust 的生态系统更加人性化,因此更加有趣。
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:“通常需要的工具”——
regex
,lazy_static
,maplit
,itertools
,ordermap
。这将是一个非常少的软件包。它主要由可以实际包含在标准库中的东西组成。(beta 版本) - ergo_config:反序列化和配置文件以及环境变量:
ron
,toml
,serde_json
,serde_yaml
,configure
。(alpha 版本) - ergo_sys:处理与操作系统的接口。当前示例仅包括信号处理(
ctrlc
)和随机数(rand
),但我们正在寻找其他重要的软件包。(alpha 版本)
未来的子软件包
- ergo_client:成为 HTTP 客户端的接口和方法。子软件包可能包括
reqwest
,h2
以及一些 json-rpc+soap 协议助手。 - ergo_term:简单且便捷的终端渲染。
- ergo_test:提供核心测试功能、模拟等一站式服务。
许可协议
本存储库中的源代码根据以下任一协议授权:
- Apache 许可协议第 2 版(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可协议(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
供您选择。
除非您明确声明,否则您有意提交给作品并包含在内的任何贡献,根据 Apache-2.0 许可协议的定义,均应按照上述方式双重许可,不附加任何额外条款或条件。
依赖关系
~12–22MB
~344K SLoC