# rust-practice **Repository Path**: chjgfg/rust-practice ## Basic Information - **Project Name**: rust-practice - **Description**: 一些练习rust的小项目 - **Primary Language**: Rust - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-10 - **Last Updated**: 2026-07-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: Rust, bitcask, KV, MVCC, Email ## README # 🦀 Rust Practice 一个 Rust 学习与实践的 monorepo,包含多个独立的小项目,涵盖算法、数据结构、数据库内核、网络编程、并发等多个领域。 ## 项目总览 ### 📚 算法与数据结构 | 项目 | 说明 | |------|------| | [`algorithms/`](./algorithms) | **100 道经典算法题**(LeetCode 风格),涵盖数组、链表、二叉树、图论、动态规划、回溯等,每题配有单元测试 | | [`bplus-tree/`](./bplus-tree) | **B+ 树**数据结构实现 | | [`skiplist/`](./skiplist) | **跳表**(Skip List)数据结构实现 | | [`vector-test/`](./vector-test) | **向量检索**实验,包含 HNSW 和 IVF 两种近似最近邻搜索算法 | ### 🗄️ 存储引擎与数据库 | 项目 | 说明 | |------|------| | [`bitcask/`](./bitcask) | **BitCask 存储引擎**实现,基于追加写入的日志结构存储模型 | | [`lsm-tree/`](./lsm-tree) | **LSM-Tree 存储引擎**实现,基于内存表(MemTable)和有序磁盘文件(SSTable)的写优化存储 | | [`bplus-tree/`](./bplus-tree) | **B+ 树**存储引擎实现,支持持久化 | | [`memory/`](./memory) | **内存存储引擎**实现,基于内存的键值存储 | | [`mvcc/`](./mvcc) | **多版本并发控制**(MVCC)实现 | | [`kv/`](./kv) | **键值存储**相关实现 | | [`sql-parser/`](./sql-parser) | **独立 SQL 执行引擎**,包含 SQL 解析器、查询规划器、优化器和执行器,支持 `memory` / `bitcask` 存储引擎切换 | | [`sqlx-test/`](./sqlx-test) | **SQLx 数据库操作**示例,演示 PostgreSQL 的 CRUD 操作 | ### 🌐 分布式系统 | 项目 | 说明 | |------|------| | [`raft/`](./raft) | **Raft 共识算法**实现,包含 Leader 选举、日志复制等核心机制 | | [`block-chain/`](./block-chain) | **区块链**基础实现 | ### 🌍 网络与 Web | 项目 | 说明 | |------|------| | [`proxy/`](./proxy) | **HTTP 反向代理**,基于 Cloudflare Pingora 框架实现 | | [`port-scan/`](./port-scan) | **端口扫描器**,支持命令行参数配置的 TCP 端口扫描工具 | | [`websocket-test/`](./websocket-test) | **WebSocket** 通信测试 | | [`email-test/`](./email-test) | **邮件发送**功能测试 | ### ⚡ 并发与异步 | 项目 | 说明 | |------|------| | [`thread/`](./thread) | **多线程编程**实践,包含多线程文件词频统计等示例 | | [`atomics-locks/`](./atomics-locks) | **原子操作与锁**的学习实践 | | [`pressure/`](./pressure) | **并发压力测试**,基于 Tokio 的异步任务分发与性能测试 | | [`times/`](./times) | **定时任务与异步调度**,演示 Tokio 定时器、watch 信号等 | | [`event-test/`](./event-test) | **事件驱动**编程测试 | ### 🛠️ 语言特性与工具 | 项目 | 说明 | |------|------| | [`expr-eval/`](./expr-eval) | **表达式求值器**,支持变量绑定和运算符优先级的数学表达式解析与计算 | | [`recursiv-descent/`](./recursiv-descent) | **递归下降解析器**,手动实现语法分析(AST 构建) | | [`calculation/`](./calculation) | **计算器**实现 | | [`macro-test/`](./macro-test) | **Rust 宏**编程实践,包含过程宏和声明宏示例 | | [`command/`](./command) | **命令行工具**开发实践 | | [`logs/`](./logs) | **日志系统**实践 | | [`expiry/`](./expiry) | **缓存过期策略**实现 | | [`git-test/`](./git-test) | **Git 操作**测试 | | [`music-test/`](./music-test) | **音乐播放**相关测试 | ### 📖 学习资料 | 项目 | 说明 | |------|------| | [`teach_rust/`](./teach_rust) | **Rust 教程**代码示例 | | [`game/`](./game) | **小游戏**实践项目 | ## 快速开始 ```bash # 克隆项目 git clone https://gitee.com/chjgfg/rust-practice.git cd rust-practice # 运行某个子项目(以算法题为例) cd algorithms cargo test # 运行 SQL 引擎 cd sql-parser cargo run # 运行端口扫描器 cd port-scan cargo run --example port-scan -- <起始端口> <结束端口> ``` ## 项目结构 ``` rust-practice/ ├── algorithms/ # 100 道算法题 ├── atomics-locks/ # 原子操作与锁 ├── bitcask/ # BitCask 存储引擎 ├── block-chain/ # 区块链 ├── bplus-tree/ # B+ 树存储引擎 ├── calculation/ # 计算器 ├── command/ # 命令行工具 ├── email-test/ # 邮件发送测试 ├── event-test/ # 事件驱动测试 ├── expiry/ # 缓存过期策略 ├── expr-eval/ # 表达式求值器 ├── game/ # 小游戏 ├── git-test/ # Git 操作测试 ├── kv/ # 键值存储 ├── logs/ # 日志系统 ├── lsm-tree/ # LSM-Tree 存储引擎 ├── macro-test/ # 宏编程实践 ├── memory/ # 内存存储引擎 ├── music-test/ # 音乐播放测试 ├── mvcc/ # 多版本并发控制 ├── port-scan/ # 端口扫描器 ├── pressure/ # 并发压力测试 ├── proxy/ # HTTP 反向代理 ├── raft/ # Raft 共识算法 ├── recursiv-descent/ # 递归下降解析器 ├── skiplist/ # 跳表 ├── sql-parser/ # SQL 执行引擎 ├── sqlx-test/ # SQLx 数据库操作 ├── teach_rust/ # Rust 教程示例 ├── thread/ # 多线程编程 ├── times/ # 定时任务 ├── vector-test/ # 向量检索 (HNSW/IVF) └── websocket-test/ # WebSocket 测试 ``` ## 技术栈 - **异步运行时**: Tokio - **数据库**: SQLx, PostgreSQL - **网络**: Pingora (HTTP 代理), WebSocket - **存储**: 自研 BitCask / LSM-Tree / B+ Tree 引擎 - **算法**: 自研 SQL 解析与执行、Raft 共识、HNSW/IVF 向量检索 ## License MIT