GitHub 上有很多有趣、入门级的开源项目。涵盖多种编程语言 Python、Java、Go、C/C++、Swift…,如果你对编程感兴趣,那么可以让你在短时间内感受到开源的魅力。
C 项目
1、darktable:开源的摄影后期处理工具。这是一款免费且专业的摄影作品后期处理软件。它像一个虚拟的光桌和暗房,能够帮助摄影师存储数字底片、放大查看和检索照片。该软件可以显示照片的焦距和曝光度等信息,并支持编辑历史、地图模式和打印照片等功能。
地址:github.com/darktable-org/darktable
2、gnucash:完全开源的财务软件。这是一款适用于个人和小型企业的开源财务软件,它采用复式记账法,提供了简洁的操作界面,并支持生成报表、对账、多国货币,以及获取股票实时价格等功能,适用于 Windows、Linux 和 macOS 平台。
地址:github.com/Gnucash/gnucash
C# 项目
3、git-credential-manager:通用的 Git 凭据管理器。这是一个基于 .NET 开发的 Git 凭证存储和管理工具。它开箱即用、无需额外操作,使用 git 命令时,工具会自动引导完成登录,后续无需再次登录,轻松解决对远程 Git 仓库进行操作时遇到的需要登录和认证失败等问题,支持 GitHub、Bitbucket 和 GitLab 等平台。
地址:github.com/git-ecosystem/git-credential-manager
4、Lean:基于 C# 的量化交易引擎。这是一款采用 C# 编写的开源、经过实战考验的量化交易引擎。支持使用 Python3 或 C# 编写交易算法,兼容 Windows、Linux 和 macOS 平台,适用于量化交易策略研究、回测和实盘交易等场景。
地址:github.com/QuantConnect/Lean
5、space-station-14:开源游戏《14 号空间站》。该项目是经典游戏《Space Station 13》的开源重制版。在这款回合制多人角色扮演的游戏中,玩家可以选择各种角色,如工程师、船长和叛徒,并与其他玩家合作或竞争,在资源有限的环境中生存。
地址:github.com/space-wizards/space-station-14
6、subtitleedit:开源的视频字幕编辑工具。这是一款适用于 Windows 的免费视频字幕编辑器。它开箱即用且功能强大,支持创建、调整、同步和翻录字幕,还提供了自动翻译、字幕格式转换和语音识别等功能。
地址:github.com/SubtitleEdit/subtitleedit
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
地址:github.com/vslavik/diff-pdf
Go 项目
8、buildg:交互式的 Dockerfile 调试工具。该项是基于 BuildKit 的交互式调试 Dockerfile 的工具,支持设置断点、单步执行和非 root 模式,并且可以在 VSCode 等编辑器中使用。
地址:github.com/ktock/buildg
9、devzat:程序员专属的 SSH 聊天室。这是一个通过 SSH 连接的聊天室,用户无需安装客户端,仅需一条 SSH 命令即可登录。它支持私人消息、多聊天室、图片和代码高亮等功能,还可以集成第三方服务、自托管 SSH 聊天室。
地址:github.com/quackduck/devzat
10、expr:Go 语言的表达式库。该项目是专为 Go 语言设计的表达式语言和求值引擎,支持丰富的算子和高级函数,具有安全、无副作用和静态类型检测等特点。表达式是一行由变量、运算符和函数组成的代码,它能够简化复杂的计算任务,多用于动态配置和业务规则引擎等场景。
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)}
地址:github.com/expr-lang/expr
11、gdu:快速查看磁盘使用情况的命令行工具。这是一个用 Go 语言编写的磁盘使用分析器,它能够快速扫描并展示文件和目录所占用的磁盘空间,支持 TUI(默认)、非交互和导出三种使用方式。
地址:github.com/dundee/gdu
Java 项目
12、cryptomator:为你的云端文件“上锁”的工具。这是一款开源的云存储文件加密工具,支持 Dropbox、OneDrive 等主流云存储服务。它简单易用、跨平台、无需注册,采用 AES-256 加密上传至云存储的文件和目录,适用于需要备份数据至云端,又担心数据泄漏的场景。
地址:github.com/cryptomator/cryptomator
13、JarEditor:直接编辑 JAR 文件的 IDEA 插件。这是一款 IntelliJ IDEA 插件,让你无需解压即可直接编辑 JAR 文件中的 class 和资源文件。它支持添加、删除、重命名 JAR 包内的文件和目录,并提供了搜索和复制 JAR 包内容等功能,兼容 SpringBoot 和 Kotlin 项目。
地址:github.com/Liubsyy/JarEditor
14、PojavLauncher:Minecraft 游戏的 Android 启动器。该项目可以让你在 Android 上玩 Minecraft(我的世界),提供了离线和多人联机模式。它支持几乎所有版本的 Minercraft,还可以安装 Forge、Fabric 和 OptiFine 等模组和加载器。
地址:github.com/PojavLauncherTeam/PojavLauncher
JavaScript 项目
15、grapesjs:免费的可视化 Web 页面构建平台。该项目通过直观的可视化界面,让用户能够通过拖拽的方式,快速设计和构建网站的 HTML 模板。它所见即所得、移动端适配,适用于官网、新闻和 CMS 等类型的网站。
地址:github.com/GrapesJS/grapesjs
16、react-content-loader:轻松创建骨架屏的 React 组件。该项目是用于创建页面加载时的占位图 React 组件,它体积小、易定制,提供了多种预设样式和示例代码,拿来即用极易上手,支持 React、Vue 和 Angular 等主流框架。
import { Code } from 'react-content-loader'const MyCodeLoader = () => <Code />
地址:github.com/danilowoz/react-content-loader
17、Sink:基于 Cloudflare 带访问统计的短链平台。该项目是运行在 Cloudflare 上的短链接服务,支持网址缩短、访问分析和链接有效期等功能。
地址:github.com/ccbikai/Sink
18、typebot.io:自托管的聊天机器人构建器。该项目通过可视化的拖拽界面,让用户能够轻松创建高级聊天机器人,并将其嵌入网站中。它提供了 30 多种聊天构建块,支持自托管、分析工具、自定义域名和品牌定制等功能,适用于在线客服和销售支持等场景。
地址:github.com/baptisteArno/typebot.io
19、typed.js:极易上手的 JavaScript 打字动画库。该项目是专门用于创建打字动画效果的 JavaScript 库,它简单易用且 SEO 友好,支持删除效果、设置打字速度和循环次数等功能。
var typed = new Typed('.element', { strings: ["First sentence.", "Second sentence."], typeSpeed: 30});
地址:github.com/mattboldt/typed.js
Kotlin 项目
20、WiFiAnalyzer:用于分析 WiFi 信号的 Android 应用。该项目是用 Kotlin 写的 WiFi 分析工具,它提供了直观的图表展示 WiFi 网络情况,支持识别周围的 WiFi、测量信号强度和查看频道拥挤程度等功能。
地址:github.com/VREMSoftwareDevelopment/WiFiAnalyzer
Python 项目
21、buzz:音频转录与翻译工具。该项目是基于 Whisper 的音频转录和翻译工具,它开箱即用且操作简单,支持语音转文字、音频翻译、多种语言和离线使用,适用于 macOS、Windows 和 Linux 平台。
地址:github.com/chidiwilliams/buzz
22、helium:简化浏览器自动化的 Python 库。该项目是基于 Selenium 的轻量级 Python 库,它通过提供更高级和易用的 API,让用 Python 编写浏览器自动化脚本变得更加简单和方便,支持 Chrome 和 Firefox 浏览器。
地址:github.com/mherrmann/helium
23、jurigged:Python 的热重载工具。这是一个专为 Python 提供热重载功能的库,它支持在程序运行时修改和更新 Python 代码,无需重启程序。
# Loop over a functionjurigged --loop function_name script.pyjurigged --loop module_name:function_name script.py# Only stop on exceptionsjurigged --xloop function_name script.py
地址:github.com/breuleux/jurigged
24、python-sortedcontainers:更好用的 Python 排序集合库。该项目提供了 SortedList、SortedDict 和 SortedSet 三种数据结构,完全兼容 List、Dict、Set 内置数据类型的 API。尽管采用纯 Python 编写,其速度却可以媲美使用 C 扩展实现的 Python 库。
from sortedcontainers import SortedListsl = SortedList(['e', 'a', 'c', 'd', 'b'])# sl: SortedList(['a', 'b', 'c', 'd', 'e'])sl *= 10_000_000sl.count('c') # 10000000sl[-3:] # ['e', 'e', 'e']from sortedcontainers import SortedDictsd = SortedDict({'c': -3, 'a': 1, 'b': 2})# sd: SortedDict({'a': 1, 'b': 2, 'c': -3})sd.popitem(index=-1) # ('c', -3)from sortedcontainers import SortedSetss = SortedSet('abracadabra')# ss: SortedSet(['a', 'b', 'c', 'd', 'r'])ss.bisect_left('c') # 2
地址:github.com/grantjenks/python-sortedcontainers
25、radon:Python 代码质量分析工具。这是一款强大的 Python 代码度量工具,它能够计算多种代码指标,包括 McCabe 复杂度、Halstead 指标和可维护性指数,适用于 Python 代码质量评估和持续集成等场景。
$ radon cc sympy/solvers/solvers.py -a -ncsympy/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 - C11 blocks (classes, functions, methods) analyzed.Average complexity: F (61.0)
地址:github.com/rubik/radon
Rust 项目
26、komorebi:Windows 的平铺窗口管理器。这是一款专为 Windows 设计的桌面窗口管理工具,支持自动平铺窗口、管理多个虚拟桌面和多显示器等功能,适用于 Windows 10 及更高版本。
地址:github.com/LGUG2Z/komorebi
27、min-sized-rust:优化 Rust 二进制文件大小的方法。Rust 构建时默认不会优化二进制文件的大小,该项目介绍了如何在保证 Rust 程序功能完整的同时,减少二进制文件体积的工具和技巧,适用于嵌入式和物联网等对程序体积敏感的场景。
地址:github.com/johnthagen/min-sized-rust
28、readyset:Rust 开发的 SQL 数据库缓存引擎。该项目是采用 Rust 开发的 Postgres 和 MySQL 数据库缓存层,支持自动维护缓存、缓存复杂的 SQL 查询结果和保持数据实时同步等功能。使用时无需改动代码即可集成到现有的应用和数据库之间,显著提升查询性能。
地址:github.com/readysettech/readyset
Swift 项目
29、ATV-Bilibili-demo:开源的 Apple TV 哔哩哔哩客户端。该项目是专为苹果电视(tvOS)设计的哔哩哔哩客户端,它可以用来观看 B 站上的视频、直播和弹幕,支持登录、投屏、搜索和历史记录等功能,就是安装有点麻烦。
图片
地址:github.com/yichengchen/ATV-Bilibili-demo
30、PlayCover:在 Mac 上运行 iOS 游戏和应用的工具。该项目是专为 Apple Silicon Mac 设备(M 系列芯片)设计,用于运行 iOS 应用和游戏的工具。它通过模拟 iPad 环境和键盘映射功能,让用户可以在 Mac 电脑上玩 iOS 游戏,需自行下载 IPA 文件,适用于 macOS 12.0 或更高版本。
地址:github.com/PlayCover/PlayCover