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