avatar
阿愁
小舟从此逝,江海寄余生

contact me

Email: 2586447362@qq.com

Github: https://github.com/night-cruise

projects

async rust:一本电子书,旨在介绍 Rust 中 async/await 语法和异步运行时的原理和工作机制:

  • 详解 Rust 中的异步工作原理,从 async/await => generator => state machine => Pin;
  • 介绍了几种主要的 IO 模型,包括阻塞 IO、非阻塞 IO、IO 多路复用和异步 IO。并基于 Epoll 实现一个简单的 Epoll server;
  • 实现一个单线程版的异步运行时,支持异步的网络 IO 读写。

CS431:KAIST-CP CS431 并发编程的课后实验,一共6个LAB:

  • 实现一个带有缓存的并发的 web server;
  • 使用 unsafe Rust 实现一个双链表;
  • 实现一个简单版本的原子引用计数 Arc(不支持Weak);
  • 基于有序单链表,使用细粒度的 lock-coupling 实现一个并发集合;
  • 基于递归的 split-ordered list 实现一个 lock-free 哈希表;
  • 实现风险指针。(还没做)

6.824: MIT 6.824 分布式系统的课后实验,一共4个LAB:

  • 构建一个 MapReduce System;
  • 实现 Raft 一致性协议,支持 Leader 选举、日志复制、持久化和快照;
  • 基于 LAB 2 实现的 Raft,构建一个容错的分布式 key/value 存储服务;
  • 基于 LAB 2 实现的 Raft,构建一个分片的分布式 key/value 存储系统,支持分片迁移、垃圾状态回收、配置更改期间处理客户端请求。

tools

playrs:一个命令行工具,调用 rust playground 的接口,用于编译运行 rust 源代码。

rptree:一个命令行工具,用于生成目录树。