爱好是最好的教师,HelloGitHub 让你对编程感爱好!

《HelloGitHub》第 84 期

简介

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

github.com/521xueweiha…

这儿有实战项目、入门教程、黑科技、开源书本、大厂开源项目等,涵盖多种编程言语 Python、Java、Go、C/C++、Swift…让你在短时刻内感受到开源的魅力,对编程发生爱好!


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

C 项目

1、linked-list-good-taste:Linus Torvalds 解说编码品味的链表证明。在 2016 年的 TED 访谈中,Linus Torvalds 谈到了他以为好的编码品味,并举了一个例子:在单向链表中移除项目的两种完结。为了从链表中删去第一项,其中一个完结需求处理特殊情况,而另一个则不需求,Linus 更喜欢后者。

2、rpi4-osdev:为树莓派 4 编写操作体系的教程。这是一份 RealVNC 的 CTO 在树莓派 4 裸机上,编写操作体系的教程。内容分为 15 个章节,每章完结操作体系的一个部分,并供给了源码和讲解。

《HelloGitHub》第 84 期

3、xdotool:模拟键盘和鼠标操作的指令行东西。该项目能够经过指令的办法,模拟键盘输入、鼠标点击,以及移动、聚焦和调整窗口巨细等操作,搭配上 shell 便是 DIY 的按键精灵,支撑 Ubuntu、macOS、FreeBSD 等体系。

// 打字
xdotool type "HelloGitHub"
// 组合键
xdotool key ctrl+l
// 移动鼠标
xdotool mousemove x y
// 关闭窗口
xdotool selectwindow windowclose

C# 项目

4、DnsServer:一款适用于多渠道的 DNS 服务。它开箱即用无需装备,并供给了友爱的 Web 界面和监控,支撑 Docker 布置以及 Windows、Linux、macOS 和树莓派操作体系。

《HelloGitHub》第 84 期

5、Flow.Launcher:Windows 的快速文件和程序启动器。这是一款能够让你的作业流程愈加丝滑的东西,相当于 Windows 上的 Alfred。它能够快速启动运用,方便地查找文件、书签等内容,支撑扩展插件、预览文件、体系指令、游戏模式等功用。

《HelloGitHub》第 84 期

6、Playnite:一款开源的电脑游戏办理东西。支撑同步 Steam、Epic、GOG、Battle.net 等渠道的游戏,导入后该东西会主动从 IGDB 获取游戏信息,为你的游戏供给一个一致的界面。它的代码彻底开源确保了你的账号安全,并且支撑包括中文在内的多种言语,适用于 Windows7 及以上的操作体系。

《HelloGitHub》第 84 期

C++ 项目

7、dragonfly:一款为取代 Redis 而生的内存数据库。它与当下最流行的两款内存数据库 Redis 和 Memcached 的 API 彻底兼容,所以无需修正代码即可完结搬迁。性能上更是爆破,官方表明单实例可支撑数百万量级的 QPS,并且吞吐量是 Redis 的 25 倍,并能够应对 TB 级别的内存数据集。

《HelloGitHub》第 84 期

8、moonlight-qt:让你能够在简直任何设备上玩 PC 游戏的东西。该项目根据 NVIDIA GameStream 协议,经过串流的办法完结在 iOS、Android、电视等设备上玩电脑的 3A 大作。此进程手机无需下载和运转游戏,只需接收游戏画面、反馈操作指令。虽然安装进程有点杂乱需求花些时刻,但是为了躺着玩 PC 游戏一切都是值得的,感爱好的小伙伴折腾起来吧!

《HelloGitHub》第 84 期

9、oceanbase:一款国产的原生分布式数据库。这是由蚂蚁集团开源的一款根据 Paxos 协议和分布式架构的企业级分布式关系型数据库。它一起支撑 OLTP 和 OLAP 的混合负载,具有高可用、高性能、水平扩展、兼容 SQL 语法等特点。

10、rr:Linux 上的轻量级 C/C++ 调试东西。这是一款 Linux 上的轻量级调试 C/C++ 代码的东西,支撑录制、重放和反向履行等操作,供给了一个可反复调试的环境,大大提升了调试功率。

Go 项目

11、alist:一款支撑多种存储的文件列表程序。它支撑一键安装,能够方便地聚合散落在各处的文件,轻松完结文件在线检查服务。支撑包括本地存储、阿里云盘、百度网盘、OneDrive 、WebDAV 等多种存储办法。

《HelloGitHub》第 84 期

12、gorss:一款用 Go 编写的指令行 RSS 阅览器。它简略易用隐蔽性强,支撑预览内容、浏览器打开链接、自定义快捷键、主题、单词高亮等功用。

《HelloGitHub》第 84 期

13、gosec:Go 言语源码安全检查东西。该项目经过扫描 Go 代码的 AST 检查源代码是否存在安全问题,能够发现源码中硬编码密码、XSS 和 SQL 注入等问题。

14、skopeo:能够办理远程库房的容器镜像的东西。它能够检查远程库房的容器镜像信息,以及履行复制、同步、删去等操作,支撑 docker.io、quay.io、私有库房等。

$ skopeo inspect docker://registry.fedoraproject.org/fedora:latest
{
    ...
    "Architecture": "amd64",
    "Os": "linux",
    "Layers": [
        "sha256:2a0fc6bf62e155737f0ace6142ee686f3c471c1aab4241dc3128904db46288f0"
    ],
    "LayersData": [
        {
            "MIMEType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
            "Digest": "sha256:2a0fc6bf62e155737f0ace6142ee686f3c471c1aab4241dc3128904db46288f0",
            "Size": 71355009,
            "Annotations": null
        }
    ],
    "Env": [
        "DISTTAG=f37container",
        "FGC=f37",
        "container=oci"
    ]
}

15、yaegi:一款优雅的 Go 言语解说器。它是一个纯 Go、仅依赖标准库完结的 Go 解说器,具有简略易用的 API,彻底支撑 Go 编程言语规范,以及 Go 1.18 和 1.19 版别。

package main
import (
	"github.com/traefik/yaegi/interp"
	"github.com/traefik/yaegi/stdlib"
)
func main() {
	i := interp.New(interp.Options{})
	i.Use(stdlib.Symbols)
	_, err := i.Eval(`import "fmt"`)
	if err != nil {
		panic(err)
	}
	_, err = i.Eval(`fmt.Println("Hello Yaegi")`)
	if err != nil {
		panic(err)
	}
}

《HelloGitHub》第 84 期

Java 项目

16、AndroidBitmapMonitor:Android 的图片内存剖析东西。它能够协助开发者快速发现运用内加载的图片是否合理,比方巨细是否适宜、缓存是否及时清理、是否加载了当时并不需求的图片等等,支撑在线下和线上运用。

《HelloGitHub》第 84 期

17、frostmourne:轿车之家开源的监控渠道。选用 SpringBoot+MyBatis+XXL-JOB 构建的监控体系,支撑接入 ES、HTTP、Prometheus、MySQL/TiDB 等多种数据源,以及钉钉、飞书、短信等多种报警消息发送办法。

《HelloGitHub》第 84 期

JavaScript 项目

18、koishi:一款极易扩展的谈天机器人结构。它供给了便利的控制台和插件商场,让你无需编程基础也能够开箱即用,几分钟内搭建出自己的谈天机器人,支撑 QQ、Telegram、Discord、飞书等谈天渠道。

《HelloGitHub》第 84 期

19、nginx-proxy-manager:一款强壮的 Nginx 可视化办理渠道。它开箱即用支撑 Docker 一键布置,能够让用户经过 Web 界面在线装备、办理 Nginx 服务,支撑转发、重定向、SSL 证书、高档装备等功用。

《HelloGitHub》第 84 期

20、qinglong:支撑多种脚本言语的守时使命办理渠道。这是一款守时履行脚本的渠道,供给了在线办理脚本、环境变量、检查日志、秒级守时使命等功用,支撑 Python3、JavaScript、shell 等脚本言语。

《HelloGitHub》第 84 期

21、snk:“吃光”你所有的 GitHub 奉献。它能够根据 GitHub 上的奉献图,主动生成蛇的行走途径,一口气吃光所有“绿块”,支撑生成 gif 或 svg 格式的动图。

《HelloGitHub》第 84 期

22、uptime-kuma:一款极简的 uptime 监控东西。该项目能够用来监控服务正常运转时刻,它界面美丽、支撑 Docker 一键布置,供给了中文界面、告诉、多状态页面等实用功用。

《HelloGitHub》第 84 期

PHP 项目

23、dujiaoka:PHP 写的开源主动售货体系。选用 Laravel+Bootstrap 完结的主动售卖虚拟产品的渠道,比方兑换码、账号之类的数字商品,顾客付款后能够主动发货,已集成微信、支付宝、Paypal 等多种支付办法。

《HelloGitHub》第 84 期

Python 项目

24、bar_chart_race:根据 Python 的动态条形图。经过该项目能够用 Python 创建条形图竞赛动画,显现数据排名的动态条形图,直观地展现数据变化进程。

《HelloGitHub》第 84 期

25、dataset:为懒人预备的操作数据库的 Python 库。它根据 SQLAlchemy 构建了一个简略的数据层,能够让查询、写入、更新数据库中的数据,就像读写 JSON 文件相同简略,支撑 SQLite、PostgreSQL 和 MySQL 数据库。

import dataset
db = dataset.connect('sqlite:///:memory:')
table = db['sometable']
table.insert(dict(name='John Doe', age=37))
table.insert(dict(name='Jane Doe', age=34, gender='female'))
john = table.find_one(name='John Doe')

26、GreaterWMS:可商用的开源库房办理体系。该项目是选用福特亚太区售后物流仓储供应链流程的库房体系,它供给了客户办理、订单办理、库存办理、供应商办理、盘点等模块,支撑手机、电脑等多种设备。

《HelloGitHub》第 84 期

27、secretflow:蚂蚁开源的隐私核算结构。隐私核算即经过技能的手法完结数据在参与方可用不可见,让数据在安全和不走漏隐私的情况下流转、敞开。该项目选用 Python 言语编写,支撑包括 MPC、FL、TEE、HE、DP 在内的多种主流隐私核算技能。

《HelloGitHub》第 84 期

28、shynet:极简的网站剖析渠道。这是一个根据 Django 构建的网站剖析渠道,它很小、够用、界面友爱、不追踪 cookie、支撑多用户,追踪脚本不到 1KB。

《HelloGitHub》第 84 期

Rust 项目

29、carbonyl:运转在终端里的浏览器。这是一款根据 Chromium 的指令行浏览器,能够在终端里用浏览器的办法拜访网页,支撑图片、动图、视频、音频等内容。

《HelloGitHub》第 84 期

30、lsd:下一代 ls 指令。这个项目是用 Rust 重写的类似 ls 指令的检查目录清单的东西,一起增加了色彩、图标等新功用,愈加赏心悦目。

《HelloGitHub》第 84 期

31、typst:比 LaTex 更好学的符号言语。这是一款新的根据符号言语的排版体系,它比知名的 LaTex 愈加简练、更简单上手,输出的公式也很美丽,还能够更换各种字体。

《HelloGitHub》第 84 期

Swift 项目

32、DevToysMac:macOS 上的程序员瑞士军刀。该项目是 DevToys 的 macOS 版别,无需安装下载解压后即可运用。它相同完结了程序员日常开发会用到的功用,比方时刻戳转化、Base64 编/解码、JSON 格式化等。

《HelloGitHub》第 84 期

33、wikipedia-ios:维基百科官方开源的 iOS 客户端。维基百科是一本线上的百科全书,这是它的 iOS 客户端,支撑查找资料、热门文章、保存文章、多言语、夜间阅览等功用。

《HelloGitHub》第 84 期

其它

34、.tmux:一份好看且通用的 tmux 装备文件。Tmux 是一个终端复用器,该项目包括了一份能够让 tmux 更美丽、更好用的装备文件,以及详细的安装过程。

《HelloGitHub》第 84 期

35、ark-pixel-font:开源的泛中日韩像素字体。为游戏开发供给了一套可用于正文的像素字体,现在完结了 1 万个左右的汉字(12px)。

《HelloGitHub》第 84 期

36、bpf-developer-tutorial:从入门到进阶的 eBPF 开发者教程。这是一个根据 libbpf 和 CO-RE(一次编译,到处运转) 的 eBPF 教程,包括 eBPF 基本概念、代码实例、实践运用等内容,经过 20 个 eBPF 的小东西,来协助开发者快速上手 eBPF。

37、ENGAGE:自制无电池的 GameBoy。该项目完结了没有电池、仅经过太阳能和游戏操作供电的 GameBoy。它可正常运转俄罗斯方块游戏,遇到电量耗尽时能保存游戏的当时进展,即重新启动游戏后,下落的方块会处于同一方位。是不是听起来很酷?这儿包括制造该设备所需的一切,感爱好的同学能够试一试。

《HelloGitHub》第 84 期

38、GameDevMind:全面的游戏开发技能图谱。该项目用思维导图的办法,展现了游戏开发需求具备的才能,包括技能栈、办法、东西、流程、办理、运营等方面。

39、immersive-translate:沉浸式双语网页翻译扩展。这是一个免费的翻译插件,能够在保存原文的情况下显现译文,支撑接入 10 多种翻译服务,适用于 Chromium、Firefox、Safari 等浏览器。项目处于闭源开发的状态,想要奉献代码的同学需求先请求。

《HelloGitHub》第 84 期

开源书本

40、PPHC:《高并发的哲学原理》。这本书讨论的是 Web 服务高并发问题,内容由浅入深地介绍了 Apache、Nginx、epoll、交换机、k8s、数据库、分布式、微服务架构等处理高并发问题的技能和方案。

41、py_regular_expressions:《Python 正则表达式从入门到通晓》。这本书包括数百个示例和练习,涵盖了 Python 正则表达式从初级到高档的用法。

《HelloGitHub》第 84 期

机器学习

42、Bringing-Old-Photos-Back-to-Life:经过深度学习修正老照片的东西。由微软开源的深度学习项目,可用于修正破损的老照片,修正效果显著。

《HelloGitHub》第 84 期

43、ChatGLM-6B:清华 KEG 开源的双语对话言语模型。这是一个根据 GLM 架构、具有 62 亿参数的中英双语对话言语模型,支撑在单张 2080Ti 上进行推理运用。

>>> from transformers import AutoTokenizer, AutoModel
>>> tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
>>> model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
>>> model = model.eval()
>>> response, history = model.chat(tokenizer, "你好", history=[])
>>> print(response)
你好!我是人工智能帮手 ChatGLM-6B,很快乐见到你,欢迎问我任何问题。

《HelloGitHub》第 84 期

44、DI-engine:OpenDILab 开源的决议方案 AI 渠道。这是一个根据 PyTorch 的通用决议方案智能引擎,为开发者供给了 60+ 种算法、40+ 类型环境。支撑各类定制化的训练和实践决议方案智能运用,比方游戏 AI、主动驾驶和生物序列猜测等。

《HelloGitHub》第 84 期

45、llama.cpp:在笔记本上运转 LLaMA 大模型。该项目完结了在 CPU 上流畅运转 LLaMA 模型,支撑 macOS、Linux、Windows 操作体系。

《HelloGitHub》第 84 期

最终

如果你发现了 GitHub 上有趣的项目,就点击这儿共享给大家伙吧!

以上便是本期的所有内容了,往期内容点击阅览

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

本文正在参与「金石方案」