《HelloGitHub》第 86 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!
简介
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。
这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!
以下为本期内容|每个月 28 号更新
C 项目
1、linux-wifi-hotspot:功能丰富的 Linux WiFi 热点工具。这是一款拥有图形化操作界面的 Wi-Fi 创建器,它使用方便、功能丰富,支持命令行、创建热点、二维码分享网络、查看已连接设备等功能。
2、progress:查看 Linux 命令执行进度的工具。这是一个可以查看 cp、mv、dd、tar 等命令执行进度的 Linux 工具,它可以显示已处理数据的百分比、处理速度和预计完成时间,并提供了类似 top 的监控模式。
C# 项目
3、Opserver:Stack Exchange 团队开源的监控系统。这是一个采用 .Net 开发的轻量级监控系统,它可以监控包括服务器、日志、SQL Server 集群、Redis 在内的多种服务,支持修改 JSON 配置文件自定义仪表盘展示。Stack Exchange 也是一个网站,它和程序员常用的 Stack Overflow 背后都是同一家公司。
4、SophiApp:一款强大的 Windows 微调工具。这是一个用于微调 Windows 10 和 Windows 11 配置的调整器。它拥有现代化的操作界面,在保证系统稳定的前提下,提供了超过 130 种的调整选项。
C++ 项目
5、azerothcore-wotlk:启动你专属的魔兽世界服务。它是用 C++ 编写的开源魔兽世界(WoW)服务器端,支持经典的巫妖王之怒(3.3.5a)游戏版本和 Docker 启动。该项目由社区驱动,运行稳定、社区活跃、对新手友善。
6、kdeconnect-kde:Linux 上的设备互联工具。这是一款由 KDE(知名 Linux 桌面环境) 开源的,方便手机与电脑实现无线互联的应用。支持手机和电脑之间共享剪贴板、通知、文件、运行命令等功能,还可以将手机作为电脑的触控板、键盘和幻灯片遥控器等外接设备。
7、pybind11:简化 Python 调用 C++ 代码的库。这是一个仅头文件的 C++ 库,它可以将 C++ 代码转化成 Python 可直接引用的模块,轻松实现 Python 调用 C++ 代码。通过这种混合编程的方式,可以提高 Python 代码的性能。
手动编译 C++ 代码
$ c++ -O3 -Wall -shared -std=c++11 -fPIC $(python3 -m pybind11 --includes) example.cpp -o example$(python3-config --extension-suffix)
然后在 Python 代码中直接 import 即可使用
$ python
Python 3.9.10 (main, Jan 15 2022, 11:48:04)
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import example
>>> example.add(1, 2)
3
8、wondertrader:一站式的量化交易框架。这是采用 C++ 开发的一站式量化交易框架,支持量化交易过程中的数据清洗、回测分析、实盘交易、运营调度等环节。可用于多账户交易、极速/高频交易、算法交易等场景。
Go 项目
9、1Panel:现代化、开源的 Linux 服务器运维管理面板。这是一款 Go 写的 Linux 服务器的在线管理系统,它安装简单、安全可靠,同时集成了 WordPress 等应用、域名绑定、SSL 证书配置、备份等功能,支持快速建站。来自 @llei.wang 的分享
10、gitpod:随时准备好编码的云开发环境。这是一个提供在线开发环境的 K8s 应用程序,通过配置文件可以快速地为 GitHub、GitLab 上的项目,创建一个集成了在线 IDE、库、依赖项等工具的在线开发环境。
11、LocalAI:OpenAI 的本地替代品。一个实现了在个人电脑上运行 LLM 模型,并集成了服务接口和在线聊天界面的项目。虽然效果无法和 GPT-4 媲美,但它开箱即用且免费,支持 Vicuna、Alpaca、GPT4ALL 等模型。
# Clone LocalAI
git clone https://github.com/go-skynet/LocalAI
cd LocalAI
# (optional) Checkout a specific LocalAI tag
# git checkout -b build <TAG>
# Download gpt4all-j to models/
wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O models/ggml-gpt4all-j
# Use a template from the examples
cp -rf prompt-templates/ggml-gpt4all-j.tmpl models/
# (optional) Edit the .env file to set things like context size and threads
# vim .env
# start with docker-compose
docker-compose up -d --pull always
# or you can build the images with:
# docker-compose up -d --build
# Now API is accessible at localhost:8080
curl http://localhost:8080/v1/models
# {"object":"list","data":[{"id":"ggml-gpt4all-j","object":"model"}]}
curl http://localhost:8080/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "ggml-gpt4all-j",
"messages": [{"role": "user", "content": "How are you?"}],
"temperature": 0.9
}'
# {"model":"ggml-gpt4all-j","choices":[{"message":{"role":"assistant","content":"I'm doing well, thanks. How about you?"}}]}
12、minikube:一条命令在本机启动 Kubernetes 集群的工具。一个可以在本地轻松运行 K8s 集群的工具,它支持标准的 Kubernetes 功能,可作为本地开发 Kubernetes 应用程序的工具,适用于 macOS、Linux 和 Windows 操作系统。
13、nexttrace:一款可视化路由跟踪工具。该项目默认使用 ICMP 协议发送 TraceRoute 请求,特点是显示经过路由器的 IP、地理位置和耗时,以及在地图上以可视化的方式显示路径。
Java 项目
14、jetlinks-community:一个全响应式的企业级物联网平台。基于 Spring Boot 开发的一款开箱即用、可二次开发的企业级物联网基础平台。支持不同设备的统一接入、规则模型配置、数据权限控制等功能。来自 @孤胆枪手 的分享
15、open-java:纯字符 3D 画面的空战游戏。这是一款采用 Java Swing 开发的基于小孔成像原理与图形光栅化的字符 3D 画面框架构建的空战游戏,简单说就是作者为了做个 3D 字符空战游戏,顺手写了个 3D 引擎,别人的本科毕设。
16、PlayEdu:一款 Java 写的内部培训系统。这是一款基于 SpringBoot+React 开发而成的视频培训系统,它界面清爽、交互流畅,支持上传资源、创建部门、添加学员、指派课程等功能,可用于企业和机构搭建内部培训平台。来自 @Markjune2022 的分享
JavaScript 项目
17、dub:功能丰富的短链接管理平台。采用 Next.js+Tailwind CSS 构建的短链接平台,可用于创建、追踪、分析短链接,支持地理位置统计、自定义域名、生成二维码等功能。
18、EasySpider:一款可视化爬虫工具。该项目可以让用户在图形化界面下,无需写代码实现自动采集/爬虫的功能。用户只需要在网页上选择想要爬的内容,并根据提示框操作即可完成爬虫的设计和执行。
19、lossless-cut:视频/音频无损编辑的工具。该项目支持快速、无损地切割/合并大型视频和音频文件,比如摄像机、GoPro、无人机等设备录制的原始文件都很大,通过粗剪可以减小文件体积、节省空间。来自 @coolxy 的分享
20、morjs:微信/支付宝小程序扩展到多端的框架。这是饿了么开源的一款基于小程序 DSL 的多端研发框架,该项目能根据微信或支付宝小程序的源码,编译出在不同平台(微信/支付宝/百度/字节/钉钉/快手/QQ/淘宝)流畅运行的小程序。来自 @BboyZaki 的分享
21、ts-config-helper:TypeScript 配置可视化工具。该项目提供了 TypeScript 配置解析、可视化、文档查阅等功能,帮你快速、准确地生成 tsconfig.json 文件。
PHP 项目
22、upload-labs:用于练习上传漏洞的靶场。这是一个采用 PHP 语言编写的用于练习上传漏洞的在线靶场。它收集了渗透测试和 CTF 中遇到的各种上传漏洞的靶场。目前一共 20 关,每一关都包含着不同上传方式。
23、wallabag:保存网页稍后阅读的应用。这是一款能够将网络上的文章下载到本地离线保存的应用,它完全免费、拥有中文界面和移动端,让你可以随时随地阅读自己保存的文章。
Python 项目
24、domain-admin:域名和 SSL 证书监测平台。采用 Flask+peewee+Vue3 构建的域名和 SSL 证书到期监测平台,支持批量导入域名、多域名管理、到期通知等功能。
25、donkeycar:构建自动驾驶模型车的开源平台。一个由遥控模型车(RC CAR)、树莓派、Python 组成的 DIY 自动驾驶平台,可用于实现自动驾驶的玩具车。该项目官网还提供了完整的配套硬件,大概需要 250 美元,组装时间约 2 个小时。
26、musicpy:用 Python 创作音乐。该项目可以用简洁的 Python 代码生成一段音乐,它提供了和弦、音符和音阶等几个基本类型,需要具备一定的音理基础才能上手。
from musicpy import *
# 尼龙弦吉他分解和弦演奏一个和弦进行
guitar = (C('CM7', 3, 1/4, 1/8)^2 |
C('G7sus', 2, 1/4, 1/8)^2 |
C('A7sus', 2, 1/4, 1/8)^2 |
C('Em7', 2, 1/4, 1/8)^2 |
C('FM7', 2, 1/4, 1/8)^2 |
C('CM7', 3, 1/4, 1/8)@1 |
C('AbM7', 2, 1/4, 1/8)^2 |
C('G7sus', 2, 1/4, 1/8)^2) * 2
play(guitar, bpm=100, instrument=25)
27、OpenBBTerminal:高颜值的命令行投资分析工具。一个有着高颜值的金融市场行情查看和分析工具,实现了在终端偷偷看股市的功能。同时,它开放了对 Pandas、Numpy、Jupyter、Pytorch、Tensorflow 等等框架的支持,帮助深入加工和分析数据辅助投资。
28、pygwalker:用可视化的方式操作 pandas 数据集。该项目可以将 pandas 的 dataframe 数据对象转化成一个可交互的图形界面,支持通过拖拽字段的方式进行数据分析。来自 @databook 的分享
Rust 项目
29、FlyingCarpet:无需网络的文件传输工具。这是一个支持在 Android、iOS、Linux、macOS 和 Windows 系统之间通过 WiFi 点对点(Ad-Hoc)传输文件的工具。它不需要网络基础设施,只需要两台支持 WiFi 的设备,即可实现近距离无线传输。
30、jumpy:鱼类像素风格的 2D 射击游戏。这是一款 2D 对战类游戏,玩家控制鱼形斗士相互厮杀,支持 2-4 名玩家在本地或在线对战。
31、oxipng:多线程的 PNG 图片压缩工具。这是一个 Rust 写的命令行 PNG 无损压缩工具,支持多线程压缩速度快,还可作为 Rust 库使用。
Swift 项目
32、fsnotes:macOS/iOS 上的笔记管理器。这是一款适用于 macOS 和 iOS 的笔记管理工具,它支持 Markdown、加密笔记、生成网页、TouchBar 快捷键、超过 170 种编程语言的语法高亮、iCloud Drive 或 Dropbox 同步内容等功能。
33、swift-foundation:用 Swift 重写后的 Foundation 框架。Foundation 框架是 macOS 和 iOS 的基础组件(标准库),该项目是 Apple 用 Swift 重写后的 Foundation 源码,它更快、更安全。
其它
34、ESP32-Paxcounter:基于 WiFi 和蓝牙的客流计数器。一款基于廉价的 ESP32 开发板的实时客流量计数器,它通过监测附近的 WiFi 和蓝牙信号,在不侵犯隐私的情况下实现计数。来自 @松果 的分享
35、Hacki:用 Flutter 开发的 Hacker News 客户端。一款用 Flutter 写的 Hacker News 客户端,它界面清爽功能齐全,支持离线阅读、账户登录、提交内容、评论折叠等功能,已上架 App Store 和 Google Play 应用商店。来自 @Jiaqi Feng 的分享
36、OURS-project:教你如何制作一个智能手机。这里介绍了如何用树莓派制作一个 Linux 系统的智能手机,该设备拥有 1GB 运行内存、4 英寸 480*800 的触摸屏和 500 万像素的摄像头,支持 4G 网络、通话、短信、浏览器、GPS 等功能。
37、source-han-serif:思源宋体一套泛中日韩字体。思源宋体是 Adobe 开源的泛中日韩字体,这个开源项目不仅提供了思源宋体可用的 OpenType 字体,还提供了利用 AFDKO 工具创建这些 OpenType 字体时的所有源文件。来自 @孤胆枪手 的分享
38、wai:一款可以预防颈椎病的项目。这是一个通过非正常的方式,展示历史上的今天和这个季节吃什么果蔬的内容,“强迫”你活动脖子从而实现预防颈椎病的目的。来自 @Huan 的分享
开源书籍
39、bgnet:《Beej 的网络编程指南》。如果你想弄清楚什么是 socket 以及关于 C 语言网络编程的知识,就可以看看这本书,内含中文翻译版。
40、explore-flask:《Explore Flask》探索 Flask。这是一本关于 Python 知名 Web 框架 Flask 的书籍,内容包含基础入门和部署实战。
机器学习
41、AI4Animation:AI 生成游戏角色动画。该项目可以基于原始的动作捕捉数据,生成更加自然、可控的角色动画,解决两足、四足动物的动画生成问题,比如无需人为干涉就能生成坐下、跳跃、开门、武术等复杂动作的动画。来自 @松果 的分享
42、GFPGAN:腾讯开源的人脸修复算法。它可以用于修复像素低、模糊、破损的人脸图像,尤其是在脸部细节和清晰度方面,修复效果尤为出色。
43、ImageBind:连接多种感官数据的 AI 模型。这是一个由 Meta AI 开源的新型多模态 AI 模型,支持在图像、文本、音频等六种不同模态之间任意转换。比如它可以根据一段火车的音频,自动生成火车的照片、视频和一段文本。
44、tuning_playbook:深度学习调优指南。该指南出自几位谷歌大脑研究员的深度学习模型调参经验总结,内容包括如何开始新项目、提高模型性能的方法和训练过程中的经验,适合已掌握机器学习基本知识、对优化深度学习模型性能感兴趣的工程师和研究员阅读。
最后
如果你发现了 GitHub 上有趣的项目,就点击这里分享给大家伙吧!
以上就是本期的所有内容了,往期内容点击阅读
感谢您的阅读,如果觉得本期内容还不错的话 求赞、求分享 ??
作者:削微寒
扫描左侧的二维码可以联系到我
本作品采用署名-非商业性使用-禁止演绎 4.0 国际 进行许可。