兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!
分享 GitHub 上有趣、入门级的开源项目。
内容包括:有趣、入门级的开源项目、开源书籍、实战项目、企业级项目等,让你在短时间内感受到开源的魅力,对开源和编程产生兴趣!
在电脑上阅读本文的读者,请翻到文章末尾点击「阅读原文」 获得更好的阅读体验
以下为本期内容 |每个月 28 号更新
C 项目 1、acwj :教你写 C 语言编译器的实战教程。教程注重实战循序渐进,一步步教你如何用 C 语言写一个可以自己编译自己(自举)、能够在真正的硬件上运行的 C 语言编译器
GitHub 地址:https://github.com/DoctorWkt/acwj 2、zstd :快速、无损的数据压缩算法 Zstandard 的实现。Zstd 的压缩比接近 lzma、lzham 和 ppmx,并且比 lza 或 bzip2 性能更好。在相似的压缩比情况下,它解压缩的速度比其他的算法都要快。很多知名项目和游戏都有这个算法的身影,示例代码:
static void compress_orDie (const char * fname, const char * oname) { size_t fSize; void * const fBuff = mallocAndLoadFile_orDie(fname, &fSize); size_t const cBuffSize = ZSTD_compressBound(fSize); void * const cBuff = malloc_orDie(cBuffSize); /* Compress. * If you are doing many compressions, you may want to reuse the context. * See the multiple_simple_compression.c example. */ size_t const cSize = ZSTD_compress(cBuff, cBuffSize, fBuff, fSize, 1 ); CHECK_ZSTD(cSize); saveFile_orDie(oname, cBuff, cSize); /* success */ printf ("%25s : %6u -> %7u - %s \n" , fname, (unsigned )fSize, (unsigned )cSize, oname); free (fBuff); free (cBuff); }
GitHub 地址: https://github.com/facebook/zstd
C# 项目 3、ravendb :一款快速、可靠的开源 NoSQL 数据库
GitHub 地 址: https://github.com/ravendb/ravendb
4、Files :一个全新的文件管理器。采用 Fluent Design 和 Windows 平台最新的 API 实现,简约但不简单
GitHub 地 址: https://github.com/files-community/Files
Go 项目 5、jql :用 Go 写的 JSON 数据查询工具。该工具安装方便,语法简单容易上手,实用示例代码很多比如:
# 查询 test.json 文件中,所有国家的名称 cat test.json | jql '(elem "countries" (elem (keys) (elem "name")))' [ "Poland" , "United States" , "Germany" ]
GitHub 地 址: https://github.com/cube2222/jql
6、chanify :基于 Go 实现的向 iOS 设备推送消息的服务。手机上安装好配套的 iOS 应用,然后以 Docker 的方式部署完服务,就可以通过一条命令推送指定消息到 APP 上,是不是很方便吖
# 发送文本消息 $ curl --form-string "text=hello" "http://:/v1/sender/" # 发送文本文件 $ cat message.txt | curl -H "Content-Type: text/plain" --data-binary @- "http://:/v1/sender/"
GitHub 地 址: https://github.com/chanify/chanify
7、algorithm-pattern :LeetCode 刷题集合项目。项目从 Go 语言入门讲起,总结了一套刷题模板和解题套路,示例代码为 Go 语言
GitHub 地 址: https://github.com/greyireland/algorithm-pattern
8、 imaging : Go 语言的图像处理库。 支持: 调整大小、旋转、剪切、亮度调整等功能,示例代码:
// 调整 dstImage128 := imaging.Resize(srcImage, 128 , 128 , imaging.Lanczos)// 锐化 dstImage := imaging.Sharpen(srcImage, 0.5 )
GitHub 地 址: https://github.com/disintegration/imaging
9、ebiten :Go 语言的 2D 游戏引擎库。通过它可以轻松地用 Go 语言制作出支持多平台的 2D 游戏,项目中还包含很多示例代码,帮助你快速上手
GitHub 地 址: https://github.com/hajimehoshi/ebiten
Java 项目 10、flink-recommandSystem-demo :一个基于 Flink 实现的商品实时推荐系统。可以通过这个项目了解和学习推荐系统的设计和流程,该系统是通过 Flink 处理日志和统计商品热度,将处理好的数据放入 Redis 缓存。然后再将画像标签和实时记录放入 HBase。在用户请求获取推荐时,根据用户画像生成商品热度榜,并结合协同过滤和标签两个推荐模块,返回最终生成的商品推荐列表
GitHub 地 址: https://github.com/CheckChe0803/flink-recommandSystem-demo
11、OpenRefine :一款用于清理数据的桌面工具。通过可视化的方式分析、整理数据,支持 Windows、Linux、Mac 操作系统。拥有查询、过滤、去重、分析等功能,可以把杂乱的数据变成“整洁”的电子表格,还能够将结果导出成多种格式的文件。不会编程和 SQL 的小伙伴们,也可以轻松分析海量数据啦!
GitHub 地 址: https://github.com/OpenRefine/OpenRefine
12、jacoco :Java 代码测试覆盖率库
GitHub 地 址: https://github.com/jacoco/jacoco
13、kooder :一个开源的代码搜索服务。为包括 GitLab、Gitea 的代码托管系统提供源码、仓库、Issue 的搜索服务
GitHub 地 址: https://github.com/oschina/kooder
JavaScript 项目14、taro :一款 Web 轻量级的 3D 游戏引擎。底层基于 three.js 和 cannon-es 支持 3D 刚体物理引擎
GitHub 地 址: https://github.com/Cloud9c/taro
15、kutt :免费开源的短链接服务。服务基于 Node.js+Express+React 实现,支持管理链接、自定义短链接、设置链接密码、访问统计等功能
GitHub 地 址: https://github.com/thedevs-network/kutt
16、nav :一个支持 SEO 的静态导航网站。不依赖后端的纯前端项目开箱即用,简单清爽
GitHub 地 址: https://github.com/xjh22222228/nav
17、drawio :一款简洁强大的绘图工具。免费开源可以自行部署也可以在线使用,功能上直追 Microsoft Visio。支持流程图、序列图、网络拓扑图、甘特图、思维导图、模型图等,还能导出多种格式类型比如 png、svg、PDF、HTML 和 VSDX 格式(Microsoft Visio 图形格式)
GitHub 地 址: https://github.com/jgraph/drawio
18、npkill :快速查找和轻松删除 node_modules 文件夹的工具。还在为 node_modules 占了很多磁盘空间而烦恼吗?还在手动找用不到的 node_modules 目录吗?快来试试 npkill 吧!轻松地删除 node_modules 目录
GitHub 地 址: https://github.com/voidcosmos/npkill
PHP 项目 19、question2answer :采用 PHP+MySQL 实现的免费开源的问答平台。基本上问答平台该有的功能它都有,那么问题来了是做个知乎还是 Stack Overflow 呢?
GitHub 地 址: https://github.com/q2a/question2answer
Python 项目 20、tomato-clock :Python 写的命令行番茄工作法定时器。代码仅有 100 多行,不依赖其它第三方库
🍅 tomato 25 minutes. Ctrl+C to exit 🍅🍅---------------------------------------------- [8%] 23:4 ⏰
GitHub 地 址: https://github.com/coolcode/tomato-clock
21、vardbg :一款能够把 Python 程序执行过程,导出成视频或动图的代码调试工具。可用于动画学算法、制作代码讲解视频等场景
GitHub 地 址: https://github.com/CCExtractor/vardbg
22、apkleaks :扫描 APK 文件是否包含敏感信息的命令行工具
// custom-rules.json { "Amazon AWS Access Key ID" : "AKIA[0-9A-Z]{16}" , ... } $ apkleaks -f /path/to/file.apk -p rules.json -o ~/Documents/apkleaks-results.txt
GitHub 地 址: https://github.com/dwisiswant0/apkleaks
23、graphene-django :让你轻松地将 GraphQL 整合到 Django 项目的库
GitHub 地 址: https://github.com/graphql-python/graphene-django
Rust 项目 24、fselect :用类 SQL 的命令查找文件的命令行工具
fselect size, path from /home/user where name = '*.cfg' or name = '*.tmp' fselect size, abspath from ./tmp where size gt 2g fselect hsize, abspath from ./tmp where size lt 8k
GitHub 地 址: https://github.com/jhspetersson/fselect
Swift 项目 25、awesome-ios :超棒的 iOS 开源项目集合。它非常全面包含 Objective-C、Swift 语言的项目,拥有网络、UI、JSON、数据库、音视频等分类,iOS 初学者寻找开源项目的好地方
GitHub 地 址: https://github.com/vsouza/awesome-ios
26、Knot :一款 iOS 抓包工具。实现了 HTTP(S) 解析、流量解析、多格式导出、证书管理以及过程分析等
GitHub 地 址: https://github.com/Lojii/Knot
27、SwiftUITodo :用 SwiftUI 做的 Todo 工具。这是一个示例项目帮助新手掌握 SwiftUI
GitHub 地 址: https://github.com/devxoul/SwiftUITodo
其它 28、LIII :免费开源的 BT 下载工具。如果你厌倦了广告、购买 VIP 才能提速,只想要一个简单好用的下载工具,那你可以试试这个开源项目
GitHub 地 址: https://github.com/aliakseis/LIII
29、cloudmusic-vscode :网易云音乐 VS Code 插件。基于网易云网页 API 实现,支持:
GitHub 地 址: https://github.com/YXL76/cloudmusic-vscode
30、shapez.io :一款 Steam 上的模拟建造游戏《异形工厂》的源码。游戏是在无边的地图上开采资源、放置设施、组合图形、相互搭配,扩建自己的异形工厂。游戏轻松但也很有挑战性,快去试一试吧
GitHub 地 址: https://github.com/tobspr/shapez.io
开源书籍 31、Probabilistic-Programming-and-Bayesian-Methods-for-Hackers :《黑客的贝叶斯方法:以 Python 为例》
GitHub 地 址: https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers
32、The-design-and-implementation-of-a-64-bit-os :《一个 64 位操作系统的设计与实现》
GitHub 地 址: https://github.com/yifengyou/The-design-and-implementation-of-a-64-bit-os
33、tensorflow-handbook :《简明的 TensorFlow 2》
GitHub 地 址: https://github.com/snowkylin/tensorflow-handbook
机器学习 34、Real-Time-Person-Removal :在 Web 浏览器中实时移除人像。该项目采用 JavaScript+TensorFlow.js 实现“凭空消失”
GitHub 地 址: https://github.com/jasonmayes/Real-Time-Person-Removal
35、AI-Expert-Roadmap :人工智能学习路线图
GitHub 地 址: https://github.com/AMAI-GmbH/AI-Expert-Roadmap
最后 如果你发现了 GitHub 上有趣的项目,就分享给大家伙吧。
本期 HelloGitHub 月刊到这里就结束啦, 你有没有找到感兴趣的开源项目?欢迎留言讨论。
阅读原文 获取更好的 PC 端阅读体验