前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Libra 中使用的 rust crates

Libra 中使用的 rust crates

作者头像
tyrchen
发布2019-06-20 16:44:22
8920
发布2019-06-20 16:44:22
举报
文章被收录于专栏:程序人生

昨天朋友圈被 Facebook 的 Libra 刷屏。网上有很多关于 Libra 的快文章,从上帝视角到技术细节,从经济模型到语言实现,可谓是各领风骚,我就不凑短期的热闹。因为最近在学 Rust,就在本地 build libra 的漫长时间里,整理了 Libra 的依赖 —— 我想一个语言的初学者都会有类似的问题,一个大公司(成熟团队)所做的项目,究竟会用到哪些生态中成熟的类库?毕竟,awesome-xxx 过于大而全,反而不便甄选。我之前也整理过 tikv 的依赖,发现一些关键库的使用,大家英雄所见略同。libra 因为涉及到 cryptocurrency,相关的加密算法也额外多些。具体细节大家移步(可以点击原文链接):https://github.com/tyrchen/unchained/blob/master/code/libra.md。因为我直接从编译时下载的 log (Downloaded xxx) 来抓的依赖,所以里面有依赖的依赖。

有同学可能好奇是怎么做的,其实很简单:我把抓下来的一行行文字,类似:

代码语言:javascript
复制
Downloaded arc-swap v0.3.11

放在 vscode 里用 regex find/replace 成:

代码语言:javascript
复制
## [arc-swap (v0.3.11)](https://crates.io/crates/arc-swap)

具体的 regex 长这样:

代码语言:javascript
复制
Downloaded\s+([\w_-]+)\s+(v[^$]+)$

vscode 里的截图:

然后用 sort lines 给它们排个序,去重,然后 option + click 每个链接,读 crates.io 的文档,复制其描述,然后放上例子 —— 这是个苦力活,主要是一个个做阅读理解的时间比较长。

libra 里面用了 pingcap 出品的 grpc-rs 和 rust-rocksdb。其中 rust-rocksdb 并没有放在 crates.io 里,猜想原因之一是 crates.io 里已经有同名 library。pingcap 威武!tikv 威武!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序人生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档