当前位置:   article > 正文

《HelloGitHub》第 84 期

github carbonyl

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

41bf915652c9de2458107121f6a54d73.png

简介

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

https://github.com/521xueweihan/HelloGitHub

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


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

C 项目

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

地址:https://github.com/mkirchner/linked-list-good-taste

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

4addf273b9d62b8ddcd240c62ab9b697.jpeg

地址:https://github.com/isometimes/rpi4-osdev

3、xdotool:模拟键盘和鼠标操作的命令行工具。该项目可以通过命令的方式,模拟键盘输入、鼠标点击,以及移动、聚焦和调整窗口大小等操作,搭配上 shell 就是 DIY 的按键精灵,支持 Ubuntu、macOS、FreeBSD 等系统。

  1. // 打字
  2. xdotool type "HelloGitHub"
  3. // 组合键
  4. xdotool key ctrl+l
  5. // 移动鼠标
  6. xdotool mousemove x y
  7. // 关闭窗口
  8. xdotool selectwindow windowclose

地址:https://github.com/jordansissel/xdotool

C# 项目

4、DnsServer:一款适用于多平台的 DNS 服务。它开箱即用无需配置,并提供了友好的 Web 界面和监控,支持 Docker 部署以及 Windows、Linux、macOS 和树莓派操作系统。

080c20f1bb1d438151195bcf35b7f42e.png

地址:https://github.com/TechnitiumSoftware/DnsServer

5、Flow.Launcher:Windows 的快速文件和程序启动器。这是一款可以让你的工作流程更加丝滑的工具,相当于 Mac 上的  Alfred。它能够快速启动应用,方便地搜索文件、书签等内容,支持扩展插件、预览文件、系统命令、游戏模式等功能。

1c3ecd75fb123b131af87968fa42ffa2.gif

地址:https://github.com/Flow-Launcher/Flow.Launcher

6、Playnite:一款开源的电脑游戏管理工具。支持同步 Steam、Epic、GOG、Battle.net 等平台的游戏,导入后该工具会自动从 IGDB 获取游戏信息,为你的游戏提供一个统一的界面。它的代码完全开源保证了你的账号安全,而且支持包括中文在内的多种语言,适用于 Windows7 及以上的操作系统。

e573bd678dc4b03cc918beb80d1a6c71.jpeg

地址:https://github.com/JosefNemec/Playnite

C++ 项目

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

49934eaf8c2d150be738485473ef76a1.png

地址:https://github.com/dragonflydb/dragonfly

8、moonlight-qt:让你可以在几乎任何设备上玩  PC 游戏的工具。该项目基于 NVIDIA GameStream 协议,通过串流的方式实现在 iOS、Android、电视等设备上玩电脑的 3A 大作。此过程手机无需下载和运行游戏,只需接收游戏画面、反馈操作指令。虽然安装过程有点复杂需要花些时间,但是为了躺着玩 PC 游戏一切都是值得的,感兴趣的小伙伴折腾起来吧!

3b17f24e2a493305ad3e758a93e5a5b0.jpeg

地址:https://github.com/moonlight-stream/moonlight-qt

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

地址:https://github.com/oceanbase/oceanbase

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

地址:https://github.com/rr-debugger/rr

Go 项目

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

f318da3ddf870351a065d07ffc516c6b.png

地址:https://github.com/alist-org/alist

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

d75f018760330daba59dc68fd32937e6.gif

地址:https://github.com/Lallassu/gorss

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

地址:https://github.com/securego/gosec

14、skopeo:能够管理远程仓库的容器镜像的工具。它能够查看远程仓库的容器镜像信息,以及执行复制、同步、删除等操作,支持 docker.io、quay.io、私有仓库等。

  1. $ skopeo inspect docker://registry.fedoraproject.org/fedora:latest
  2. {
  3.     ...
  4.     "Architecture""amd64",
  5.     "Os""linux",
  6.     "Layers": [
  7.         "sha256:2a0fc6bf62e155737f0ace6142ee686f3c471c1aab4241dc3128904db46288f0"
  8.     ],
  9.     "LayersData": [
  10.         {
  11.             "MIMEType""application/vnd.docker.image.rootfs.diff.tar.gzip",
  12.             "Digest""sha256:2a0fc6bf62e155737f0ace6142ee686f3c471c1aab4241dc3128904db46288f0",
  13.             "Size"71355009,
  14.             "Annotations": null
  15.         }
  16.     ],
  17.     "Env": [
  18.         "DISTTAG=f37container",
  19.         "FGC=f37",
  20.         "container=oci"
  21.     ]
  22. }

地址:https://github.com/containers/skopeo

15、yaegi:一款优雅的 Go 语言解释器。它是一个纯 Go、仅依赖标准库实现的 Go 解释器,拥有简单易用的 API,完全支持 Go 编程语言规范,以及 Go 1.18 和 1.19 版本。

  1. package main
  2. import (
  3.  "github.com/traefik/yaegi/interp"
  4.  "github.com/traefik/yaegi/stdlib"
  5. )
  6. func main() {
  7.  i := interp.New(interp.Options{})
  8.  i.Use(stdlib.Symbols)
  9.  _, err := i.Eval(`import "fmt"`)
  10.  if err != nil {
  11.   panic(err)
  12.  }
  13.  _, err = i.Eval(`fmt.Println("Hello Yaegi")`)
  14.  if err != nil {
  15.   panic(err)
  16.  }
  17. }
e02c43c4d0d71be6d8843b37df8214dc.png

地址:https://github.com/traefik/yaegi

Java 项目

16、AndroidBitmapMonitor:Android 的图片内存分析工具。它可以帮助开发者快速发现应用内加载的图片是否合理,比如大小是否合适、缓存是否及时清理、是否加载了当前并不需要的图片等等,支持在线下和线上使用。

e44dc989d50dad4bd09b329463601d1a.jpeg

地址:https://github.com/shixinzhang/AndroidBitmapMonitor

17、frostmourne:汽车之家开源的监控平台。采用 SpringBoot+MyBatis+XXL-JOB 构建的监控系统,支持接入 ES、HTTP、Prometheus、MySQL/TiDB 等多种数据源,以及钉钉、飞书、短信等多种报警消息发送方式。

cf2b944c70fd51fe5e5a18872dea2fa2.png

地址:https://github.com/AutohomeCorp/frostmourne

JavaScript 项目

18、koishi:一款极易扩展的聊天机器人框架。它提供了便利的控制台和插件市场,让你无需编程基础也可以开箱即用,几分钟内搭建出自己的聊天机器人,支持 QQ、Telegram、Discord、飞书等聊天平台。

1bf1e408631c543b2e28978d9ada5913.jpeg

地址:https://github.com/koishijs/koishi

19、nginx-proxy-manager:一款强大的 Nginx 可视化管理平台。它开箱即用支持 Docker 一键部署,可以让用户通过 Web 界面在线配置、管理 Nginx 服务,支持转发、重定向、SSL 证书、高级配置等功能。

b8272ab5d559a78f46c6822652f6930e.png

地址:https://github.com/NginxProxyManager/nginx-proxy-manager

20、qinglong:支持多种脚本语言的定时任务管理平台。这是一款定时执行脚本的平台,提供了在线管理脚本、环境变量、查看日志、秒级定时任务等功能,支持 Python3、JavaScript、shell 等脚本语言。

45397a048aa6f2475620eea5250cdb1d.png

地址:https://github.com/whyour/qinglong

21、snk:“吃光”你所有的 GitHub 贡献。它可以根据 GitHub 上的贡献图,自动生成蛇的行走路径,一口气吃光所有“绿块”,支持生成 gif 或 svg 格式的动图。

b7f52ad5828ee43b99da3ffb64027586.gif

地址:https://github.com/Platane/snk

22、uptime-kuma:一款极简的 uptime 监控工具。该项目可以用来监控服务正常运行时间,它界面美观、支持 Docker 一键部署,提供了中文界面、通知、多状态页面等实用功能。

d302639d901a234aab0e65bc7c8cf245.png

地址:https://github.com/louislam/uptime-kuma

PHP 项目

23、dujiaoka:PHP 写的开源自动售货系统。采用 Laravel+Bootstrap 实现的自动售卖虚拟产品的平台,比如兑换码、账号之类的数字商品,顾客付款后可以自动发货,已集成微信、支付宝、Paypal 等多种支付方式。

8361d5aa2fc4a8fce432987b01a85cb7.png

地址:https://github.com/assimon/dujiaoka

Python 项目

24、bar_chart_race:基于 Python 的动态条形图。通过该项目可以用 Python 创建条形图比赛动画,显示数据排名的动态条形图,直观地展示数据变化过程。

86369e866bae82aa036af54608372a2d.gif

地址:https://github.com/dexplo/bar_chart_race

25、dataset:为懒人准备的操作数据库的 Python 库。它基于 SQLAlchemy 构建了一个简单的数据层,可以让查询、写入、更新数据库中的数据,就像读写 JSON 文件一样简单,支持 SQLite、PostgreSQL 和 MySQL 数据库。

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

地址:https://github.com/pudo/dataset

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

6bab9c67d6eff07f9d09c7bd9869b592.png

地址:https://github.com/GreaterWMS/GreaterWMS

27、secretflow:蚂蚁开源的隐私计算框架。隐私计算即通过技术的手段实现数据在参与方可用不可见,让数据在安全和不泄露隐私的情况下流通、开放。该项目采用 Python 语言编写,支持包括 MPC、FL、TEE、HE、DP 在内的多种主流隐私计算技术。

4cab85c0bec2d4253895260ccf4a9b3a.png

地址:https://github.com/secretflow/secretflow

28、shynet:极简的网站分析平台。这是一个基于 Django 构建的网站分析平台,它很小、够用、界面友好、不追踪 cookie、支持多用户,追踪脚本不到 1KB。

519e969872f1660f52e7cafc5f28f402.png

地址:https://github.com/milesmcc/shynet

Rust 项目

29、carbonyl:运行在终端里的浏览器。这是一款基于 Chromium 的命令行浏览器,可以在终端里用浏览器的方式访问网页,支持图片、动图、视频、音频等内容。

f5624a362e767c6c96ebaf3f51f98ec4.gif

地址:https://github.com/fathyb/carbonyl

30、lsd:下一代 ls 命令。这个项目是用 Rust 重写的类似 ls 命令的查看目录清单的工具,同时增加了颜色、图标等新功能,更加赏心悦目。

778f3fa5dcb7c9b006a9a048ae9d85b8.png

地址:https://github.com/Peltoche/lsd

31、typst:比 LaTex 更好学的标记语言。这是一款新的基于标记语言的排版系统,它比知名的 LaTex 更加简洁、更容易上手,输出的公式也很漂亮,还可以更换各种字体。

685e184f3256d8333e9132b0a28c9547.png

地址:https://github.com/typst/typst

Swift 项目

32、DevToysMac:macOS 上的程序员瑞士军刀。该项目是 DevToys 的 macOS 版本,无需安装下载解压后即可使用。它同样实现了程序员日常开发会用到的功能,比如时间戳转化、Base64 编/解码、JSON 格式化等。

003860b6b9ea95cd909a8c102d6fecb9.png

地址:https://github.com/ObuchiYuki/DevToysMac

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

0c55f50d3b2a7da6dfe158e73b53e713.png

地址:https://github.com/wikimedia/wikipedia-ios

其它

34、.tmux:一份好看且通用的 tmux 配置文件。Tmux 是一个终端复用器,该项目包含了一份可以让 tmux 更漂亮、更好用的配置文件,以及详细的安装步骤。

b812403358ba81acc8773eb393e82543.gif

地址:https://github.com/gpakosz/.tmux

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

a947f8adacabda313d3cd0da85b1190b.png

地址:https://github.com/TakWolf/ark-pixel-font

36、bpf-developer-tutorial:从入门到进阶的 eBPF 开发者教程。这是一个基于 libbpf 和 CO-RE(一次编译,到处运行) 的 eBPF 教程,包括 eBPF 基本概念、代码实例、实际应用等内容,通过 20 个 eBPF 的小工具,来帮助开发者快速上手 eBPF。

地址:https://github.com/eunomia-bpf/bpf-developer-tutorial

37、ENGAGE:自制无电池的 GameBoy。该项目实现了没有电池、仅通过太阳能和游戏操作供电的 GameBoy。它可正常运行俄罗斯方块游戏,遇到电量耗尽时能保存游戏的当前进度,即重新启动游戏后,下落的方块会处于同一位置。是不是听起来很酷?这里包含制作该设备所需的一切,感兴趣的同学可以试一试。

bfb8c2a1c49aaa5bff08952429ac8d7f.png

地址:https://github.com/TUDSSL/ENGAGE

38、GameDevMind:全面的游戏开发技术图谱。该项目用思维导图的方式,展示了游戏开发需要具备的能力,包含技术栈、方法、工具、流程、管理、运营等方面。

地址:https://github.com/gonglei007/GameDevMind

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

0b9917ccb30ec7cf04f13bfd62dba06b.gif

地址:https://github.com/immersive-translate/immersive-translate

开源书籍

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

地址:https://github.com/johnlui/PPHC

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

09d319348b96f5898e292b815e1b1a1b.png

地址:https://github.com/learnbyexample/py_regular_expressions

机器学习

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

fe8cab2f46f4381f024f673ac61bc872.jpeg

地址:https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life

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

  1. >>> from transformers import AutoTokenizer, AutoModel
  2. >>> tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
  3. >>> model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()
  4. >>> model = model.eval()
  5. >>> response, history = model.chat(tokenizer, "你好", history=[])
  6. >>> print(response)
  7. 你好
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/975352
    推荐阅读
    相关标签
cppcmd=keepalive&