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

简介

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

github.com/521xueweihan/HelloGitHub

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


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

C 项目

1、darktable:开源的摄影后期处理工具。这是一款免费且专业的摄影作品后期处理软件。它像一个虚拟的光桌和暗房,能够帮助摄影师存储数字底片、放大查看和检索照片。该软件可以显示照片的焦距和曝光度等信息,并支持编辑历史、地图模式和打印照片等功能。

2、gnucash:完全开源的财务软件。这是一款适用于个人和小型企业的开源财务软件,它采用复式记账法,提供了简洁的操作界面,并支持生成报表、对账、多国货币,以及获取股票实时价格等功能,适用于 Windows、Linux 和 macOS 平台。

C# 项目

3、git-credential-manager:通用的 Git 凭据管理器。这是一个基于 .NET 开发的 Git 凭证存储和管理工具。它开箱即用、无需额外操作,使用 git 命令时,工具会自动引导完成登录,后续无需再次登录,轻松解决对远程 Git 仓库进行操作时遇到的需要登录和认证失败等问题,支持 GitHub、Bitbucket 和 GitLab 等平台。

4、Lean:基于 C# 的量化交易引擎。这是一款采用 C# 编写的开源、经过实战考验的量化交易引擎。支持使用 Python3 或 C# 编写交易算法,兼容 Windows、Linux 和 macOS 平台,适用于量化交易策略研究、回测和实盘交易等场景。

5、space-station-14:开源游戏《14 号空间站》。该项目是经典游戏《Space Station 13》的开源重制版。在这款回合制多人角色扮演的游戏中,玩家可以选择各种角色,如工程师、船长和叛徒,并与其他玩家合作或竞争,在资源有限的环境中生存。

6、subtitleedit:开源的视频字幕编辑工具。这是一款适用于 Windows 的免费视频字幕编辑器。它开箱即用且功能强大,支持创建、调整、同步和翻录字幕,还提供了自动翻译、字幕格式转换和语音识别等功能。

C++ 项目

7、diff-pdf:直观比较两个 PDF 文件的工具。这是一款用 C++ 编写的 PDF 文件比较工具。它支持两种查看方式,将文件内容的差异输出到一个新的 PDF 文件,或直接在 GUI 中查看。

// 输出差异
diff-pdf --output-diff=diff.pdf a.pdf b.pdf
// 直接查看
diff-pdf --view a.pdf b.pdf

Go 项目

8、buildg:交互式的 Dockerfile 调试工具。该项是基于 BuildKit 的交互式调试 Dockerfile 的工具,支持设置断点、单步执行和非 root 模式,并且可以在 VSCode 等编辑器中使用。

9、devzat:程序员专属的 SSH 聊天室。这是一个通过 SSH 连接的聊天室,用户无需安装客户端,仅需一条 SSH 命令即可登录。它支持私人消息、多聊天室、图片和代码高亮等功能,还可以集成第三方服务、自托管 SSH 聊天室。

10、expr:Go 语言的表达式库。该项目是专为 Go 语言设计的表达式语言和求值引擎,支持丰富的算子和高级函数,具有安全、无副作用和静态类型检测等特点。表达式是一行由变量、运算符和函数组成的代码,它能够简化复杂的计算任务,多用于动态配置和业务规则引擎等场景。来自 @两双筷子sqldc 的分享

func main() {
// 表达式
code := `all(Tweets, {.Len <= 240})` program, err := expr.Compile(code, expr.Env(Env{}))
if err != nil {
panic(err)
} env := Env{
Tweets: []Tweet{{42}, {98}, {69}},
}
// 计算表达式
output, err := expr.Run(program, env)
if err != nil {
panic(err)
} fmt.Println(output)
}

11、gdu:快速查看磁盘使用情况的命令行工具。这是一个用 Go 语言编写的磁盘使用分析器,它能够快速扫描并展示文件和目录所占用的磁盘空间,支持 TUI(默认)、非交互和导出三种使用方式。

Java 项目

12、cryptomator:为你的云端文件“上锁”的工具。这是一款开源的云存储文件加密工具,支持 Dropbox、OneDrive 等主流云存储服务。它简单易用、跨平台、无需注册,采用 AES-256 加密上传至云存储的文件和目录,适用于需要备份数据至云端,又担心数据泄漏的场景。来自 @孤胆枪手 的分享

13、JarEditor:直接编辑 JAR 文件的 IDEA 插件。这是一款 IntelliJ IDEA 插件,让你无需解压即可直接编辑 JAR 文件中的 class 和资源文件。它支持添加、删除、重命名 JAR 包内的文件和目录,并提供了搜索和复制 JAR 包内容等功能,兼容 SpringBoot 和 Kotlin 项目。来自 @鹰影 的分享

14、PojavLauncher:Minecraft 游戏的 Android 启动器。该项目可以让你在 Android 上玩 Minecraft(我的世界),提供了离线和多人联机模式。它支持几乎所有版本的 Minercraft,还可以安装 Forge、Fabric 和 OptiFine 等模组和加载器。

JavaScript 项目

15、grapesjs:免费的可视化 Web 页面构建平台。该项目通过直观的可视化界面,让用户能够通过拖拽的方式,快速设计和构建网站的 HTML 模板。它所见即所得、移动端适配,适用于官网、新闻和 CMS 等类型的网站。

16、react-content-loader:轻松创建骨架屏的 React 组件。该项目是用于创建页面加载时的占位图 React 组件,它体积小、易定制,提供了多种预设样式和示例代码,拿来即用极易上手,支持 React、Vue 和 Angular 等主流框架。

import { Code } from 'react-content-loader'

const MyCodeLoader = () => <Code />

17、Sink:基于 Cloudflare 带访问统计的短链平台。该项目是运行在 Cloudflare 上的短链接服务,支持网址缩短、访问分析和链接有效期等功能。来自 @面条 的分享

18、typebot.io:自托管的聊天机器人构建器。该项目通过可视化的拖拽界面,让用户能够轻松创建高级聊天机器人,并将其嵌入网站中。它提供了 30 多种聊天构建块,支持自托管、分析工具、自定义域名和品牌定制等功能,适用于在线客服和销售支持等场景。

19、typed.js:极易上手的 JavaScript 打字动画库。该项目是专门用于创建打字动画效果的 JavaScript 库,它简单易用且 SEO 友好,支持删除效果、设置打字速度和循环次数等功能。

var typed = new Typed('.element', {
strings: ["First sentence.", "Second sentence."],
typeSpeed: 30
});

Kotlin 项目

20、WiFiAnalyzer:用于分析 WiFi 信号的 Android 应用。该项目是用 Kotlin 写的 WiFi 分析工具,它提供了直观的图表展示 WiFi 网络情况,支持识别周围的 WiFi、测量信号强度和查看频道拥挤程度等功能。

Python 项目

21、buzz:音频转录与翻译工具。该项目是基于 Whisper 的音频转录和翻译工具,它开箱即用且操作简单,支持语音转文字、音频翻译、多种语言和离线使用,适用于 macOS、Windows 和 Linux 平台。

22、helium:简化浏览器自动化的 Python 库。该项目是基于 Selenium 的轻量级 Python 库,它通过提供更高级和易用的 API,让用 Python 编写浏览器自动化脚本变得更加简单和方便,支持 Chrome 和 Firefox 浏览器。

23、jurigged:Python 的热重载工具。这是一个专为 Python 提供热重载功能的库,它支持在程序运行时修改和更新 Python 代码,无需重启程序。

# Loop over a function
jurigged --loop function_name script.py
jurigged --loop module_name:function_name script.py # Only stop on exceptions
jurigged --xloop function_name script.py

24、python-sortedcontainers:更好用的 Python 排序集合库。该项目提供了 SortedList、SortedDict 和 SortedSet 三种数据结构,完全兼容 List、Dict、Set 内置数据类型的 API。尽管采用纯 Python 编写,其速度却可以媲美使用 C 扩展实现的 Python 库。

from sortedcontainers import SortedList
sl = SortedList(['e', 'a', 'c', 'd', 'b'])
# sl: SortedList(['a', 'b', 'c', 'd', 'e'])
sl *= 10_000_000
sl.count('c') # 10000000
sl[-3:] # ['e', 'e', 'e'] from sortedcontainers import SortedDict
sd = SortedDict({'c': -3, 'a': 1, 'b': 2})
# sd: SortedDict({'a': 1, 'b': 2, 'c': -3})
sd.popitem(index=-1) # ('c', -3) from sortedcontainers import SortedSet
ss = SortedSet('abracadabra')
# ss: SortedSet(['a', 'b', 'c', 'd', 'r'])
ss.bisect_left('c') # 2

25、radon:Python 代码质量分析工具。这是一款强大的 Python 代码度量工具,它能够计算多种代码指标,包括 McCabe 复杂度、Halstead 指标和可维护性指数,适用于 Python 代码质量评估和持续集成等场景。

$ radon cc sympy/solvers/solvers.py -a -nc
sympy/solvers/solvers.py
F 346:0 solve - F
F 1093:0 _solve - F
F 1434:0 _solve_system - F
F 2647:0 unrad - F
F 110:0 checksol - F
F 2238:0 _tsolve - F
F 2482:0 _invert - F
F 1862:0 solve_linear_system - E
F 1781:0 minsolve_linear_system - D
F 1636:0 solve_linear - D
F 2382:0 nsolve - C 11 blocks (classes, functions, methods) analyzed.
Average complexity: F (61.0)

Rust 项目

26、komorebi:Windows 的平铺窗口管理器。这是一款专为 Windows 设计的桌面窗口管理工具,支持自动平铺窗口、管理多个虚拟桌面和多显示器等功能,适用于 Windows 10 及更高版本。

27、min-sized-rust:优化 Rust 二进制文件大小的方法。Rust 构建时默认不会优化二进制文件的大小,该项目介绍了如何在保证 Rust 程序功能完整的同时,减少二进制文件体积的工具和技巧,适用于嵌入式和物联网等对程序体积敏感的场景。

28、readyset:Rust 开发的 SQL 数据库缓存引擎。该项目是采用 Rust 开发的 Postgres 和 MySQL 数据库缓存层,支持自动维护缓存、缓存复杂的 SQL 查询结果和保持数据实时同步等功能。使用时无需改动代码即可集成到现有的应用和数据库之间,显著提升查询性能。来自 @DeShuiYu 的分享

Swift 项目

29、ATV-Bilibili-demo:开源的 Apple TV 哔哩哔哩客户端。该项目是专为苹果电视(tvOS)设计的哔哩哔哩客户端,它可以用来观看 B 站上的视频、直播和弹幕,支持登录、投屏、搜索和历史记录等功能,就是安装有点麻烦。

30、PlayCover:在 Mac 上运行 iOS 游戏和应用的工具。该项目是专为 Apple Silicon Mac 设备(M 系列芯片)设计,用于运行 iOS 应用和游戏的工具。它通过模拟 iPad 环境和键盘映射功能,让用户可以在 Mac 电脑上玩 iOS 游戏,需自行下载 IPA 文件,适用于 macOS 12.0 或更高版本。

其它

31、dart_simple_live:简单易用的看直播工具。该项目可以让你在一个 APP 上看各种主流直播平台,并提供了 Android、iOS、macOS 和 Android TV 等客户端。

32、github-readme-terminal:用复古终端 GIF 展示 GitHub 个人资料。该项目可以根据你的 GitHub 个人数据,生成复古风格的电脑启动 GIF 动画,展示你的 GitHub 个人资料。

33、hugo-book:书籍风格的 Hugo 主题。这是一个开源的 Hugo 主题,能够帮助用户轻松创建类似书籍的文档网站。它拥有简洁的设计、适配移动端、支持多语言,适用于技术文档、在线教程和书籍等场景。

34、OMOTE:开源的通用遥控器。该项目是用 ESP32 制作的通用遥控器,它拥有 2.8 英寸电容触摸屏、2000 毫安电池和实体按键,支持红外、WiFi 和蓝牙连接方式,能够控制各种家电。

35、pintree:Chrome 书签变成导航站。该项目可以通过简单的几步,将 Chrome 浏览器的书签,转换成一个美观且易用的导航页面。由于生成的是静态网站,因此无法自动同步新增的书签。来自 @孤胆枪手 的分享

36、Scoop:Windows 命令行安装软件的利器。该项目是类似于 Homebrew 的 Windows 命令行安装工具。它可以从命令行安装应用程序,具有消除权限弹窗、隐藏 GUI 向导、自动处理依赖和防止污染 PATH 环境变量等特点。

scoop install sudo
sudo scoop install 7zip git openssh --global
scoop install aria2 curl grep sed less touch
scoop install python ruby go perl

开源书籍

37、introduction-to-git-and-github-ebook:《Git 和 GitHub 入门指南》。这是一本介绍 Git 和 GitHub 基础知识的开源书籍,内容包括安装 Git、GitHub CLI、分支管理和工作流程等实用知识。

38、machine-learning-for-trading:《Machine Learning for Algorithmic Trading》配套代码。这是一本关于如何将机器学习应用于交易策略的书籍,该项目是书籍的配套代码和资源,包含 150 多个代码示例,涵盖了数据采集、模型训练和策略评估等方面。

机器学习

39、gpt-computer-assistant:极简的 GPT-4o 客户端。该项目是适用于 Windows、macOS 和 Ubuntu 的 GPT-4o 客户端,它拥有极简的用户界面,支持执行多种任务,包括读取屏幕、打开应用、系统音频和文本输入等。

40、mem0:增强 LLM 上下文连续性的 Python 库。该项目能为多种主流的大型语言模型提供记忆层,它支持保存用户与 LLM 交互时的会话和上下文,并能实时动态更新和调整,从而增强 AI 的个性化,适用于学习助手、医疗助理和虚拟伴侣等需要长期记忆的个性化 LLM 应用。

from mem0 import Memory
m = Memory()
# Add
result = m.add("Likes to play cricket on weekends", user_id="alice", metadata={"category": "hobbies"})
# Search
related_memories = m.search(query="What are Alice's hobbies?", user_id="alice")
# Update
result = m.update(memory_id="m1", data="Likes to play tennis on weekends")

41、Retrieval-based-Voice-Conversion-WebUI:开箱即用的 AI 变声器。该项目是基于 VITS 的变声框架,仅需少量语音数据和普通的显卡,就能快速训练出高质量的语音转换模型。它提供了简单易用的 Web 和 GUI 界面,支持实时变声、人声和伴奏分离等功能。

最后

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

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

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

《HelloGitHub》第 100 期的更多相关文章

  1. 要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放

    要web开发精品教程吗?免费无广告一百期连讲的那种-逐浪CMS前端开发100期入门教程全面开放 大师主讲 经验难得 由逐浪CMS首席架构师发哥老师,亲自主理讲解. 历时一年精心打造, 汇聚了互联网诞生 ...

  2. py3+urllib+re,轻轻松松爬取双色球最近100期中奖号码

    通过页面源码,发现使用正则表达式可以很方便的获取到我们需要的数据,最后循环写入txt文件. (\d{2})表示两位数字 [\s\S]表示匹配包括“\r\n”在内的任何字符,匹配红球和蓝球之间的内容 具 ...

  3. 「NGK每日快讯」2021.2.11日NGK公链第100期官方快讯!

  4. 《HelloGitHub月刊》第01期

    <HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...

  5. 《HelloGitHub月刊》第 01 期

    <HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...

  6. 家里蹲大学数学杂志 Charleton University Mathematics Journal 官方目录[共七卷493期,6055页]

    家里蹲大学数学杂志[官方网站]从由赣南师范大学张祖锦老师于2010年创刊;每年一卷, 自己有空则出版, 没空则搁置, 所以一卷有多期.本杂志至2016年12月31日共7卷493期, 6055页.既然做 ...

  7. HelloGithub

    <HelloGithub月刊>第一期   <HelloGithub月刊> 因为现在这个项目只有我自己做,只敢叫“月刊”,希望有志同道合者,快点加入到这个项目中来!同时,如果您有 ...

  8. 【互动问答分享】第15期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    "决胜云计算大数据时代" Spark亚太研究院100期公益大讲堂 [第15期互动问答分享] Q1:AppClient和worker.master之间的关系是什么? AppClien ...

  9. 【互动问答分享】第13期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    “决胜云计算大数据时代” Spark亚太研究院100期公益大讲堂 [第13期互动问答分享] Q1:tachyon+spark框架现在有很多大公司在使用吧? Yahoo!已经在长期大规模使用: 国内也有 ...

  10. 【互动问答分享】第10期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    “决胜云计算大数据时代” Spark亚太研究院100期公益大讲堂 [第10期互动问答分享] Q1:Spark on Yarn的运行方式是什么? Spark on Yarn的运行方式有两种:Client ...

随机推荐

  1. 你好Avalonia框架

    https://docs.avaloniaui.net/docs/getting-started/ 起因公司事业部是做移动等营业厅办理相关业务,无纸化系统的.简单的说就是以前去营业厅办理业务都需要各种 ...

  2. 构建X264 .a 静态库 For iOS

    一.构建X264准备 1.下载X264源代码到本地,并解压.修改文件夹名称为x264 ftp://ftp.videolan.org/pub/x264/snapshots/ 2.下载gas-prepro ...

  3. 8.24考试总结(NOIP模拟47)[Prime·Sequence·Omeed]

    时间带着明显的恶意,缓缓在我的头顶流逝. T1 Prime 解题思路 成功没有签上到... 一看数据范围 \(R-L+1\le 10^7,R\le 10^{14}\) ,这肯定是判断范围内的数字是否可 ...

  4. rhcsa练习题容易错的地方

    rhcsa练习题容易错的地方 yum仓库的配置 注意 配置yum仓库的时候,baseurl的路径不要写错 dnf clean all && dnf makecache //检查错误 s ...

  5. QEMU EDU设备模拟PCI设备驱动编写

    环境安装 buildroot编译 buildroot下载,编译: 下载地址:Index of /downloads (buildroot.org) 下载版本:https://www.buildroot ...

  6. 引用(包含) import wxss样式

    引用(包含) 把模板定义到外部,然后多个页面间可以共用使用定义的模板WXML结构显示. https://developers.weixin.qq.com/miniprogram/dev/referen ...

  7. 讲课 PPT 公开啦

    目前限于时间原因,只在 Github Pages 上托管了. 之后有时间会托管到 pythonanywhere 上,因为 Github Pages 是在太慢了.

  8. 告别Word,用Python打造你的专业简历!

    今天给大家介绍下一个在纯 python 中构建简历的实用工具,工具的连接地址https://github.com/koek67/resume-builder/blob/main/readme.md 用 ...

  9. mongodb基于角色的访问控制

    https://www.mongodb.com/docs/v4.4/tutorial/enable-authentication/ https://www.mongodb.com/docs/manua ...

  10. 在线HMAC加密工具

    在线HMAC加密工具提供一站式服务,支持MD5至SHA512.RIPEMD160及SM3等多种哈希算法,用户可便捷选择算法并生成安全的HMAC散列值,确保消息完整性与验证来源.适用于开发调试.网络安全 ...