首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

《HelloGitHub》第 102 期

编程知识
2024年09月27日 07:32

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

简介

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

github.com/521xueweihan/HelloGitHub

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


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

C 项目

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

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

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

C# 项目

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

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

C++ 项目

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

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

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
}

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

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

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

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

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

Java 项目

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

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

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

JavaScript 项目

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

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

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" } ] }

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

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

Kotlin 项目

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

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

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'

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)

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")

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

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

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

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

Swift 项目

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

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

人工智能

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

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()})

其它

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

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

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

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

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

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

开源书籍

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

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

最后

感谢参与分享开源项目的小伙伴们,欢迎更多的开源爱好者来 HelloGitHub 自荐/推荐开源项目。如果你发现了 GitHub 上有趣的项目,就点击这里分享给大家伙吧!

本期有你感兴趣的开源项目吗?如果有的话就留言告诉我吧~如果还没看过瘾,可以点击阅读往期内容。

感谢您的阅读,如果觉得本期内容还不错的话 求赞、求分享 ❤️

From:https://www.cnblogs.com/xueweihan/p/18434827
本文地址: http://www.shuzixingkong.net/article/2342
0评论
提交 加载更多评论
其他文章 救园倒计时:救园最后4天
救园目的:园子这三年困难阶段靠贷款维持,救园是为了还掉贷款,度过难关。救园方式: 终身会员计划,会员,捐助,周边。救园之后,一边增加收入来源,一边加快推进园子的商业化
救园倒计时:救园最后4天
Linux服务器磁盘空间占用情况分析与清理指南
为确保重大节日期间,团队负责的测试环境服务器磁盘不会占用过高,导致频繁报警。我们要求在重大节假日前对服务器磁盘占用情况进行检查。如果发现占用过高,则需人为介入,进行相应清理。 一、检查要求 查看各分区占用情况,如果达到以下任一条件,则需要人为介入判断或处理: (1)磁盘使用率 > 90% (2
【译】通过新的 WinUI 工作负荷和模板改进,深入原生 Windows 开发
我们创建了一个新的 Windows Dev Center 页面,简化了我们的 Getting Started with WinUI 文档,并与 Visual Studio 合作来改善开发人员在工作负荷和模板方面的体验。
【译】通过新的 WinUI 工作负荷和模板改进,深入原生 Windows 开发 【译】通过新的 WinUI 工作负荷和模板改进,深入原生 Windows 开发 【译】通过新的 WinUI 工作负荷和模板改进,深入原生 Windows 开发
一篇文章讲清楚synchronized关键字的作用及原理
概述 在应用Sychronized关键字时需要把握如下注意点: 一把锁只能同时被一个线程获取,没有获得锁的线程只能等待; 每个实例都对应有自己的一把锁(this),不同实例之间互不影响;例外:锁对象是*.class以及synchronized修饰的是static方法的时候,所有对象公用同一把锁 sy
一篇文章讲清楚synchronized关键字的作用及原理 一篇文章讲清楚synchronized关键字的作用及原理 一篇文章讲清楚synchronized关键字的作用及原理
排查maven 冲突及解决方式
Maven Maven 是一个以项目为中心的自动化构建工具,主要用于Java项目的管理和构建。它提供了一种统一的方式来描述项目的结构、依赖关系和构建过程,简化了项目的构建和管理。 Maven 的主要特点: 项目对象模型(POM):Maven 使用pom.xml文件来定义项目的依赖、插件和构建配置。P
排查maven  冲突及解决方式 排查maven  冲突及解决方式 排查maven  冲突及解决方式
从零开始学机器学习——准备和可视化数据
首先给大家介绍一个很好用的学习地址:https://cloudstudio.net/columns 数据准备-清洗 在进行机器学习的第一步——准备数据,为了方便起见,我已经提前下载好了所需的文件。 https://files.cnblogs.com/files/guoxiaoyu/US-pumpki
从零开始学机器学习——准备和可视化数据 从零开始学机器学习——准备和可视化数据 从零开始学机器学习——准备和可视化数据
在 ArkTS 中,如何有效地进行内存管理和避免内存泄漏?
ArkTS 是鸿蒙生态的应用开发语言,它在 TypeScript 的基础上进行了优化和定制,以适应鸿蒙系统的需求。 以下是在 ArkTS 中进行有效的内存管理和避免内存泄漏: 1. 使用 const 和 let 合理声明变量: 使用 const 声明那些不会重新赋值的变量,这有助于确保变量的不变性,
深入理解 Nuxt.js 中的 app:error 钩子
title: 深入理解 Nuxt.js 中的 app:error 钩子 date: 2024/9/27 updated: 2024/9/27 author: cmdragon excerpt: 摘要:本文深入讲解了Nuxt.js框架中的app:error钩子,介绍其在处理web应用中致命错误的重要作
深入理解 Nuxt.js 中的 app:error 钩子 深入理解 Nuxt.js 中的 app:error 钩子