《HelloGitHub》第 102 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!

842c068478e328911bf03b995ded4794.png

简介

HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。

github.com/521xueweihan/HelloGitHub

这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!


以下为本期内容|每个月 28 号更新

C 项目

1、Ditto:Windows 的剪贴板历史管理工具。这是一款免费的 Windows 剪贴板增强工具。它能够将复制到剪贴板的内容存储到数据库中(SQLite),方便日后检索,支持设定保存日期、条目总数、合并粘贴、分组、快速搜索和热键粘贴等功能。此外,还可以通过网络共享剪贴板内容,并对传输数据进行加密保护。来自 @Veeja Liu 的分享

43194db67a8666b6577dda4e1e199646.png

地址:github.com/sabrogden/Ditto

2、FlappyBird:仅 100KB 的像素鸟游戏。该项目是用 C 语言编写的飞翔的小鸟游戏(Flappy Bird),它运行流畅、安装包不到 100KB,适用于 Android 5.1 及以上系统。

48223f3982f7d68f464cd953b061cc06.png

地址:github.com/VadimBoev/FlappyBird

3、system-bus-radio:用电脑轻松发射无线电信号。该项目通过控制计算机系统总线在特定频率上切换电流,实现了无需额外硬件设备,仅用电脑发送 AM 无线电信号的功能。

7262d9e3427a2340a07b98caa1bf1047.png

地址:github.com/fulldecent/system-bus-radio

C# 项目

4、eShop:开源的 .NET 电商平台。该项目是由 .NET 官方开源的电子商务平台,基于 .NET Aspire 构建。作为示例项目,它采用最新的 .NET 8 和微服务架构,并实现了核心的电商功能。

a4b7b4b53dc3fb3fdff991f11c2a3a13.png

地址:github.com/dotnet/eShop

5、Loaf:假装 Windows 更新的工具。这是一款专为摸鱼设计的小工具。点击“摸鱼”按钮后,它会显示 Windows Update 界面,营造电脑正在升级的假象,让你能够名正言顺地摸鱼。来自 @刘睿华 的分享

b7a0adbc8564e4a95fa06741b2556639.png

地址:github.com/DinoChan/Loaf

C++ 项目

6、alien:强大的人工生命模拟工具。该项目是基于 CUDA 的 2D 粒子引擎构建的人工生命模拟工具。它提供了图形化用户界面和粒子编辑器,能够轻松模拟软体、流体、数字生物体、遗传和进化等过程。生物行为由神经网络控制,支持实时交互和模拟百万量级的粒子。

babababfd50731a035c8d28697fd7378.jpeg

地址:github.com/chrxh/alien

7、vcmi:《英雄无敌 III》的开源重制版。该项目是经典策略游戏《魔法门之英雄无敌 III》的开源重制版,它采用 C++ 重新编写了游戏引擎,支持更高的分辨率、多人游戏和自定义地图等功能,可以在 Windows、macOS、Android 和 iOS 等系统上运行,但需要自行准备启动游戏所需的数据文件。

32c5fc283a2497c2f54569f30799595a.jpeg

地址:github.com/vcmi/vcmi

Go 项目

8、clickhouse-sql-parser:纯 Go 实现的 ClickHouse SQL 解析器。这是一款用 Go 实现的 ClickHouse SQL 解析器,兼容大多数 DML/DDL/Query 语句。它的代码简洁易懂,可作为 Go 开发者学习 SQL 解析器的入门项目。

package main

import (
    clickhouse "github.com/AfterShip/clickhouse-sql-parser/parser"
)

query := "SELECT * FROM clickhouse"
parser := clickhouse.NewParser(query)
// Parse query into AST
statements, err := parser.ParseStmts()
if err != nil {
    return nil, err
}

地址:github.com/AfterShip/clickhouse-sql-parser

9、go2rtc:支持各种流媒体协议的处理工具。这是一个用 Go 语言编写的库,支持 RTSP、WebRTC、HomeKit、FFmpeg、RTMP 等视频流协议的处理。在 FFMPEG 的加持下,它几乎能将任何媒体格式作为输入源,转换为适用于主流流媒体服务和浏览器的格式。来自 @猎隼丶止戈reNo7 的分享

86e0602f5bff84f64d87235071330d02.png

地址:github.com/AlexxIT/go2rtc

10、maroto:用 Go 生成样式美观的 PDF 文件。这一个 Go 语言开发的用于创建 PDF 文件的库,其灵感来源于 Bootstrap 框架。它允许你像使用 Bootstrap 创建网站一样,轻松编写和生成不同样式的 PDF 文件。来自 @DeShuiYu 的分享

d6eff8790b68a8ba2934c00680b2e48d.png

地址:github.com/johnfercher/maroto

11、nginx-ui:全新的 Nginx 在线管理平台。该项目是用 Go+Vue.js 构建的 Nginx 在线管理平台,它开箱即用、功能丰富,支持流量统计、在线查看 Nginx 日志、编辑 Nginx 配置文件、自动检查和重载配置文件等功能。来自 @kekylin 的分享

77509670585edd6507412434f4fdd6b2.png

地址:github.com/0xJacky/nginx-ui

12、watchtower:自动更新 Docker 容器的工具。该项目能够自动监测并更新正在运行的 Docker 容器。它会定期检查并拉取 Docker Hub 或私有镜像仓库中的最新镜像版本,并自动重启容器。适用于开发、测试和个人使用场景,但不建议在生产环境中使用。

docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower

地址:github.com/containrrr/watchtower

Java 项目

13、graphhopper:高效灵活的开源路线规划引擎。该项目是用 Java 开发的高性能路径规划引擎,能够快速计算两点或多点之间的距离。它支持 Dijkstra、A* 和收缩层级(CH)等算法,可以作为 Java 库或 Web 服务使用。基于 OpenStreetMap 地图数据,可实现汽车、自行车、步行等多种交通方式的路线规划和导航服务。

05c43a3785fc35e9018b34fd76be148d.png

地址:github.com/graphhopper/graphhopper

14、J2ME-Loader:在 Android 上玩 J2ME 游戏。这是一款 Android 的 J2ME 模拟器,支持大多数 2D 和 3D 游戏。它内置虚拟键盘,适用于 Android 4.0+ 系统。

9be85834ff80bc994a3e4395ff764489.png

地址:github.com/nikita36078/J2ME-Loader

15、spring-ai:帮助开发 AI 应用的 Spring 框架。这是由 Spring 官方开源的用于简化包含 AI 功能的应用开发的 Java 框架,它可以轻松接入 OpenAI、Microsoft、Amazon、Google 和 Huggingface 等主流模型供应商,以及聊天、文本生成图像的模型类型,支持提示工程、AI 模型转 POJO 对象、矢量数据库、RAG(检索增强生成)等有助于开发 AI 应用的功能。

48eb745a3769db2b0108f757e76c9d08.png

地址:github.com/spring-projects/spring-ai

JavaScript 项目

16、create-t3-app:创建全栈、类型安全的 Next.js 项目的工具。这是一个用于创建全栈且类型安全的 Next.js 项目的脚手架工具。它开箱即用,仅需一条命令就能快速创建一个全新的 Next.js 项目。

7c5764bc3957cf957d6ab2018aafd113.png

地址:github.com/t3-oss/create-t3-app

17、markmap:将 Markdown 可视化为思维导图。这是一个支持使用 Markdown 语法绘制思维导图的工具。它开箱即用并提供多种使用方式,包括在线、命令行以及 VSCode、Vim 和 Emacs 插件。

9d4b7d9613aec0beeef45a4867a44034.png

地址:github.com/markmap/markmap

18、pglite:在浏览器中运行 Postgres 数据库。该项目将 PostgreSQL 数据库编译成 WebAssembly (WASM),并打包成一个 TypeScript/JavaScript 客户端库。它压缩后体积不到 3MB,可以在浏览器、Node.js、Bun 和 Deno 环境中运行,无需安装任何额外的依赖。提供灵活的存储选项,支持内存存储、本地持久化或 IndexedDB。

import { PGlite } from "@electric-sql/pglite";

const db = new PGlite();
await db.query("select 'Hello world' as message;");
// -> { rows: [ { message: "Hello world" } ] }
9ab391f778b286d0d8286aa40d3c7f4c.png

地址:github.com/electric-sql/pglite

19、staticrypt:为静态网站提供密码保护功能。该项目无需服务器端支持,即可实现对 HTML 页面进行密码认证访问的功能。它使用 AES-256 加密算法和设定的密码,对需要保护的页面进行加密。生成的页面包含密码输入框,只有在输入正确的密码后,才会显示原始的 HTML 页面内容。

f9e9ab31eb518727ba34c08da4691de2.gif

地址:github.com/robinmoisson/staticrypt

20、ui:流行、设计精美的 UI 组件集合。这是一款由 Vercel 开源、基于 React 开发的 UI 组件集合,包括仪表板、卡片、模型对话、表单、登录等组件,拿来即用。通过 CLI 引入组件后,将得到该组件的源码,可随意修改和定制。

9d637eeeae629930c469eb1e324ead01.png

地址:github.com/shadcn-ui/ui

Kotlin 项目

21、game2048:开源的 2048 游戏。该项目是基于 Kotlin 和 KorGe 游戏引擎开发的 2048 游戏。它免费、开源且没广告,支持存档、无限撤回、AI 模式和回放等功能。作者仅提供了 Android 安装包,其他平台需要自行编译。

fbc8197969d9ee3f989de7eb0cda4ac3.png

地址:github.com/andstatus/game2048

22、ImageToolbox:Android 的多功能图像编辑工具。这是一款专为 Android 设计的图像编辑工具。它完全免费,支持批量处理、滤镜、背景移除、尺寸调整和裁剪等多种功能。

cd5ce65158f28f2814d81dca80475963.png

地址:github.com/T8RIN/ImageToolbox

Python 项目

23、aiofiles:Python 异步文件处理库。在 Python 中,传统的文件 I/O 是阻塞的,该项目提供了异步(非阻塞)的文件操作。它的 API 与 Python 标准库相似,支持 async/await 语法。

async with aiofiles.open('filename', mode='r') as f:
    contents = await f.read()
print(contents)
'My file contents'

地址:github.com/Tinche/aiofiles

24、cupy:GPU 版的 NumPy 和 SciPy。这是一个利用 GPU 加速数值计算的 Python 库,与 NumPy 和 SciPy 兼容。你可以轻松地将现有的 NumPy/SciPy 代码,迁移到 NVIDIA CUDA 或 AMD ROCm 平台上运行,部分情况下速度可提升 100 倍以上。

>>> import cupy as cp
>>> x = cp.arange(6).reshape(2, 3).astype('f')
>>> x
array([[ 0.,  1.,  2.],
       [ 3.,  4.,  5.]], dtype=float32)
>>> x.sum(axis=1)
array([  3.,  12.], dtype=float32)
70ec74ec06558da15b58e18c2d0678ea.png

地址:github.com/cupy/cupy

25、curl_cffi:模拟浏览器指纹的 HTTP 客户端。这是一个用 Python 写的 HTTP 客户端库,可以模拟浏览器 TLS、JA3 和 HTTP/2 指纹。它开箱即用、速度快,并且支持 WebSocket 和异步。

from curl_cffi import requests

# Notice the impersonate parameter
r = requests.get("https://tools.scrapfly.io/api/fp/ja3", impersonate="chrome")

print(r.json())
# output: {..., "ja3n_hash": "aa56c057ad164ec4fdcb7a5a283be9fc", ...}
# the js3n fingerprint should be the same as target browser

# To keep using the latest browser version as `curl_cffi` updates,
# simply set impersonate="chrome" without specifying a version.
# Other similar values are: "safari" and "safari_ios"
r = requests.get("https://tools.scrapfly.io/api/fp/ja3", impersonate="chrome")
944299f9ba768b099fb1e3ef7c2c7942.png

地址:github.com/lexiforest/curl_cffi

26、LibreTranslate:可离线部署的翻译 API 服务。该项目是基于离线翻译引擎 Argos Translate 构建的翻译 API 服务。它不依赖第三方翻译服务,可轻松自建翻译 API 服务,支持自动语言检测、API 密钥和访问频率限制等功能。

be83cf8ecfb75ceb42d5ce4bce4f700b.png

地址:github.com/LibreTranslate/LibreTranslate

27、s-tui:基于终端的 CPU 监控和压测工具。这是一个 Python 写的命令行工具,可在终端中以图形方式实时显示 CPU 温度、频率、功率和利用率等信息。它还支持安装 FIRESTARTER 等工具,对 CPU 进行压力测试。

dcc219c5d63a75ab79db91a6f4b68f38.gif

地址:github.com/amanusk/s-tui

Rust 项目

28、uv:超快的 Python 包管理工具。该项目是基于 Rust 开发的下一代 Python 包管理工具,可用于替代传统的 Python 包和环境管理工具。它兼容 pip、pip-tools 和 virtualenv 命令,速度比这些工具快 10-100 倍,并通过全局依赖缓存节省更多的硬盘空间,开箱即用支持 Windows、Linux 和 macOS 系统。

# On macOS and Linux.
$ curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
$ powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# With pip.
$ pip install uv
2139409bdf916078d2474e2e69cdb828.png

地址:github.com/astral-sh/uv

29、yazi:超快的终端文件管理器。这是一个用 Rust 编写的终端文件管理器,所有 I/O 操作均为异步。它提供了友好的界面、自由可定制和流畅的使用体验,支持图片预览、代码高亮、滚动预览和插件系统,并集成了 ripgrep、fd、fzf 等高效的命令行工具。来自 @fortystory 的分享

bf3e361cf3f6c1b05e173c90de0ac47d.png

地址:github.com/sxyazi/yazi

Swift 项目

30、BBackupp:轻松备份 iOS 设备数据的工具。这是一款免费的 iOS 备份工具,支持显示备份进度、自动备份计划、无线备份、加密保护等功能。

0e400173bffd2b216665bebd7326f76c.png

地址:github.com/Lakr233/BBackupp

31、OpenScanner:适用于 iPhone 的免费文档扫描工具。这是一款用 Swift 编写的文档扫描工具,完全免费,没广告且无内购。它可以扫描收据、合同、笔记等,支持自动识别文本、编辑扫描件、签名和导出 PDF 文件等功能,适用于 iOS 16.0+ 和 visionOS 1.2+ 系统。

06f444842abb77c8501811e8c464a165.png

地址:github.com/pencilresearch/OpenScanner

人工智能

32、miniMNIST-c:C 语言实现的极简神经网络。该项目展示了如何用 C 语言从头实现一个最小的神经网络。它用不到 200 行代码和 C 标准库,实现了一个极简的神经网络,能够对 MNIST 数据集中的手写数字进行分类。

地址:github.com/konrad-gajdus/miniMNIST-c

33、openvino:优化和部署深度学习模型的工具包。该项目是英特尔开源的工具库,旨在加速和优化深度学习模型部署。它能帮助开发者将训练好的模型部署到多种硬件平台,支持 TensorFlow、PyTorch 和 ONNX 等深度学习框架。

import openvino as ov
import torch
import torchvision

# load PyTorch model into memory
model = torch.hub.load("pytorch/vision", "shufflenet_v2_x1_0", weights="DEFAULT")

# convert the model into OpenVINO model
example = torch.randn(1, 3, 224, 224)
ov_model = ov.convert_model(model, example_input=(example,))

# compile the model for CPU device
core = ov.Core()
compiled_model = core.compile_model(ov_model, 'CPU')

# infer the model on random data
output = compiled_model({0: example.numpy()})
f6cf0003642a2c015bd0b84d01b95058.png

地址:github.com/openvinotoolkit/openvino

其它

34、90DaysOfDevOps:为期 90 天的 DevOps 免费教程。该项目最初是作者记录自己学习 DevOps 知识的笔记,如今已发展为一个由社区驱动的 DevOps 免费教程,内容涵盖了 DevOps 概念、Linux 基础、计算机网络、容器、Kubernetes、CI/CD、监控和云服务商等。

f562dc19d983b428b41f33fadfc5ecc5.png

地址:github.com/MichaelCade/90DaysOfDevOps

35、Atlas:开源的精简版 Windows 操作系统。这是一个经过优化的 Windows 操作系统,移除了许多用不到但会拖慢系统的组件。瘦身后减少了系统进程数、网络和内存占用,获得了更快的启动速度和更流畅的操作体验。该系统能够正常运行各种 Windows 软件和游戏,是一份送给游戏爱好者和追求高性能用户的开源礼物。

60f42db91e3a7ca2e717b02ea2b527f7.png

地址:github.com/Atlas-OS/Atlas

36、GPU-Puzzles:学习 GPU 并行编程的互动式教程。该项目提供了 14 道题,帮助学习 GPU 编程。你需要编写代码来解决这些问题。尽管代码看起来像 Python,但实际上是使用 numba 库编写 CUDA 代码。更有趣的是,运行代码后会生成一张示意图,帮助你理解代码运行过程。此外,作者还制作了讲解视频,指导如何运行项目并查看答案。

1f75ce3ae02b48641bcec879d04ce8a9.png

地址:github.com/srush/GPU-Puzzles

37、kando:跨平台的环形状菜单工具。这是一款桌面圆形菜单(Pie menu)工具,可用于启动应用、模拟键盘快捷键、打开文件等,尤其适合与触控笔和触摸屏配合使用,支持 Windows、Linux 和 macOS 等系统。来自 @有故事的徐同学 的分享

fa0db916df92e672f6fa1f0f7c03d044.gif

地址:github.com/kando-menu/kando

38、omakub:精美的 Ubuntu 配置方案。该项目可以将全新的 Ubuntu 24.04 系统配置成美观、功能齐全、适合 Web 开发的系统。只需简单的一条命令,即可拥有配置好的 GNOME 桌面环境、窗口管理工具、Alacritty 终端、Neovim 和 VSCode 编辑器等应用,还会将 Chrome 设置成默认浏览器。

16377a78559fbfe022b17eda5466e715.png

地址:github.com/basecamp/omakub

39、weather_landscape:用有趣的动画显示天气预报。这是一个基于气象数据生成景观图的项目,通过动画形式生动地展现天气,替代了枯燥的气象数值显示。

ef434add8058ecb501696c90be10d156.jpeg

地址:github.com/lds133/weather_landscape

开源书籍

40、DictionaryByGPT4:用 GPT-4 生成的英语单词书。该项目通过 GPT-4 分析中考、高考、及四六级考试中的 8000 多个英语单词,生成了一本英语词汇书。书中详细介绍了每个单词的词义、词根、词缀、例句,以及发展历史和文化背景等。

地址:github.com/Ceelog/DictionaryByGPT4

41、SystemDesign:《System Design Interview: An Insider’s Guide》中文翻译。该项目是《系统设计面试:内幕指南》一书的中文翻译,内容是传授面试中关于系统设计架构的技巧,例如如何设计一个 YouTube 等系统。来自 @刘睿华 的分享

地址:github.com/Admol/SystemDesign

最后

感谢参与分享开源项目的小伙伴们,欢迎更多的开源爱好者来 HelloGitHub 自荐/推荐开源项目。

希望本期内容有你感兴趣的开源项目,兴趣是最好的老师,它能点燃你对开源的热情、勇敢地迈出第一步,随时欢迎你加入开源的大家庭!如果还没看过瘾,点击阅读 往期内容。

- END -

关注「HelloGitHub」第一时间收到更新

点击阅读原文可按照编程语言浏览项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值