Fork me on GitHub

《HelloGitHub》第 101 期

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

简介

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

github.com/521xueweihan/HelloGitHub

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


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

C 项目

1、austin:深入 Python 程序性能分析的工具。这是一款专为 Python 程序设计的性能分析工具,无需修改代码即可轻松定位 Python 程序的性能瓶颈和内存使用情况。它是采用 C 语言编写的 CPython 帧堆栈采样器,具有体积小、运行速度快、零代码侵入等特点,支持 WebUI、TUI、VSCode 等多种可视化方式(需额外安装)。

2、chsrc:全平台通用的换源工具。该项目能够为常见的 Linux 发行版、编程语言和软件切换至国内镜像源,操作简单仅需一条命令。它采用 C 语言编写,具有高效和轻量级的特点,支持测速、多平台以及项目级换源等功能,适用于优化下载速度或解决源受限的场景。来自 @ccmywish 的分享

3、collectd:灵活的系统信息收集守护进程。这是一个功能强大的收集系统信息的守护进程,能够定期收集和统计系统信息。它支持丰富的数据收集插件,可以监控硬件使用情况、系统性能指标、网络流量等多种数据类型,包括 Apache、MySQL、电池、传感器等。并支持将收集的数据输出到 RRDtool、InfluxDB 等多种数据库和监控系统,适用于嵌入式、物联网和服务器集群监控等场景。

C# 项目

4、LenovoLegionToolkit:轻量级的联想拯救者工具箱。该项目是专为联想拯救者系列笔记本设计的开源工具,它具有小巧轻便、占用内存少、不收集用户信息等优点,支持调节电源模式、显卡工作模式、风扇速度和键盘灯效等功能,提供了中文界面,可作为联想 Vantage 软件的开源替代品。

5、PDFQFZ:免费的 PDF 加盖骑缝章工具。该项目是用于在 PDF 文件上加盖骑缝章的工具,适用于 Windows 平台。它不仅免费且开源,使用时可以指定目录,对多个 PDF 文件进行批量处理,并支持预览、调整印章大小和位置等功能。

C++ 项目

6、lnav:强大的终端日志文件查看工具。这是一款用于查看和分析日志文件的轻量级工具。它无需配置、开箱即用,可自动识别日志格式并解压文件,支持同时处理多个文件和目录、实时更新、文本高亮、正则与 SQL 过滤日志等功能,特别适合在服务器和开发环境中使用。来自 @DeShuiYu 的分享

7、shadPS4:开源的 PS4 模拟器。这是用 C++ 编写的 PlayStation 4(PS4)模拟器,支持在 Windows、Linux 和 macOS 系统上玩 PS4 游戏。虽然项目仍处于早期开发阶段,能运行的游戏有限,但最新版已经能够成功运行《血源诅咒》和《黑暗之魂II》等游戏。

Go 项目

8、doggo:友好的命令行 DNS 查询工具。该项目是用 Go 语言编写的命令行 DNS 客户端工具,安装简单且开箱即用。它提供了友好的命令行界面,可快速显示 DNS 记录信息,支持高亮显示、响应时间和多种 DNS 记录类型等,适用于网络诊断等场景。

# Simple DNS lookup
doggo example.com

# Query MX records using a specific nameserver
doggo MX github.com @9.9.9.9

# Use DNS over HTTPS
doggo example.com @https://cloudflare-dns.com/dns-query

# JSON output for scripting
doggo example.com --json | jq '.responses[0].answers[].address'

# Reverse DNS lookup
doggo --reverse 8.8.8.8 --short

9、glasskube:更容易上手的 K8s 包管理器。这是一款提供直观图形界面和灵活命令行工具的 Kubernetes 软件包管理工具。它操作简单更容易上手,支持自动处理依赖、GitOps 和自动更新等功能,简化了繁琐的手动配置过程。

10、lancet:全面的 Go 语言工具函数库。这是一个高效且全面的 Go 语言工具函数库,包含 600 多个函数,涵盖字符串处理、切片操作、网络编程、并发、加解密、文件处理、时间/日期、流处理、迭代器等功能。来自 @两双筷子sqldc 的分享

package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/strutil"
)

func main() {
    s := "hello"
    rs := strutil.Reverse(s)
    fmt.Println(rs) //olleh
}

11、neko:多功能的虚拟浏览器工具。该项目是运行在 Docker 容器中的自托管虚拟浏览器环境,为用户提供安全、隔离和功能齐全的虚拟浏览器。此外,它还支持在线共享浏览器和实时互动演示,具备多人访问、管理员用户、文本聊天和双向文件传输等功能。来自 @猎隼丶止戈reNo7 的分享

12、sftpgo:集成云存储的 SFTP 服务器。该项目是用 Go 编写的功能齐全、灵活可配置的 SFTP 服务器,支持 SFTP、SCP、FTP/S、WebDAV、HTTP/S 等多种文件传输协议,并兼容本地文件系统、S3、谷歌云存储等多种存储后端。此外,它还提供了 Web 界面,便于轻松创建和管理用户、文件夹、群组等资源。来自 @猎隼丶止戈reNo7 的分享

Java 项目

13、JPlag:开源的代码抄袭检测工具。这是一个用于检测源代码相似度的工具,支持 Java、C/C++、Python、JavaScript 等多种编程语言,适用于识别编程作业中的抄袭行为等场景。

14、MooTool:跨平台的开发者工具箱。这是一款用 Java 开发的开发者常用工具的桌面应用,支持 Windows、macOS 和 Linux 系统。它为开发者提供了多种实用工具,如文本转换、时间处理、JSON 格式化和正则匹配测试等。来自 @周波 的分享

JavaScript 项目

15、paint-board:简洁易用的 Web 端创意画板。这是一款支持移动端的 Web 画板应用,它集成了多种创意画笔和绘画功能,支持形状绘制、橡皮擦、自定义画板等操作,并可以将作品保存为图片。来自 @Leo Song 的分享

16、PptxGenJS:创建演示文稿(PPT)的 JavaScript 库。这是一个用于生成 PPT 文件的 JavaScript 库,它上手无门槛、功能强大,支持添加图表、表格、SVG、GIF 等内容,并且生成的文件兼容 PowerPoint 和 Keynote 等应用。来自 @Fenix 的分享

import pptxgen from "pptxgenjs";

// 1. Create a new Presentation
let pres = new pptxgen();

// 2. Add a Slide
let slide = pres.addSlide();

// 3. Add one or more objects (Tables, Shapes, Images, Text and Media) to the Slide
let textboxText = "Hello World from PptxGenJS!";
let textboxOpts = { x: 1, y: 1, color: "363636" };
slide.addText(textboxText, textboxOpts);

// 4. Save the Presentation
pres.writeFile();

17、Reactive-Resume:免费开源的简历设计平台。这是一个免费、开源、无广告的在线简历制作平台,内置 12 款专业的简历模板,支持多语言、PDF 导出和 OpenAI 集成等功能。

18、vue-XiuXianGame:开源的文字修仙游戏。这是一个基于 Vue.js 开发的修仙模拟器,互动式的文字游戏,适合喜欢放置类和修仙题材游戏的玩家。

19、xyflow:强大灵活的流程图引擎。该项目是用于构建基于节点的编辑器和交互式图表,支持 React 和 Svelte 框架。它开箱即用且高度可定制,适用于开发工作流和流程图等场景。来自 @塔咖 的分享

const initialNodes = [
{ id: '1', position: { x: 0, y: 0 }, data: { label: '1' } },
{ id: '2', position: { x: 0, y: 100 }, data: { label: '2' } },
];

const initialEdges = [{ id: 'e1-2', source: '1', target: '2' }];

function Flow() {
const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes);
const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges);

const onConnect = useCallback((params) => setEdges((eds) => addEdge(params, eds)), [setEdges]);

return (
  <ReactFlow
    nodes={nodes}
    edges={edges}
    onNodesChange={onNodesChange}
    onEdgesChange={onEdgesChange}
    onConnect={onConnect}
  >
    <MiniMap />
    <Controls />
    <Background />
  </ReactFlow>
);
}

Kotlin 项目

20、Android-DataBackup:Android 的数据备份应用。该项目为 Android 7.0 及以上系统,提供了应用数据的备份和恢复功能,解决了换机后应用需要重新登录或下载额外数据包等问题。

21、BinaryEye:Android 的条形码扫描应用。这是一款简单易用、无广告的 Android 条形码和二维码扫描器,支持快速识别多种类型的条形码和二维码,并提供二维码/条形码生成功能。

PHP 项目

22、cachet:PHP 写的服务运行状态页面。该项目是采用 Laravel+Bootstrap 构建的服务状态监控和管理平台,免费且开源。它不仅可以自动监控服务的正常运行时间,还提供了管理后台支持主动记录和维护事故信息,支持多语言、自托管、移动端适配和邮件通知等功能。

23、minimalist-web-notepad:极简的在线记事本应用。该项目是采用 PHP 编写的 Web 记事本工具,核心功能仅通过一个文件实现。它提供了在线编辑、自动保存和分享笔记的功能,用户无需注册和登录即可使用,适合临时记录、快速保存和分享文字的场景。

Python 项目

24、Box:高级字典操作的 Python 库。这是一个提升 Python 字典易用性的库,兼容原生字典。它支持点表示法(dict.user.name)轻松访问和设置值,并能自动创建缺失的键,避免出现 KeyError 异常。来自 @Bit0rls1Mc 的分享

from box import Box

hg_box = Box({ "HelloGitHub": { "star": "89k", "fork": "9.5k" } })
hg_box.HelloGitHub.star
# 89k
hg_box.to_json(filename="hg.json")
new_box = Box.from_json(filename="hg.json")
new_box.keys()
# dict_keys(['HelloGitHub'])

25、Game-Cheats-Manager:游戏修改器管理工具。这是一款强大的游戏修改器管理工具,支持搜索、下载、启动、导入和更新游戏修改器等功能。

26、linkding:极简的浏览器书签管理平台。该项目是基于 Django 构建的浏览器书签管理平台,它提供了简洁易用的 Web 界面和强大的搜索功能,支持标签分类、批量编辑和稍后阅读等功能,并配有 Chrome 和 Firefox 插件,方便用户随时随地保存和访问书签。

27、mkdocs-material:快速生成 Material 风格的文档网站。该项目是基于 MkDocs 构建的美观且功能丰富的文档网站生成器,支持 Markdown、搜索、移动端适配、多语言等功能,适用于快速创建技术文档、产品手册和教程等类型的网站。来自 @猎隼丶止戈reNo7 的分享

28、SeleniumBase:功能全面的浏览器自动化框架。该项目是基于 Selenium 的 Python 自动化测试框架,集成了爬虫、自动化测试和生成报告等多种功能。它提供了丰富的示例,并且独特的 UC 模式,可以帮助开发者在进行浏览器自动化操作时避免被检测出来。

from seleniumbase import BaseCase
BaseCase.main(__name__, __file__)

class TestSimpleLogin(BaseCase):
    def test_simple_login(self):
        self.open("seleniumbase.io/simple/login")
        self.type("#username", "demo_user")
        self.type("#password", "secret_pass")
        self.click('a:contains("Sign in")')
        self.assert_exact_text("Welcome!", "h1")
        self.assert_element("img#image1")
        self.highlight("#image1")
        self.click_link("Sign out")
        self.assert_text("signed out", "#top_message")

Rust 项目

29、abstreet:开源的城市交通模拟器。这是一个用 Rust 编写的城市交通模拟工具,支持模拟多种交通方式,包括私家车、公共交通、步行和自行车。用户可以在软件中模拟不同的交通策略和基础设施调整。

30、delta:提升 Git 差异可读性的命令行工具。这是一个用 Rust 写的命令行工具,能够以更清晰、美观的方式展示 Git 的 diff、blame 和 grep 命令。它支持显示行号、语法高亮和更智能的行内差异显示等功能,可无缝集成到 Git 工作流中。

31、dust:快速显示硬盘使用情况的命令行工具。这是一个可视化磁盘使用情况的命令行工具,名字源自 du 和 Rust 编程语言组合。它体积小巧、运行速度快,能够以直观的方式展示磁盘空间概览。来自 @DeShuiYu 的分享

32、mail-server:安全且易于部署的邮件服务。该项目是用 Rust 编写的邮件服务器,支持 SMTP、IMAP 和 POP3 等常见邮件协议,内置强大的垃圾邮件和钓鱼网站过滤器。来自 @Mauro D. 的分享

Swift 项目

33、Pearcleaner:免费的 Mac 应用清理工具。这是一款免费开源的 Mac 应用清理工具,能够彻底卸载应用并清理残留文件。它采用 SwiftUI 开发,提供了简单易用的界面,支持右键卸载、迷你模式和 Homebrew 清理等功能。

其它

34、deskreen:能将任何设备变为电脑第二屏幕的工具。该项目利用 WebRTC 技术将电脑屏幕,通过 WiFi 镜像到具有 Web 浏览器的设备屏幕上,实现屏幕共享功能,使其成为电脑的辅助显示器。

35、Kazumi:跨平台的追番神器。这是一款采用 Flutter 开发的番剧采集应用,用户可以通过自定义 Xpath 规则,实现采集、追踪、搜索和在线观看动漫,支持字幕、弹幕、时间表、硬件加速和无线投屏等功能,适用于 Android、Windows 和 macOS 等平台。来自 @Micro·J 的分享

36、open-and-shut:笔记本盖的新玩法。这是一个通过反复合上和打开笔记本电脑的盖子,输入摩斯电码的工具。

37、rime-ice:开箱即用的 RIME 输入法配置。这是一份 RIME 输入法的配置文件,需要配合 RIME 客户端使用。它提供了高质量、长期维护的简体中文词库,并优化了英文输入体验。

38、vCards:开源的电子名片文件。该项目收集并整理了常用联系人的号码和头像,优化了手机来电和通讯录信息界面的体验,支持订阅(自动更新)和手动导入 vcf 文件两种使用方式。来自 @Mingo 的分享

39、Watchy:开源电子墨水屏智能手表。该项目是采用 ESP32-PICO-D4 和电子墨水屏制作的一款智能手表,支持日历、闹钟、步数、手势检测,以及 WiFi 和蓝牙等功能。

开源书籍

40、grammar-club:《语法俱乐部》。这是旋元佑老师写的一本英语语法书籍,旨在帮助读者建立扎实的语法基础,适合各个水平的英语学习者。

机器学习

41、k8sgpt:Kubernetes 故障诊断 AI 助手。该项目利用 LLM 自动分析 Kubernetes 集群问题,并给出故障诊断和优化建议。它通过读取集群的状态数据和配置,生成靠谱的诊断报告。

42、llama_index:大型语言模型的数据框架。该项目是专为 LLM 应用设计的数据框架,帮助开发者将私有数据与 LLM 轻松结合。它提供了数据连接器,支持从 API、PDF、文档、SQL 等多种数据源构建索引,并简化数据导入和查询操作,让初学者也能用几行代码完成 LLMs 上下文增强。

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query("Some question about the data should go here")
print(response)

43、RAG_Techniques:检索增强生成(RAG)教程集合。该项目提供了 20 多种先进的 RAG 技术教程,包含实现指南和示例代码,并定期更新。内容涵盖检索查询、上下文增强、融合检索(Fusion Retrieval)、分层索引、上下文压缩、知识图谱整合等多种 RAG 技术。

44、video2x:视频和图像无损放大工具。该项目集成了多种超分辨率算法(如 Waifu2x、Anime4K、Real-ESRGAN),能够有效提高视频和图像的分辨率,并提供了图形界面(GUI)、Docker 和命令行界面(CLI)的使用方式。

最后

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

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

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

posted @ 2024-08-28 08:37  削微寒  阅读(792)  评论(2编辑  收藏  举报