《HelloGitHub》第 88 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!
简介
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。
这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!
以下为本期内容|每个月 28 号更新
C 项目
1、memreduct:小巧的内存管理应用。这是一款 Windows 内存管理工具,可以实时监控计算机内存和清理系统缓存。它体积小(6MB)、内存释放效果明显,兼容 Windows XP 及更高版本。
2、naxsi:高效、易用的 Nginx 防火墙。这是一款专业的 Nginx Web 应用防火墙,可用来抵御 SQL 注入、XSS 攻击等。它采用白名单的防御方式,规则配置简单、功能强大,支持拦截和学习模式。学习模式可辅助发现未知攻击,生成、优化白名单规则。
3、no-more-secrets:在终端中模拟电影里的数据解密效果。这是一个可以在终端中模拟 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
4、opencv-mobile:最小化的 OpenCV 库。这是一个比官方版本小 10 多倍的 OpenCV 库,它对模块进行了删减,仅保留了最基本的运算模块和常见的图像处理功能,适用于 Android、iOS、Windows、Linux、macOS 等平台。
C# 项目
5、FluentHub:好看的 GitHub 客户端。这是一款 C# 编写的 GitHub 客户端,采用 Fluent Design 设计,界面清爽且时尚,适用于 Windows 系统。
6、wincompose:免费的特殊符号输入法。这是一款 Windows 小工具,可以让你轻松输入特殊符号和 Emoji。它内置了上千种特殊符号和 Emoji,支持自定义组合键快速输入特殊字符。
C++ 项目
7、clink:Windows 命令行增强工具。该项目可以让 Windows 原生的 cmd.exe 拥有类似 bash 一样强大的自动补全、历史记录、行编辑等功能,就像在 Linux 终端上一样。来自 @孤胆枪手 的分享
8、miniob:从 0 到 1 数据库内核实战教程。该项目是 OceanBase 团队基于华中科技大学数据库课程原型,联合多所高校重新开发的、从零上手数据库的学习项目。它结构简单、代码简洁,不仅有文字讲解和视频教程,还有由浅入深的题目。通过理论+实战的方式,帮忙初学者迅速掌握内核模块功能和协同关系,提高工程编码能力,有助于在面试和工作中脱颖而出。来自 @wangyunlai 的分享
CSS 项目
9、layui:面向后端开发者的 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 项目
10、compress:强大的 Go 语言压缩库。该项目包含了多种压缩算法,支持实时压缩算法 zstandard、Snappy 优化版压缩算法 S2 等,还可用来替代 gzip、zip、zlib 等标准库。
11、feishu2md:飞书文档转化成 Markdown 的工具。这是一个 Go 写的小工具,可以下载飞书文档为 Markdown 文件。它无需安装下载即用,支持命令行、Docker 和在线三种使用方式。
12、pop:在终端发邮件的工具。这是一款用 Go 写的命令行发邮件的工具,它支持 TUI 和命令行两种使用方式,还以可以通过管道和其它工具结合,实现例如 AI 编写邮件等功能。
pop < message.md \
--from "me@example.com" \
--to "you@example.com" \
--subject "Hello, world!" \
--attach invoice.pdf
13、URLFinder:一款快速提取网页信息的工具。该项目可以快速爬取网页上的 URL 地址、JS 文件里的 API 接口等信息,支持批量抓取、深入抓取、安全抓取等模式。
Java 项目
14、antlr4:强大的语法分析器生成工具。简洁的 ANTLR 语法能够构造一个词法分析器和语法分析器,将一份文件生成 10 余种目标语言代码(Java/C++/Python 等),多用于文本解析、配置文件读取器、遗留代码转换器、JSON 解析器等。
grammar Expr;
prog: (expr NEWLINE)* ;
expr: expr ('*'|'/') expr
| expr ('+'|'-') expr
| INT
| '(' expr ')'
;
NEWLINE : [\r\n]+ ;
INT : [0-9]+ ;
JavaScript 项目
15、Flowise:用拖拽的方式构建大模型应用。该项目可以让你通过可视化、拖拽组件的方式自定义大模型(LLM)流程,轻松构建 LLM 应用,支持 Docker 一键启动服务。
16、habitica:用玩 RPG 游戏的方式养成好习惯。这是一款养成类 RPG 游戏,当你完成一个现实中的待办事项后,会获得相应的经验和金币。随着你的等级提升,将会开启更多的玩法,比如购买装备、孵化宠物、职业、专属技能、组队打副本等。
17、jsnes: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();
// ...
18、react-login-page:漂亮的 React 登录页组件。用于快速构建登录页面的 React 组件,内含十几款封装好的界面炫酷、即插即用的登陆页。来自 @王楚江 的分享
19、talk:点开即用的在线视频应用。这是一款基于 WebRTC 构建的 P2P 在线视频应用,它免费、无需下载和注册、点开即用。
Kotlin 项目
20、Squircle-CE:Android 手机上的代码编辑器。这款免费的手机代码编辑器,支持 C、C++、Go、Python、Java 等三十多种编程语言,同时具有语法高亮、自动补全、文件管理、代码风格等功能。
Python 项目
21、cudf:支持 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())
22、fastapi-users:开箱即用的 FastAPI 用户管理。该项目可以快速将用户注册和身份认证功能集成到 FastAPI 项目中,支持注册、登录、密码重置、邮箱验证、OAuth2、自定义身份验证等功能。
23、fastkafka:为你的 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}")
24、networkx:强大的 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']
25、rpg_tactical_fantasy_game:采用 pygame 开发的 RPG 回合制游戏。这是一款 Python 写的 2D 策略回合制游戏,项目依赖少、代码简单,就算是 Python 新手也能看懂。作者其实并不擅长制作回合制游戏,只是因为喜欢玩这种游戏,所以就有了这个项目。
Rust 项目
26、dm-ticket:Rust 写的大麦网自动购票工具。大麦网的抢票工具,仅支持购买 H5 页面上的票,不支持选座。来自 @Classmate Lin 的分享
27、gping:Rust 写的 ping 工具。该项目能够以折线图的方式,实时展示 ping 的结果,支持 Windows、Linux 和 macOS 操作系统。
28、pot-desktop:一款跨平台的划词翻译软件。支持划词翻译、输入翻译、截图翻译等多种模式的翻译工具,适用于 Windows、macOS 和 Linux。
Swift 项目
29、alt-tab-macos:macOS 上的 alt-tab 窗口切换工具。这是一款将 Windows 的 alt-tab 切换窗口功能带到了 macOS 的应用,支持一键关闭、全屏、隐藏应用,自定义 AltTab 外观、快捷键等功能。
其它
30、digital_video_introduction:一份讲解视频技术的教程。这是一份循序渐进的视频技术教程,从基本概念讲到视频编码器如何工作,内容通俗易懂、图文并茂。
31、immich:自建手机照片和视频备份服务。这是一个自行备份 iPhone、Android 手机上照片和视频的开源解决方案,支持自动备份、多用户、共享相册、实时查看照片等功能。
32、og-aws:一份 AWS 实用指南。这是一份由使用 AWS 的工程师们编写的使用指南,内容涵盖 AWS 基础知识、管理服务器、职业发展等方面。
33、OpenCat:开源的四足机器人宠物框架。这是一个基于 Arduino 和 Raspberry Pi 的四足机器人宠物框架,让你可通过 C/C++/Python 编程语言操控四足机器人。该公司生产的迷你机器猫,神似玩具版的波士顿机械狗。
34、SoftwareArchitect:通往架构师之路。这是一份教你如何成为架构师的学习指南。
开源书籍
35、Book4_Power-of-Matrix:《矩阵力量》。该书介绍了向量、矩阵、向量空间、矩阵分解、微积分、空间几何等知识,内含全彩图解和 Python 示例代码。
36、SearchEngine:《搜索引擎技术》。该书的作者是小红书的算法工程师,内容涵盖了搜索引擎基础、机器学习基础、排序、查询词推荐、决定用户体验的要素等方面,所以不要被它朴实无华的书名所迷惑。
机器学习
37、DeepFaceLive:实时直播和视频 AI 换脸程序。该项目可以对摄像头和本地视频文件中的人物,进行实时 AI 换脸,可用于 PC 直播、视频等场景。
38、DeepSpeed:微软开源的深度学习训练优化库。众所周知训练大模型(LLM)是一件“费时费钱”的事情,该项目通过 ZeRO++ 技术,在训练时将模型状态分割到每个 GPU 上,通过提高吞吐量的方式,降低训练所需的时间和成本。来自 @zhizhu 的分享
39、modelscope:AI 模型即服务共享平台。魔塔是由阿里达摩院开源的 MaaS 平台,它为开发者提供了模型体验、推理、训练、部署和应用的一站式服务,相当于国内版的 Hugging Face。来自 @孤胆枪手 的分享
40、PPOxFamily:决策智能入门级公开课。此课程希望通过深入讲解最经典的深度强化学习算法 Proximal Policy Optimization (PPO),打开你的决策 AI 探索之旅。内含视频、理论资料、习题、代码和应用样例,能够帮助初学者快速掌握,如何运用 PPO 解决各种各样的决策智能问题。来自 @Fan 的分享
最后
感谢无私分享开源项目的小伙伴们,欢迎更多的开源爱好者来 HelloGitHub 自荐/推荐开源项目。如果你发现了 GitHub 上有趣的项目,就点击这里分享给大家伙吧!
以上就是本期的所有内容了,往期内容点击阅读,如果你觉得本期内容还不错的话 求赞、求分享 ❤️
作者:削微寒
扫描左侧的二维码可以联系到我
本作品采用署名-非商业性使用-禁止演绎 4.0 国际 进行许可。