闲着没事做的一些有意思的玩具,主要为了好玩:
emake - 面向中小项目和跨平台开发的 C/C++ 构建工具,使用定义式构建,像 IDE 一样简单,定义源文件,条件编译参数即可使用。
PyStand - Python 独立部署环境,打包成独立可执行,适合 Windows 下的独立命令行/Gui 程序,PyQt 程序等。
KanaQuiz - 命令行下学习日语的平假名和片假名。
rogue-clone - 移植 Debian/Ubuntu 下 bsdgames-nonfree
内的 rogue 游戏到 Windows,并修正了一系列 BUG。
kcp - 快速可靠传输协议,纯算法实现,下层可以对接 UDP 等任意不可靠协议,提供可靠传输,多用于游戏等需要快速响应的场景。
z.lua - 命令行下快速切换路径的工具,一个会学习你实用习惯的新的 cd 命令。
LIBLR - 基于 LR1/LALR 的 Parser Generator,给定文法和处理函数,就能生成一个新的 Parser,通过 C11 文法测试。
googauth - 命令行版本的 Google Authenticator 实现,设置 token 就能生成三十秒生命周期的验证码,可用于 google/github 二次验证。
RenderHelp - 单个 C++ 头文件 RenderHelp.h
实现一个简单的软件渲染器,支持顶点着色器和像素着色器。
mini3d - 只用 700 行 C 代码实现的软件渲染器,采用固定管线。
markpress - 用于创建和更新基于 markdown 的 wordpress 文章的命令行工具,支持图表,数学公式等。
translator - 命令行聚合翻译器,支持多个后端翻译 API。
gobang - 五子棋人机对战,传统 AI(minmax,博弈树与剪枝),支持三个难度。
Intel2GAS - 将 MSVC 风格的内嵌汇编转换成 GCC 风格的内嵌汇编代码。
avlmini - 和 Linux 的 rbtree 性能有的一拼的 avl 实现,以及比 std::unordered_map
快一倍的 avl-hash 容器。
VmBasic - 一款类似 QuickBasic 的编程语言,内置虚拟机,可用于开发简单游戏,被步步高拿去移植成 BBKBasic 给他们电子词典做扩展。
BasicBitmap - 跨平台像素位图库,覆盖 GdiPlus
的多种像素格式,比 DirectDraw
的 FastBlt
快 40% 比 GDI
的 AlphaBlend
快 34%。
pixellib - 高质量 2D 矢量图形库,曲线绘制,抗锯齿。
memslab - slab 内存分配器的应用层实现,包括一个中心内存池和多线程 cache,同时增加了一个叫做 slab-tree 的机制,以减少内存浪费。
pyp2p - Python 版 P2P 实现,内置一个 Python 版的可靠传输协议。
asmpure - 可以在运行时将汇编代码翻译成机器码,支持 x86 指令集,可用于实现 JIT 系统。
context - 协程上下文切换实现,支持 x86/x64,可以在 Windows / Linux 下运行。
lzw - 两种压缩算法 LZW
和 LZO
的实现。
还有一些比较久远的项目,见:我的老项目