《HelloGitHub》第 88 期
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目,每月 28 号更新一期。这里有好玩和入门级的开源项目、开源书籍、实战项目、企业级项目,让你用极短的时间感受到开源的魅力,对开源产生兴趣。
小巧的内存管理应用。这是一款 Windows 内存管理工具,可以实时监控计算机内存和清理系统缓存。它体积小(6MB)、内存释放效果明显,兼容 Windows XP 及更高版本。
高效、易用的 Nginx 防火墙。这是一款专业的 Nginx Web 应用防火墙,可用来抵御 SQL 注入、XSS 攻击等。它采用白名单的防御方式,规则配置简单、功能强大,支持拦截和学习模式。学习模式可辅助发现未知攻击,生成、优化白名单规则。
在终端中模拟电影里的数据解密效果。这是一个可以在终端中模拟 1992 年《通天神偷》电影中的数据解密效果的命令行工具。它可以将 ASCII 或 UTF-8 文本,用好莱坞式的解密效果展示。
$ ls -l | nms $ ls -l | nms -a // Set auto-decrypt flag $ ls -l | nms -s // Set flag to mask space characters $ ls -l | nms -f green // Set foreground color to green $ ls -l | nms -c // Clear screen $ nms -v // Display version
最小化的 OpenCV 库。这是一个比官方版本小 10 多倍的 OpenCV 库,它对模块进行了删减,仅保留了最基本的运算模块和常见的图像处理功能,适用于 Android、iOS、Windows、Linux、macOS 等平台。
好看的 GitHub 客户端。这是一款 C# 编写的 GitHub 客户端,采用 Fluent Design 设计,界面清爽且时尚,适用于 Windows 系统。
免费的特殊符号输入法。这是一款 Windows 小工具,可以让你轻松输入特殊符号和 Emoji。它内置了上千种特殊符号和 Emoji,支持自定义组合键快速输入特殊字符。
Windows 命令行增强工具。该项目可以让 Windows 原生的 cmd.exe 拥有类似 bash 一样强大的自动补全、历史记录、行编辑等功能,就像在 Linux 终端上一样。
从 0 到 1 数据库内核实战教程。该项目是 OceanBase 团队基于华中科技大学数据库课程原型,联合多所高校重新开发的、从零上手数据库的学习项目。它结构简单、代码简洁,不仅有文字讲解和视频教程,还有由浅入深的题目。通过理论+实战的方式,帮忙初学者迅速掌握内核模块功能和协同关系,提高工程编码能力,有助于在面试和工作中脱颖而出。
面向后端开发者的 Web UI 组件库。这是一款采用原生态 HTML/CSS/JS 开发模式的免费 Web UI 组件库,它拿来即用无需构建工具,极易上手、UI 简约清爽,深受广大后端开发者们的喜爱。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>开始使用 Layui</title> <link href="./layui/css/layui.css" rel="stylesheet"> </head> <body> <!-- HTML --> <script src="./layui/layui.js"></script> <script> // 使用组件 layui.use(['layer', 'form'], function(){ var layer = layui.layer; var form = layui.form; // 欢迎语 layer.msg('Hello World'); }); </script> </body> </html>
强大的 Go 语言压缩库。该项目包含了多种压缩算法,支持实时压缩算法 zstandard、Snappy 优化版压缩算法 S2 等,还可用来替代 gzip、zip、zlib 等标准库。
飞书文档转化成 Markdown 的工具。这是一个 Go 写的小工具,可以下载飞书文档为 Markdown 文件。它无需安装下载即用,支持命令行、Docker 和在线三种使用方式。
在终端发邮件的工具。这是一款用 Go 写的命令行发邮件的工具,它支持 TUI 和命令行两种使用方式,还以可以通过管道和其它工具结合,实现例如 AI 编写邮件等功能。
pop < message.md \ --from "me@example.com" \ --to "you@example.com" \ --subject "Hello, world!" \ --attach invoice.pdf
一款快速提取网页信息的工具。该项目可以快速爬取网页上的 URL 地址、JS 文件里的 API 接口等信息,支持批量抓取、深入抓取、安全抓取等模式。
强大的语法分析器生成工具。简洁的 ANTLR 语法能够构造一个词法分析器和语法分析器,将一份文件生成 10 余种目标语言代码(Java/C++/Python 等),多用于文本解析、配置文件读取器、遗留代码转换器、JSON 解析器等。
grammar Expr; prog: (expr NEWLINE)* ; expr: expr ('*'|'/') expr | expr ('+'|'-') expr | INT | '(' expr ')' ; NEWLINE : [\r\n]+ ; INT : [0-9]+ ;
用拖拽的方式构建大模型应用。该项目可以让你通过可视化、拖拽组件的方式自定义大模型(LLM)流程,轻松构建 LLM 应用,支持 Docker 一键启动服务。
用玩 RPG 游戏的方式养成好习惯。这是一款养成类 RPG 游戏,当你完成一个现实中的待办事项后,会获得相应的经验和金币。随着你的等级提升,将会开启更多的玩法,比如购买装备、孵化宠物、职业、专属技能、组队打副本等。
JavaScript 写的红白机模拟器。这是一个用 JavaScript 写的红白机(NES) 游戏模拟器,它可直接嵌入网页也可在 Node.js 中作为库使用。
// Initialize and set up outputs var nes = new jsnes.NES({ onFrame: function(frameBuffer) { // ... write frameBuffer to screen }, onAudioSample: function(left, right) { // ... play audio sample } }); // Read ROM data from disk (using Node.js APIs, for the sake of this example) const fs = require('fs'); var romData = fs.readFileSync('path/to/rom.nes', {encoding: 'binary'}); // Load ROM data as a string or byte array nes.loadROM(romData); // Run frames at 60 fps, or as fast as you can. // You are responsible for reliable timing as best you can on your platform. nes.frame(); nes.frame(); // ... // Hook up whatever input device you have to the controller. nes.buttonDown(1, jsnes.Controller.BUTTON_A); nes.frame(); nes.buttonUp(1, jsnes.Controller.BUTTON_A); nes.frame(); // ...
Android 手机上的代码编辑器。这款免费的手机代码编辑器,支持 C、C++、Go、Python、Java 等三十多种编程语言,同时具有语法高亮、自动补全、文件管理、代码风格等功能。
支持 GPU 的数据库处理 Python 库。它相当于支持 GPU 的 pandas,处理数据的速度直接起飞。提供了类似 pandas 的 API,支持加载、合并、聚合、过滤等方式操作数据。
import cudf, requests from io import StringIO url = "https://github.com/plotly/datasets/raw/master/tips.csv" content = requests.get(url).content.decode('utf-8') tips_df = cudf.read_csv(StringIO(content)) tips_df['tip_percentage'] = tips_df['tip'] / tips_df['total_bill'] * 100 # display average tip by dining party size print(tips_df.groupby('size').tip_percentage.mean())
开箱即用的 FastAPI 用户管理。该项目可以快速将用户注册和身份认证功能集成到 FastAPI 项目中,支持注册、登录、密码重置、邮箱验证、OAuth2、自定义身份验证等功能。
为你的 Web 服务轻松集成 Kafka 的 Python 库。基于 Pydantic、AIOKafka 构建的 Python 库,可用于快速开发与 Kafka 交互的异步 Python 程序。
from fastkafka import FastKafka from pydantic import BaseModel, Field from fastkafka._components.logger import get_logger logger = get_logger(__name__) class HelloWorld(BaseModel): msg: str = Field( ..., example="Hello", description="Demo hello world message", ) kafka_brokers = { "demo_broker": { "url": "<url_of_your_kafka_bootstrap_server>", "description": "local demo kafka broker", "port": "<port_of_your_kafka_bootstrap_server>", } } app = FastKafka(kafka_brokers=kafka_brokers) @app.consumes() async def on_hello_world(msg: HelloWorld): logger.info(f"Got msg: {msg}")
强大的 Python 网络分析库。这是一个用来创建、操作和研究复杂网络结构的 Python 库,内置常用的数据结构和图算法,支持生成无向图(Graph)、有向图(DiGraph)、多重无向图(MultiGraph)、多重有向图(MultiDiGraph),可用于图论研究、原型设计、教学等场景。
# 查找无向图中两个节点的最短路径 >>> import networkx as nx >>> G = nx.Graph() >>> G.add_edge("A", "B", weight=4) >>> G.add_edge("B", "D", weight=2) >>> G.add_edge("A", "C", weight=3) >>> G.add_edge("C", "D", weight=4) >>> nx.shortest_path(G, "A", "D", weight="weight") ['A', 'B', 'D']
采用 pygame 开发的 RPG 回合制游戏。这是一款 Python 写的 2D 策略回合制游戏,项目依赖少、代码简单,就算是 Python 新手也能看懂。作者其实并不擅长制作回合制游戏,只是因为喜欢玩这种游戏,所以就有了这个项目。
Rust 写的 ping 工具。该项目能够以折线图的方式,实时展示 ping 的结果,支持 Windows、Linux 和 macOS 操作系统。
macOS 上的 alt-tab 窗口切换工具。这是一款将 Windows 的 alt-tab 切换窗口功能带到了 macOS 的应用,支持一键关闭、全屏、隐藏应用,自定义 AltTab 外观、快捷键等功能。
微软开源的深度学习训练优化库。众所周知训练大模型(LLM)是一件“费时费钱”的事情,该项目通过 ZeRO++ 技术,在训练时将模型状态分割到每个 GPU 上,通过提高吞吐量的方式,降低训练所需的时间和成本。
AI 模型即服务共享平台。魔塔是由阿里达摩院开源的 MaaS 平台,它为开发者提供了模型体验、推理、训练、部署和应用的一站式服务,相当于国内版的 Hugging Face。
决策智能入门级公开课。此课程希望通过深入讲解最经典的深度强化学习算法 Proximal Policy Optimization (PPO),打开你的决策 AI 探索之旅。内含视频、理论资料、习题、代码和应用样例,能够帮助初学者快速掌握,如何运用 PPO 解决各种各样的决策智能问题。
一份讲解视频技术的教程。这是一份循序渐进的视频技术教程,从基本概念讲到视频编码器如何工作,内容通俗易懂、图文并茂。
自建手机照片和视频备份服务。这是一个自行备份 iPhone、Android 手机上照片和视频的开源解决方案,支持自动备份、多用户、共享相册、实时查看照片等功能。
开源的四足机器人宠物框架。这是一个基于 Arduino 和 Raspberry Pi 的四足机器人宠物框架,让你可通过 C/C++/Python 编程语言操控四足机器人。该公司生产的迷你机器猫,神似玩具版的波士顿机械狗。
通往架构师之路。这是一份教你如何成为架构师的学习指南。
《矩阵力量》。该书介绍了向量、矩阵、向量空间、矩阵分解、微积分、空间几何等知识,内含全彩图解和 Python 示例代码。
《搜索引擎技术》。该书的作者是小红书的算法工程师,内容涵盖了搜索引擎基础、机器学习基础、排序、查询词推荐、决定用户体验的要素等方面,所以不要被它朴实无华的书名所迷惑。
- C 项目
- C# 项目
- C++ 项目
- CSS 项目
- Go 项目
- Java 项目
- JavaScript 项目
- Kotlin 项目
- Python 项目
- Rust 项目
- Swift 项目
- 人工智能
- 其它
- 开源书籍