开源爱好者月刊《HelloGitHub》第87期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!
简介
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。
这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!
以下为本期内容|每个月 28 号更新
C 项目
1、kilo:不到 1 千行代码实现的迷你文本编辑器。该项目是 Redis 作者用 C 语言写的迷你文本编辑器,支持语法高亮和搜索等功能。它不依赖第三方库、代码简洁优雅,去掉注释和空行后不到 1000 行,且只有一个文件,源码阅读起来十分清爽。
2、Logan:面向终端的统一日志服务。由美团技术团队开源的一整套前端日志系统,包含客户端 SDK、日志处理和管理平台。它适用于移动端 APP、Web、小程序、IoT 等终端场景下的实时日志收集。
C# 项目
3、winsw:将可执行文件包装成 Windows 服务的工具。该项目可以将原本不支持开机启动的 Windows 应用,设置成开机自动启动,整个过程只需要两条命令。
C++ 项目
4、geometrize:将图像用几何图形重绘的工具。该项目可以用圆形、三角形、矩形等几何图形重新绘制图像,并将结果导出为 SVG、PNG、JPG、GIF 等格式。
5、primihub:由密码学专家团队打造的开源隐私计算平台。随着《数据安全法》和《个人信息保护法》的相继颁布,隐私计算技术在近两年迎来了前所未有的热度。该项目是由密码学专家团队打造的隐私计算平台,它开箱即用、安全可靠,支持隐匿查询、隐私求交、联合统计、数据资源管理等功能,实现了“数据可用不可见”,为数据安全流通保驾护航。
# 第一步:下载 git clone https://github.com/primihub/primihub.git # 第二步:启动容器 cd primihub && docker-compose up -d # 第三步:进入容器 docker exec -it primihub-node0 bash # 第四步:执行隐私求交计算 ./primihub-cli --task_config_file="example/psi_ecdh_task_conf.json" I20230616 13:40:10.683375 28 cli.cc:524] all node has finished I20230616 13:40:10.683745 28 cli.cc:598] SubmitTask time cost(ms): 1419 # 查看结果 cat data/result/psi_result.csv "intersection_row" X3 ...
6、redpanda:与 Kafka API 完全兼容的流数据平台。这个项目可以看作是用 C++ 重新编写的 Kafka,它更轻、更快、更省钱,部署简单使用方便,完全不受 JVM、ZooKeeper 等外部依赖的影响。
7、shotcut:一款功能强大的免费视频剪辑软件。这款软件虽然免费但在功能上完全不输收费的视频剪辑工具,可作为 Pr 的开源替代品。它拥有中文和直观的操作界面,支持数百种音频和视频格式、素材原生编辑、多时间线等功能,适用于 Windows、Linux、macOS 系统。
8、sqlitebrowser:SQLite 可视化管理工具。这是一款实用的 SQLite 数据库桌面管理工具,它支持创建和编辑 SQLite 数据库文件,可通过图形化界面创建、定义、修改、删除表和索引,以及执行 SQL 和导出数据等操作。
Go 项目
9、gotenberg:基于 Docker 的生成 PDF 文件服务。它支持通过 Docker 启动一个服务,该服务可以通过 API 与 Chromium 和 LibreOffice 进行交互。让你可以通过调用接口,轻松地将网页、HTML、Markdown、Word、Excel 等格式的文档转换为 PDF 文件。
curl \ --request POST 'https://demo.gotenberg.dev/forms/chromium/convert/url' \ --form 'url="https://sparksuite.github.io/simple-html-invoice-template/"' \ -o my.pdf
10、httprouter:Go 语言的高性能 HTTP 请求路由器。该项目结构简洁,核心代码仅三个文件。它通过 Radix tree 数据结构,实现了高效的路由处理。值得一提的是,著名的 Gin 框架也使用了它。
package main import ( "fmt" "net/http" "log" "github.com/julienschmidt/httprouter" ) func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { fmt.Fprint(w, "Welcome!\n") } func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { fmt.Fprintf(w, "hello, %s!\n", ps.ByName("name")) } func main() { router := httprouter.New() router.GET("/", Index) router.GET("/hello/:name", Hello) log.Fatal(http.ListenAndServe(":8080", router)) }
11、slides:一款命令行演示工具。这款命令行工具可以让你在终端中轻松创建和演示幻灯片,它开箱即用、支持 Markdown 语法。
12、sourcegraph:一款强大的代码搜索平台。该项目能够对代码库进行语义索引和分析,支持正则表达式搜索、输入搜索条件时的自动补全、类似 IDE 的跳转到定义和引用。它可以用于构建公司内部的代码搜索平台,帮助程序员完成跨项目的代码查找、代码审查、代码追踪等。
13、tinygo:专为“小场面”而生的 Go 编译器。这是一个基于 LLVM 的小型 Go 编译器,它能够将 Go 代码编译成可运行在开发板、物联网、WebAssembly 等场景的程序。
Java 项目
14、FXGL:你的第一款 Java 游戏开发框架。该项目是基于 JavaFX 的 2D 游戏开发引擎,它无需安装、API 简单,能够轻松地将开发的游戏打包成一个可执行的 jar 包,一切的一切都是为了让你喜欢上开发游戏。
public class BasicGameApp extends GameApplication { @Override protected void initSettings(GameSettings settings) { settings.setWidth(800); settings.setHeight(600); settings.setTitle("Basic Game App"); } public static void main(String[] args) { launch(args); } }
15、SurveyKing:功能强大的调查问卷系统。这是一款 Java 写的问卷调查和考试系统,支持 20 多种题型、Excel 导入问卷、白名单答卷、公开查询、数据导出等功能。
JavaScript 项目
16、AFFiNE:类似 Notion 的协同知识库系统。它拥有清爽、简洁的界面,支持离线使用。集成了笔记、知识库、数据表格等功能,同时这些内容之间还可以灵活组合。
17、ChatGPT-Next-Web:免费部署私人 ChatGPT 网页应用。该项目不仅提供了更加人性化的 ChatGPT 聊天界面,还支持一键部署到 Vercel。你只需要提供 OpenAI API Key,就能免费拥有私人 ChatGPT 服务。
18、giscus:基于 GitHub Discussions 的评论系统。该项目是基于 GitHub Discussions API 实现的评论系统,它免费、无广告、无需数据库,支持自定义主题、多语言等功能。
19、Painter:小程序生成图片库。该项目可以让小程序开发者通过 JSON 的方式绘制图片,支持绘制文本、图片、二维码、多种布局、自定义字体、圆角等功能。
20、patch-package:给 npm 依赖项打补丁的库。如果项目依赖的第三方库有个 bug,需要手动添加一段代码才能解决,这个时候用它打个补丁就轻松搞定,支持 npm、yarn、pnpm 等。
Kotlin 项目
21、legado:一款免费的安卓小说阅读器。这款阅读器体积小、无广告、界面简洁,支持自定义书源、本地导入小说、多种翻页模式、替换净化等功能。需要注意的是,它只是一个阅读器,不提供小说内容,初次安装后需要自行导入书源。来自 @孤胆枪手 的分享
Python 项目
22、Auto_Bangumi:全自动追番工具。该项目是 Python 写的自动订阅更新和下载动画的工具,用户只需在 Mikan Project 上订阅番剧,然后简单配置一下就可以安心追番了。
23、edx-platform:Django 写的开源慕课平台。该项目是由麻省理工和哈佛大学联合开源的大规模开放式在线课堂(MOOC)平台,它提供了内容管理和学习管理服务。该平台支持在线讲课、创建课程、发布前预览、内容库、学生反馈、考试等功能。虽然它功能丰富,但界面十分简陋。
24、PyQt-Fluent-Widgets:Fluent Design 风格的 PyQt 组件库。基于 PyQt/PySide 的 Fluent Design 风格组件库,内含多种美观、实用的组件,支持亮暗主题切换和自定义主题色。
25、stitching:强大的图片拼接 Python 库。这是一个基于 OpenCV 的拼接模块开发的用于快速拼接图片的 Python 库,支持在 Python 脚本中使用和命令行方式。
import stitching stitcher = stitching.Stitcher() # 多个文件 panorama = stitcher.stitch(["img1.jpg", "img2.jpg", "img3.jpg"]) # 通配符 panorama = stitcher.stitch(["img?.jpg"])
26、sympy:进行符号运算的 Python 库。这是一个功能齐全、纯 Python 写的计算机代数系统(CAS),可用于计算复杂的数学问题。它支持解方程、离散数学、微积分、逻辑计算、几何、概率与统计等功能。
>>> from sympy import Symbol, cos >>> x = Symbol('x') >>> e = 1/cos(x) >>> print(e.series(x, 0, 10)) 1 + x**2/2 + 5*x**4/24 + 61*x**6/720 + 277*x**8/8064 + O(x**10)
Rust 项目
27、hexyl:命令行十六进制查看器。这是一款 Rust 写的命令行十六进制查看器,它简单纯粹、彩色输出效果十分舒服。
28、ruffle:Rust 写的 Flash Player 替代品。这是一个用 Rust 语言开发的 Adobe Flash Player 模拟器,它不仅可以通过 WebAssembly 嵌入网站,还支持浏览器插件的方式使用以及在本地通过命令行播放 Flash 文件。来自 @浮生若夢 的分享
Swift 项目
29、LocationSimulator:iOS 设备的定位模拟器。这是一个能够轻松修改 iOS 和 iPadOS 位置信息的 macOS 应用,使用时手机端无需越狱和安装应用,只需通过 USB 或 WiFi 将设备连接上电脑,即可轻松完成位置修改。
30、SwiftUI-Cheat-Sheet:SwiftUI 小抄。该项目是一份 SwiftUI 2.0 速查表,内容包含复制即用的代码片段和运行效果截图。
其它
31、awesome-macos-screensavers:令人惊艳的 macOS 屏保集合。这里有不同风格、样式、趣味性十足的 macOS 屏保,相信总有一款适合你。
32、BlackHole:一款高颜值的音乐播放器应用。该项目是用 Flutter 写的高颜值、无广告、免费音乐播放器,拥有歌词、专辑、艺术家、播放列表、定时关闭等功能,支持 Android、iOS、macOS 系统。
33、personal-security-checklist:保护你的数字安全和隐私的清单。这是一份教你如何保护个人信息的列表,包括密码、浏览网页、电子邮件、社交网络、手机、电脑等方面。
34、radian:更先进的 R 语言控制台。该项目可作为 R 语言自带控制台的替代品,它支持自动补全、多行编辑和语法高亮,更方便、更好用。
35、web-vitals:Google 开源的核心页面指标。该指标可以帮助站长提升网站的用户体验,它分为 LCP(加载性能)、FID(交互性)、CLS(视觉稳定性) 三个方面。
36、XiangShan:一款国产的开源 RISC-V 处理器。“香山”是由中国科学院计算技术研究所牵头发起的开源 RISC-V 处理器项目。
开源书籍
37、Clean-Code-Notes:一本关于如何写出 Clean Code 的书。该书从什么是 Clean Code 讲起,一步步教你如何写出简洁、容易理解和维护的代码,帮助你养成良好的编码习惯。
机器学习
38、AI-For-Beginners:微软开源的入门级人工智能教程。这是一份完全免费、面向零基础人群的 AI 课程,为期 12 周共计 24 节课。你将学习到关于 AI 的历史、基本知识、主流框架、CV 和 NLP 等知识。
39、DragGAN:拖动 GAN 完成 P 图。这是 DragGAN 的官方源码,它支持通过鼠标拖拽的方式对图像进行编辑。任何人都可以通过精确控制像素去向,轻松修改图像中物体的姿态、表情、形状、布局等。例如,可以让图片上原本站着的小狗坐下。
40、mediapipe:谷歌开源的跨平台机器学习框架。它是一个能够轻松部署到移动端、Web、PC 和物联网设备的机器学习工具库,包含了物体检测、图像分类、人脸识别、手势识别、文本分类、语言检测、音频分类等模型。
最后
如果你发现了 GitHub 上有趣的项目,就点击这里分享给大家伙吧!
以上就是本期的所有内容了,往期内容点击阅读
感谢您的阅读,如果觉得本期内容还不错的话 求赞、求分享 ❤️

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
deepin 成功适配 RISC-V 开发板 VisionFive 2
deepin 宣布,其官方 RISC-V SIG 组成功在 VisionFive 2 开发板上适配 deepin 操作系统,目前已经在官网发布可用镜像,这是 deepin 操作系统在 RISC-V 适配工作的又一新成果。 昉·星光 2 (VisionFive 2) 是全球首款集成 3D GPU 的高性能量产 RISC-V 单板计算机 (SBC),由赛昉科技 (StarFive) 打造。据称该 SBC 在处理器工作频率、多媒体处理能力、可扩展性等方面均为业界领先水平。 赛昉科技 (StarFive) 成立于 2018 年,是一家具有独立自主知识产权的本土高科技企业,提供全球领先的基于 RISC-V 指令集的 CPU IP、SoC、开发板等系列产品和解决方案,是中国 RISC-V 软硬件生态的领导者。 目前 deepin 面向 RISC-V 架构的 VisionFive 2 开发板的体验版镜像已经推出。镜像默认搭载 DDE 桌面环境,仓库提供 deepin 的自研应用以及常用开源软件。 下载地址:https://cdimage.deepin.com/RISC-V/VisionFive-v2...
- 下一篇
SpringBoot 2 种方式快速实现分库分表,轻松拿捏!
大家好,我是小富~ (一)好好的系统,为什么要分库分表? (二)分库分表的 21 条法则,hold 住! 本文是《分库分表ShardingSphere5.x原理与实战》系列的第三篇文章,本文将为您介绍 ShardingSphere 的一些基础特性和架构组成,以及在 Springboot 环境下通过 JAVA编码 和 Yml配置 两种方式快速实现分库分表。 本文案例demo地址 一、什么是 ShardingSphere? shardingsphere 是一款开源的分布式关系型数据库中间件,为 Apache 的顶级项目。其前身是 sharding-jdbc 和 sharding-proxy 的两个独立项目,后来在 2018 年合并成了一个项目,并正式更名为 ShardingSphere。 其中 sharding-jdbc 为整个生态中最为经典和成熟的框架,最早接触分库分表的人应该都知道它,是学习分库分表的最佳入门工具。 如今的 ShardingSphere 已经不再是单纯代指某个框架,而是一个完整的技术生态圈,由三款开源的分布式数据库中间件 sharding-jdbc、sharding-p...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题