【Rust日报】2022-09-25 PingCAP Rust 重新实现的 Tidis 现在已开源

2022-11-28 15:17:03 浏览数 (1)

AST explorer

希望对任何创建 proc 宏的人有用。

Rust 通过提供同步(解析和格式化)和 WASM(用于交互性)使这个项目变得简单。

https://github.com/CarlKCarlK/rust-ast-explorer

另一个命令行参数解析器:bpaf 0.6.0

Bpaf 是一个轻量级的命令行解析器,其 API 支持组合和派生方法,并返回严格类型化的结果。编译时间快,没有外部依赖项,除非您选择加入派生功能。

  • 帮助生成、使用线生成
  • 非常小的 API - 您只需要知道大约 10 个 API 名称,总 API 大小约为 25-30 个左右的名称
  • 任意嵌套的命令,包括链接和重复它们
  • 完整的非 utf8 参数支持
  • 动态外壳完成
  • 遵循“解析,不验证”的解析方法
  • 没有不安全的代码
  • 快乐的用户和开发人员:)

在来自/u/epage的一些很好的反馈之后的最后一个公告中,我删除了一些OsString特定的函数(现在可以通过一个 trait 获得)并添加了一些约束函数——因此你现在可以解析几乎任何你想要的东西。

由于关于 CLI 解析器的传统问题是“为什么使用 that vs clap”:

  • 就解析而言,支持的功能集应该大致相同,但您也可以组合可用的原语来解析更多不寻常的东西:https ://docs.rs/bpaf/0.6.0/bpaf/_unusual/index.html
  • API 体积缩小 5-7 倍,轻松找到所需内容,轻松掌握
  • 编译速度提高 5-7 倍 - 非常适合 CI 和开发
  • 二进制文件的开销减少 5-7 倍 - 非常适合运输
  • 动态 shell 完成 - 非常适合用户友好

/u/epage https://github.com/rosetta-rs/argparse-rosetta-rs/blob/main/docs/tradeoffs.md做了一个很好的概述

但简而言之,与其给你一堆预制的方法来处理某事,不如给你bpaf一堆原语,你可以将它们链接成一个迭代器。

从 0.5.x 迁移指南在这里:https ://github.com/pacak/bpaf/blob/master/Changelog.md

PingCAP Rust 重新实现的 Tidis 现在已开源

Tidis是 TiKV 的服务层,旨在提供基于 PingCAP 的 Redis 协议兼容的分布式存储服务。它实现了多种数据类型(string/hash/list/set/sortedset),已被社区广泛使用。

之前是 go 语言实现的 1.0 版,现在已经完全用 Rust 重新设计和重写,以便获得更好的性能和更低的延迟。以及更重要的功能,例如 Lua 脚本、TLS 连接、锁优化等。

https://github.com/tidb-incubator/tidis/blob/master/docs/tidis-introduction.md

From 日报小组 时光

0 人点赞