《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 上有趣的项目,就点击这里分享给大家伙吧!
以上就是本期的所有内容了,往期内容点击阅读,如果你觉得本期内容还不错的话 求赞、求分享 ️
《HelloGitHub》第 90 期的更多相关文章
- 「NGK每日快讯」2021.2.1日NGK公链第90期官方快讯!
- 《HelloGitHub月刊》第01期
<HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...
- 《HelloGitHub月刊》第 01 期
<HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...
- 家里蹲大学数学杂志 Charleton University Mathematics Journal 官方目录[共七卷493期,6055页]
家里蹲大学数学杂志[官方网站]从由赣南师范大学张祖锦老师于2010年创刊;每年一卷, 自己有空则出版, 没空则搁置, 所以一卷有多期.本杂志至2016年12月31日共7卷493期, 6055页.既然做 ...
- HelloGithub
<HelloGithub月刊>第一期 <HelloGithub月刊> 因为现在这个项目只有我自己做,只敢叫“月刊”,希望有志同道合者,快点加入到这个项目中来!同时,如果您有 ...
- 在 GitHub 学习,成长为自己想要的样子|HelloGitHub 访谈
万事开头难,我们经过长期的策划和筹备,终于推出了 HelloGitHub 采访系列「开源项目作者的访谈」.这是一个采访个人开源项目作者的栏目,内容侧重于开源项目作者与开源的故事. 我们深知想要做好一个 ...
- caffe 训练imagenet
1.整理得到自己的数据库,并生成自己数据库的列表文件.txt 2.将数据库转成lmbp格式 3.计算图像均值 4.修改网络参数 5.得到结果 1.整理得到自己的数据库 因为前面博文提到的原因,技术水平 ...
- LARC Caffe笔记(二) 训练自己的img
继看完 贺完结!CS231n官方笔记 上一次已经成功跑起caffe自带的例程,mnist和cifar10 但是终归用的是里面写好的脚本,于是打算训练自己的img 〇.目标 准备好food图片3类(出于 ...
- 高并发架构系列:如何从0到1设计一个类Dubbo的RPC框架
在过去持续分享的几十期阿里Java面试题中,几乎每次都会问到Dubbo相关问题,比如:“如何从0到1设计一个Dubbo的RPC框架”,这个问题主要考察以下几个方面: 你对RPC框架的底层原理掌握程度. ...
- GitHub 热点速览 Vol.17:在?各家视频会员要不要?
作者:HelloGitHub-小鱼干 摘要:经济实用,用作上周的 GitHub 热点的横批再合适不过.先不说 GitHub Trending 上不止一个的会员共享项目,免你找好友刷脸要会员,这项目实在 ...
随机推荐
- 某表格常用api
这是一个神奇的网站,可作为免费的数据存储平台,已白嫖多年 通过调用接口可以方便的实现增删改查.修改www前缀为vip,还能嫖vip服务器 我常常用来写入程序的日志记录,记录/更新一些关键key 不需要 ...
- 给你的 Discord 接入一个既能联网又能画画的 ChatGPT
如果有这样一款 Discord 机器人,它既能访问互联网,又能绘画,还能给 YouTube 视频提供摘要.最重要的是,它是完全免费的,不需要提供 OpenAI 的 API Key,我就问你香不香? 现 ...
- CentOs7安装部署Sonar环境(JDK1.8+MySql5.7+sonarqube7.8)
sonarqube安装前环境准备JDK1.8.MySql5.7. 一.JDK安装 1.下载jdk #打开下面的网址,选择 jdk-8u371-linux-x64.tar.gz 进行下载 (8u371版 ...
- Vue项目学习
一.二维数组尝试 var vm = new Vue({ el: "#app", data: { huilv:[ [6.8540, 132.9787, 1298.7013, 1.32 ...
- 前端热力图组件heatMapGD中国地图 中国热力地图 广东省热力地图 广东省地图 地市选择
快速实现前端中国热力地图 广东省热力地图 广东省地图, 请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12407 # china 广东省热力 ...
- 前后端分离实现注册+登录(Vue3.0 + Django3.2)
博客地址:https://www.cnblogs.com/zylyehuo/ 一.使用 vite+webstorm 搭建 Vue 环境,构建前端 1.结构树 2.main.js import { cr ...
- Anaconda 使用时,conda activate 失败
今天使用一台电脑上新安装的 anaconda 时,运行 conda activate, 出现如下报错: 错误提示中,说要把 . C:\ProgramData\Anaconda3\etc\profile ...
- CenOS 安装 mysql 临时密码 处理
数据库 版本 Server version: 8.0.26 MySQL Community Server - GPL:官网下载的包 wget https://cdn.mysql.com//Downlo ...
- Git:多人写作时,如何保证代码一致性
解决方案 git add . git commit -m "message" git pull origin develop # 拉取并合并dev分支上的代码 git push
- JS优化技巧,解决冗余代码
1. 使用箭头函数简化函数定义 // 传统函数定义 function add(a, b) { return a + b; } // 箭头函数简化 const add = (a, b) => a ...