Rust过程宏实现Python-Fire

Python-Fire是一个简单易用的库,它能够将Python函数转变成 CLI 形式,将函数的参数作为命令行参数来读入,举个例子:

1
2
3
4
5
6
# main.py
import fire
def add(fst, snd):
print(fst + snd)
if __name__ == '__main__':
fire.Fire(add)

命令行输入 python3 main.py 1 2,成功输出 3

这对于程序的快速验证时非常有效的,用户也无需反复修改源代码来改变输入参数,只需改变命令行参数即可。

很奇怪,Rust社区并没有相应的实现,在查阅了 crates.io 发现只有一个假lib之后,决定自己撕一个出来。而这个lib的核心,就是本篇文章的主角:过程宏。

Rust并发-线程池与future

Rust官方教程中,并发部分的标题叫做 Fearless Concurrency。并介绍了利用线程池来构建一个微型web服务器。服务器本身只是返回了HTTP报文,没有什么特别的地方。

比较有意思的点在于并发处理上,在查阅了一些资料后,我决定自己动手,用不同的并发方式取构建Web服务器,并通过 abwrk 等压力测试工具来评测各种并发方式的效率。

完整代码可在我的 Github 上查看

简易KV内存数据库的实现

7月中旬的时候看到了一篇知乎上的关于搭建 pastebin 服务的文章 https://zhuanlan.zhihu.com/p/73961522

作者没有利用redis,而是用rust手撕了一个简易的内存存储,遂引起了我的兴趣,在核心数据结构照着该作者来之外,加入了其他的feature。当然也被 rust 编译器按在地上摩擦了很久。

首选先明确我们的数据库需要实现哪些功能。

  1. 保存数据
  2. 根据key读取数据
  3. 淘汰不常使用的数据
  4. 过期删除
  5. 硬盘二级存储
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×