Skip to content

tyrchen/system-texture-lite-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

System Texture Lite -- 代码实现

《系统质感》配套代码仓库:用 Rust 从零实现 47 个后端核心组件。

本项目是 《System Texture Lite》 一书的配套代码,涵盖从请求入口到可观测性的完整后端技术栈。每个模块都是可编译、可测试的真实实现,而非伪代码。

项目结构

crates/
├── ch01-request-entry/    # 请求入口
├── ch02-distributed/      # 分布式协调
├── ch03-modeling/         # 业务建模
├── ch04-data-engine/      # 数据引擎
├── ch05-data-pipeline/    # 数据管道
└── ch06-observability/    # 可观测性

模块概览

第 1 章:请求入口 (ch01-request-entry)

模块 说明
reactor 基于 epoll 的事件驱动 reactor(仅 Linux)
work_stealing Chase-Lev 无锁工作窃取队列
two_tier_pool Pingora 风格的冷热分离连接池
radix_router 压缩 Radix Tree URL 路由器
smooth_wrr 平滑加权轮询负载均衡
p2c Power of Two Choices + Peak EWMA 负载均衡
rate_limiter Token Bucket / GCRA / Count-Min Sketch 限流器
tinyufo TinyUFO 缓存(Small/Main 双队列 + 频率准入)
singleflight 请求合并去重
middleware Tower 风格的 Service/Layer 中间件框架

第 2 章:分布式协调 (ch02-distributed)

模块 说明
consistent_hash Ketama 一致性哈希环 + 虚拟节点
raft Raft 共识(选举、日志复制、Pre-Vote)
swim SWIM Gossip 故障检测协议
crdt CRDT(G-Counter / LWW-Register / OR-Set)
snowflake Snowflake 分布式 ID + UUID v7 生成器
circuit_breaker 三态熔断器(滑动窗口 + 原子状态转换)
backoff 指数退避 + 抖动策略 + 重试预算

第 3 章:业务建模 (ch03-modeling)

模块 说明
type_state Type-State 模式(编译期状态机)
actor Actor 模型(类型化邮箱 + 监督重启)
saga Saga 编排器(前向执行 + 反向补偿)
statechart 状态图(层次状态、并行区域、守卫条件)
event_sourcing 事件溯源(追加日志 + 快照 + 投影)

第 4 章:数据引擎 (ch04-data-engine)

模块 说明
bplus_tree B+ 树(有序索引 + 范围查询)
lsm LSM-Tree(MemTable + SSTable + 分层合并)
wal Write-Ahead Log(CRC 校验 + 崩溃恢复)
skiplist 无锁并发跳表
mvcc 多版本并发控制(快照隔离 + GC)
bloom_filter 布隆过滤器(概率成员检测)
lru LRU 缓存(O(1) 淘汰 + 分片并发)
dashmap 分片并发 HashMap
arena Arena 分配器(批量分配、批量释放)

第 5 章:数据管道 (ch05-data-pipeline)

模块 说明
kafka_log 分段追加日志(稀疏索引 + CRC 校验)
watermark 事件时间水印 + 翻转窗口引擎
incremental_compute 差分数据流增量计算
columnar 列式存储(字典编码 + 位图过滤)
vectorized_exec Morsel 驱动的向量化执行引擎
count_min_sketch Count-Min Sketch 概率频率估计
hyperloglog HyperLogLog 基数估计(稀疏/稠密双模式)
topk_space_saving Space-Saving Top-K 热点检测

第 6 章:可观测性 (ch06-observability)

模块 说明
span_tree W3C Trace Context Span 树
exp_histogram OpenTelemetry 指数直方图
tdigest T-Digest 流式分位数估计
sliding_window 无锁滑动窗口指标聚合
flame_graph 火焰图生成(折叠栈 + SVG 渲染 + Diff)
ewma 指数加权移动平均(含方差追踪 + 原子变体)
adaptive_timeout RFC 6298 自适应超时(Karn 算法)

快速开始

# 克隆仓库
git clone https://github.com/tyrchen/system-texture-lite-code.git
cd system-texture-lite-code

# 构建所有 crate
cargo build

# 运行全部测试
cargo test

# 代码检查
cargo clippy -- -D warnings

技术要求

  • Rust: Edition 2024 (rustc 1.85+)
  • 平台: macOS / Linux(reactor 模块仅限 Linux)

许可证

MIT

About

Companion code for System Texture Lite - 46 production-grade Rust implementations of core system design patterns

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages