《HelloGitHub》第 90 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!
简介
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。
这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!
以下为本期内容|每个月 28 号更新
C 项目
1、BlackHole:适用于 macOS 的虚拟音频驱动。在 macOS 上录制过视频的同学,应该都遇到过收录电脑声音的问题,采用公放的方式对环境要求极高。该项目是一款 macOS 上的虚拟音频驱动,它可以零延迟地将输出的音频传递给其他应用,从而不受周围环境的影响,轻松录制电脑的声音,支持 Intel 和 Apple 芯片。
2、c4:用 4 个函数实现的 C 语言编译器。该项目仅用了 500+ 行代码、4 个函数,就实现了一个小型 C 语言编译器。但因为它的代码过于精简,所以源码阅读起来并不轻松。
C# 项目
3、optimizer:超好用的 Windows 优化器。这是一款强大的 Windows 系统优化工具,它体积小、功能丰富,支持包括中文在内的 22 种语言,能够禁用不必要的 Windows 服务、删除多余的启动程序、关闭用不到的功能,提升 Windows 系统的使用体验和性能。
4、Translumo:免费开源的屏幕实时翻译工具。该项目可以对屏幕上选定区域内显示的文本进行实时翻译,可识别英语、俄语、中文等语言。用户可自行选择 Tesseract、WindowsOCR、EasyOCR 多种 OCR 引擎,以及包括谷歌翻译在内的多种翻译源。
C++ 项目
5、duckdb:一款类似 SQLite 的分析型数据库。该项目是用 C++ 写的 OLAP(联机分析处理)数据库,没有外部依赖项、不作为独立进程运行,可以看作是 OLAP 版本的 SQLite。它方便、快速、易于使用,提供了丰富的 SQL 方言,支持 JOIN、聚合、窗口函数、直接查询 CSV 和 JSON 文件等功能。
SELECT * FROM 'HelloGitHub.csv'; SELECT * FROM 'HelloGitHub.parquet';
6、kakoune:一款神似 Vim 的代码编辑器。拥有极简的界面和便捷的编辑模型的代码编辑器,虽然它的设计灵感源自 Vim,但在功能和交互性上“青出于蓝而胜于蓝”。操作上更加的快捷方便,默认支持语法高亮、自动补全等功能,适用于 Linux 和 macOS 操作系统。
7、SafeLine:一款简单好用的 Web 应用防火墙。该项目底层基于 Nginx 的 Web 网关,作为反向代理接入网络。采用智能语意分析算法,清洗来自黑客的恶意流量,保护你的网站不受黑客攻击。它安装简单、免费版功能够用,但项目仅开源了核心算法和底层引擎。来自 @孤胆枪手 的分享
8、smartknob:自己动手制作一款触感智能旋钮。这是一款开源的智能旋钮设备,可自定义端点位置、虚拟制动、触觉反馈,并带有一个圆形 LCD,十分炫酷好玩。
9、typesense:一款快如闪电的开源搜索引擎。该项目是用 C++ 编写的即时搜索引擎,具有开箱即用、搜索速度快、自动更正拼写错误、地理搜索、默认分词器支持中文等特点。
CSS 项目
10、pokemon-cards-css:炫酷的神奇宝贝卡牌 CSS 效果。该项目是口袋怪兽卡高级 CSS 样式集合,使用了 3D 变换、滤镜、渐变等技术,实现了眩光、纹理、银河全息、垂直光束等效果。
Go 项目
11、asynq:纯 Go 写的简单、可靠的分布式任务队列。这是一个基于 Redis 的轻量级异步任务队列,它会为每个任务启动一个 goroutine,支持任务失败重试、优先级队列、定时任务、唯一任务等功能。
12、carbon:一个对开发者友好的 Go 时间处理库。这是一个功能丰富、容易上手的 Go 时间库,支持时间转换、时间差、时间旅行、星座、季节、农历、多语言等功能。
lang := carbon.NewLanguage() lang.SetLocale("zh-CN") c := carbon.SetLanguage(lang) if c.Error != nil { // 错误处理 log.Fatal(err) } c.Now().AddHours(1).DiffForHumans() // 1 小时后 c.Now().AddHours(1).ToMonthString() // 八月 c.Now().AddHours(1).ToShortMonthString() // 8月 c.Now().AddHours(1).ToWeekString() // 星期二 c.Now().AddHours(1).ToShortWeekString() // 周二 c.Now().AddHours(1).Constellation() // 狮子座 c.Now().AddHours(1).Season() // 夏季
13、nezha:国产的轻量级服务器监控工具。这是一款名为“哪吒”的服务器监控面板,它安装简单、开箱即用,支持监控多个服务器的系统状态、SSL 证书状态、报警通知、流量监控、设置定时任务等功能,适用于 Linux、Windows、macOS、OpenWRT 等主流系统。来自 @两双筷子sqldc 的分享
14、sonyflake:Go 语言的分布式 ID 生成库。该项目是索尼开源的分布式唯一 ID 生成器,灵感来自知名的 Twitter 雪花算法(Snowflake)。它比 Snowflake 慢,但拥有更长的寿命,可以在更多的机器上工作,适用于更大的分布式集群。
Java 项目
15、Algorithms:一个用 Java 实现的算法和数据结构的集合。算法和数据结构的重要性无需多言,该项目提供了常见的数据结构和算法最简单、优雅的 Java 代码实现,不管是用于学习还是开发都是不错的选择。来自 @孤胆枪手 的分享
16、Stirling-PDF:允许对 PDF 文件做各种操作的 Web 应用。这是一款功能强大、开箱即用的 PDF 工具,支持拆分/合并文件、添加/提取图片、压缩、加水印、添加/删除密码等功能,满足你对 PDF 文件的所有需求。
JavaScript 项目
17、Bangumi:类似豆瓣的二次元爱好者社区客户端。这是一个基于 React Native 构建的二次元社区 Bangumi 第三方客户端。它免费、无广告、因爱好而生、专为移动端设计,支持番组进度管理、用户动态、贴吧、搜索、排行榜、标签等功能。
18、deprank:通过 PageRank 找到代码库中最重要的文件。该项目基于 PageRank 算法和源文件依赖关系,找到 JavaScript/TypeScript 代码仓库中被依赖最多的文件。
19、json-server:仅需 30 秒、不用写代码就能模拟接口数据。这是一款小巧的接口模拟工具,它使用起来十分简单,只需创建 JSON 文件,然后一条命令就能快速启动接口服务。
# 安装 npm install -g json-server # 启动 json-server --watch db.json
20、mind-map:一个好用的 Web 思维导图。该项目包含一个不依赖任何框架的思维导图 JavaScript 库,以及一个采用 Vue.js+ElementUI 开发的支持本地部署、功能丰富的在线思维导图应用。
import MindMap from "simple-mind-map"; const mindMap = new MindMap({ el: document.getElementById('mindMapContainer'), data: { "data": { "text": "根节点" }, "children": [] } });
21、yunxiaozhi:一款开源的校园教务查询微信小程序。该项目是由学生开发的智慧校园小程序,支持课程表查询、成绩查询、考试安排、空教室查询、水电查询等功能。
Kotlin 项目
22、gkd:自定义屏幕点击的 Android 应用。该项目是基于无障碍功能的手机自动点击工具,支持自定义或订阅点击规则,可用来自动完成点击跳过广告、同意按钮、领红包等操作。
Python 项目
23、argos-translate:用 Python 写的开源离线翻译库。该项目是基于 OpenNMT(神经网络机器翻译框架)的离线翻译 Python 库,它不依赖任何第三方翻译接口,支持翻译包括中文在内的 30 多种语言。
import argostranslate.package import argostranslate.translate from_code = "en" to_code = "es" # Download and install Argos Translate package argostranslate.package.update_package_index() available_packages = argostranslate.package.get_available_packages() package_to_install = next( filter( lambda x: x.from_code == from_code and x.to_code == to_code, available_packages ) ) argostranslate.package.install_from_path(package_to_install.download()) # Translate translatedText = argostranslate.translate.translate("Hello World", from_code, to_code) print(translatedText) # '¡Hola Mundo!'
24、mwmbl:一个用 Python 写的开源、非营利搜索引擎。这是一款采用 pandas、FastAPI、scikit-learn、jusText 构建的非营利、无广告、无跟踪的小型搜索引擎,它界面简约、速度快,搜索结果无“外界因素”干扰。
25、prettymaps:绘制好看的地图海报的 Python 库。该项目可以将 OpenStreetMap 的地图数据绘制成漂亮的地图海报,上手简单可自定义填充颜色。
26、webdriver_manager:轻松管理 WebDriver 的 Python 库。经常写爬虫的小伙伴应该都遇到过找 WebDriver 路径的情况吧!用了这个项目,将无需一次又一次地重复寻找 WebDriver 在哪里啦。
# 之前 from selenium import webdriver driver = webdriver.Chrome('/home/user/drivers/chromedriver') # 现在 from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install())
27、youre-the-os:模拟计算机操作系统的游戏。这是一个 Python 写的 Web 游戏,在游戏中玩家扮演的是一台计算机的操作系统。玩家必须通过管理进程、内存和 I/O 事件,不让进程闲置太久,因为进程等待太久就会退出,如果退出的进程达到一定数量后,计算机就会重启则游戏失败。
Ruby 项目
28、docuseal:开源的文件在线签署平台。这是一款用 Ruby 写的在线签署文件平台,它开箱即用、容易上手、移动端友好,支持拖拽的方式创建 PDF 表单、在线填写和签名、自动发送邮件、用户管理等功能。
Rust 项目
29、lettura:极简的开源 RSS 阅读器。这是一款基于 Tauri 开发的桌面 RSS 阅读器,它免费、无广告、界面清爽,适用于 macOS 和 Windows 操作系统。
30、privaxy:Rust 写的跟踪和广告拦截工具。该项目基于 MITM 中间人攻击原理,在两端之间建立双向隧道,通过过滤 URL 地址阻止广告的请求,实现拦截广告的效果。它占用内存少、速度快,支持自动更新过滤列表、统计信息显示、自定义过滤列表等功能。
Swift 项目
31、TomatoBar:精致的 macOS 菜单栏番茄时钟。这是一款 macOS 上的番茄时钟应用,它小巧精致、界面简洁,支持设置工作和休息间隔、提示音、全局热键等功能。
32、XcodesApp:Xcode 安装和切换的实用工具。Xcode 是 macOS 系统向开发人员提供的集成开发环境,该项目可以轻松安装和切换各个版本的 Xcode,采用 aria2 下载速度更快,Xcode 发行版数据来自苹果官网。
其它
33、catppuccin:超看好的主题配色方案。该项目是由社区驱动的配色方案,内含以暖色调为主、色彩丰富的主题,可用于 VSCode、JetBrains、Vim 等编辑器和 IDE,同样适用于各种编程语言的开发库、终端、操作系统、浏览器等应用。
34、keyviz:一款免费的实时键鼠输入可视化软件。该项目可以将鼠标和键盘的操作展示到屏幕上,让观众可以看到你的键鼠操作。适用于截图、录制视频、演示和协作等场景,支持 Windows、Linux 和 macOS 操作系统。
35、LearnPrompt:免费开源的 AIGC 课程。该项目对新手友好、无需 AI 知识也可轻松学习,它不仅会传授如何用好 AIGC,还会深入讨论 AI 相关的知识,内容包括 ChatGPT、Runway、Midjourney、Stable Diffusion、AI 数字人等方面。
36、python-weekly:Python 潮流周刊。这是一份由「豌豆花下猫」制作的每周更新的 Python 周刊,内容包括 Python 的精品文章、教程、开源项目、工具、视频和热门话题等。
37、TechStack:显示 GitHub 项目所用技术栈的浏览器插件。该项目可以展示用户正在访问的 GitHub 仓库的技术栈,帮助用户快速了解项目的更多信息。来自 @CorrectRoadH 的分享
38、webgl-fundamentals:从基础理论讲起的 WebGL 教程。这是一份从基础的数学知识讲起的 WebGL 系列教程,内含中文翻译版本。
开源书籍
39、css-animation-101:《CSS 动画入门秘籍》。这本书主要是介绍 CSS 中的动画(CSS animation),内容包含什么是 CSS animation、transition 属性、如何制作复杂的动效以及丰富的示例,教会你如何将 CSS 动画应用到你的项目中。
40、how-to-write-makefile:《跟我一起写 Makefile》。该项目是陈皓整理自《GUN Make Manual 》的系列文章 PDF 重制版,作者对其进行了排版优化、代码高亮等操作,阅读起来更加舒服,可作为初学者上手 Makefile 的教程。
机器学习
41、hcaptcha-challenger:优雅地处理 hCaptcha 验证码的库。该项目不依赖浏览器插件和第三方反验证码服务,通过机器学习的方式处理 hCaptcha 验证码。它采用 ResNet 和 YOLOv8 处理分类和检测问题,通过 ONNX 打包模型降低使用门槛,让用户可在没有 GPU 的设备上运行代码,且无需安装 PyTorch 等依赖,优雅地面对 hCaptcha 验证码。来自 @QIN2DIM 的分享
import os from pathlib import Path import hcaptcha_challenger as solver # Init local-side of the ModelHub solver.install() # Challenge prompt of binary challenge prompt = "diamond bracelet" # Load challenge images, assuming you've already downloaded them. label_dir = Path(__file__).parent.joinpath("diamond_bracelet") images = [label_dir.joinpath(fn).read_bytes() for fn in os.listdir(label_dir)] def bytedance(): classifier = solver.BinaryClassifier() # type: List[bool | None] # IF True --> click image # ELIF False --> bypass image # ELSE --> Something err if result := classifier.execute(prompt, images): for i, name in enumerate(os.listdir(label_dir)): print(f"{name} - {result[i]}") if __name__ == "__main__": bytedance()
42、jax:谷歌开源的高性能科学计算库。这是一个结合了即时编译(JIT)、自动求导(Autograd)、线性代数编译器(XLA) 的数值计算 Python 库,用法和 NumPy 差不多。但 JAX 更快、更省内存,支持自动微分、自动向量化、并行计算等功能。
from jax import grad import jax.numpy as jnp def tanh(x): # Define a function y = jnp.exp(-2.0 * x) return (1.0 - y) / (1.0 + y) grad_tanh = grad(tanh) # Obtain its gradient function print(grad_tanh(1.0)) # Evaluate it at x = 1.0 # prints 0.4199743 # 自动求导 print(grad(grad(grad(tanh)))(1.0)) # prints 0.62162673
43、sd-webui-EasyPhoto:你的智能 AI 照片生成工具。这是一款用于生成 AI 肖像画的 WebUI 插件,可用于生成专业质感的照片,相当于免费、可本地部署的妙鸭相机。
最后
感谢无私分享开源项目的小伙伴们,欢迎更多的开源爱好者来 HelloGitHub 自荐/推荐开源项目。如果你发现了 GitHub 上有趣的项目,就点击这里分享给大家伙吧!
以上就是本期的所有内容了,往期内容点击阅读,如果你觉得本期内容还不错的话 求赞、求分享 ❤️

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
恶搞: 高效能软件工程师的 7 个习惯
有一个文章《高效能软件工程师的 7 个习惯》 https://www.oschina.net/news/259604/7-habits-of-highly-effective-software-engineers 快速将想法打造出原型,进行概念验证 恶搞:太浪费时间,对于2周一次迭代来说,根本没有时间原型。 原型失败就得不偿失。快速构建的项目是不可能失败的,或者越失败、混沌,对你越有利 有效评估工作量 恶搞:工作量评估看场景,如果争取新项目,当然评估比别人更短点,这样,你可以负责项目,如果是老项目维护,交接项目,当然要悲观点评估。准确评估对自己没有好处。与其花太长时间评估肯定导致不准,还不如按照自己需要评估 快速且及时地 review 代码 恶搞:看过此文章的人自问,真的Review别人代码了么?别人真有时间Review你代码?大部分连Review自己代码都没有。 主动记录代码、设计和流程,形成文档 恶搞:浪费时间,且没人看。过不了3个月就是垃圾 。 且,你记录的清楚,那就容易被替代,我就是那个写好代码,写好单元测试,写好文档,然后被赶到下一个项目,下下个项目的程序员。 坦诚地参与技术...
- 下一篇
Dubbo源码浅析(一)—RPC框架与Dubbo | 京东云技术团队
一、什么是RPC 1.1 RPC概念 RPC,Remote Procedure Call 即远程过程调用,与之相对的是本地服务调用,即LPC(Local Procedure Call)。本地服务调用比较常用,像我们应用内部程序**(注意此处是程序而不是方法,程序包含方法)**互相调用即为本地过程调用,而远程过程调用是指在本地调取远程过程进行使用。 而RPC框架就是为了帮助我们在本地调用远程过程时,就像调用本地过程一样方便。 1.2 RPC与Http的关系 用一句话来总结就是: RPC是一种概念,http是一种协议,可以认为http是Rpc的一种实现,或者Rpc包含了http。为什么说包含而不是相等,是因为Rpc还有很多基于自定义的Tcp的协议,例如Dubbo等,而我们常说的rpc即指的除Http之外的基于tcp自定义的协议。 1.3 关于Rpc的思考 网上关于Rpc与Http的相关文章并不少,很多人在解释RPC概念时会提到其是执行远程的方法,然后直接得出rpc包含http的结论。其实如果按照此概念去思考的话,其实并不能得出Http是Rpc的一种实现。因为http调用的方式,从使用者的角...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8