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

简介

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

内容包括:有趣、入门级的开源项目、开源书籍、实战项目、企业级项目等,让你在短时间内感受到开源的魅力,对开源和编程产生兴趣!


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

C 项目

1、acwj:教你写 C 语言编译器的实战教程。教程注重实战循序渐进,一步步教你如何用 C 语言写一个可以自己编译自己(自举)、能够在真正的硬件上运行的 C 语言编译器

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);
}

C# 项目

3、ravendb:一款快速、可靠的开源 NoSQL 数据库

4、Files:一个全新的文件管理器。采用 Fluent Design 和 Windows 平台最新的 API 实现,简约但不简单

Go 项目

5、jql:用 Go 写的 JSON 数据查询工具。该工具安装方便,语法简单容易上手,实用示例代码很多比如:

# 查询 test.json 文件中,所有国家的名称
cat test.json | jql '(elem "countries" (elem (keys) (elem "name")))'
[
"Poland",
"United States",
"Germany"
]

6、chanify:基于 Go 实现的向 iOS 设备推送消息的服务。手机上安装好配套的 iOS 应用,然后以 Docker 的方式部署完服务,就可以通过一条命令推送指定消息到 APP 上,是不是很方便吖

# 发送文本消息
$ curl --form-string "text=hello" "http://<address>:<port>/v1/sender/<token>" # 发送文本文件
$ cat message.txt | curl -H "Content-Type: text/plain" --data-binary @- "http://<address>:<port>/v1/sender/<token>"

7、algorithm-pattern:LeetCode 刷题集合项目。项目从 Go 语言入门讲起,总结了一套刷题模板和解题套路,示例代码为 Go 语言

8、imaging:Go 语言的图像处理库。支持:调整大小、旋转、剪切、亮度调整等功能,示例代码:

// 调整
dstImage128 := imaging.Resize(srcImage, 128, 128, imaging.Lanczos)
// 锐化
dstImage := imaging.Sharpen(srcImage, 0.5)

9、ebiten:Go 语言的 2D 游戏引擎库。通过它可以轻松地用 Go 语言制作出支持多平台的 2D 游戏,项目中还包含很多示例代码,帮助你快速上手

Java 项目

10、flink-recommandSystem-demo:一个基于 Flink 实现的商品实时推荐系统。可以通过这个项目了解和学习推荐系统的设计和流程,该系统是通过 Flink 处理日志和统计商品热度,将处理好的数据放入 Redis 缓存。然后再将画像标签和实时记录放入 HBase。在用户请求获取推荐时,根据用户画像生成商品热度榜,并结合协同过滤和标签两个推荐模块,返回最终生成的商品推荐列表

11、OpenRefine:一款用于清理数据的桌面工具。通过可视化的方式分析、整理数据,支持 Windows、Linux、Mac 操作系统。拥有查询、过滤、去重、分析等功能,可以把杂乱的数据变成“整洁”的电子表格,还能够将结果导出成多种格式的文件。不会编程和 SQL 的小伙伴们,也可以轻松分析海量数据啦!

12、jacoco:Java 代码测试覆盖率库

13、kooder:一个开源的代码搜索服务。为包括 GitLab、Gitea 的代码托管系统提供源码、仓库、Issue 的搜索服务

JavaScript 项目

14、taro:一款 Web 轻量级的 3D 游戏引擎。底层基于 three.js 和 cannon-es 支持 3D 刚体物理引擎

15、kutt:免费开源的短链接服务。服务基于 Node.js+Express+React 实现,支持管理链接、自定义短链接、设置链接密码、访问统计等功能

16、nav:一个支持 SEO 的静态导航网站。不依赖后端的纯前端项目开箱即用,简单清爽

17、drawio:一款简洁强大的绘图工具。免费开源可以自行部署也可以在线使用,功能上直追 Microsoft Visio。支持流程图、序列图、网络拓扑图、甘特图、思维导图、模型图等,还能导出多种格式类型比如 png、svg、PDF、HTML 和 VSDX 格式(Microsoft Visio 图形格式)

18、npkill:快速查找和轻松删除 node_modules 文件夹的工具。还在为 node_modules 占了很多磁盘空间而烦恼吗?还在手动找用不到的 node_modules 目录吗?快来试试 npkill 吧!轻松地删除 node_modules 目录

PHP 项目

19、question2answer:采用 PHP+MySQL 实现的免费开源的问答平台。基本上问答平台该有的功能它都有,那么问题来了是做个知乎还是 Stack Overflow 呢?

  • 支持回答投票、评论、最佳回答、关注和关闭问题
  • 完备的用户和权限管理
  • 多语言支持
  • 搜索时的相似问题匹配
  • 等等

Python 项目

20、tomato-clock:Python 写的命令行番茄工作法定时器。代码仅有 100 多行,不依赖其它第三方库

 tomato 25 minutes. Ctrl+C to exit
---------------------------------------------- [8%] 23:4

21、vardbg:一款能够把 Python 程序执行过程,导出成视频或动图的代码调试工具。可用于动画学算法、制作代码讲解视频等场景

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

23、graphene-django:让你轻松地将 GraphQL 整合到 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

Swift 项目

25、awesome-ios:超棒的 iOS 开源项目集合。它非常全面包含 Objective-C、Swift 语言的项目,拥有网络、UI、JSON、数据库、音视频等分类,iOS 初学者寻找开源项目的好地方

26、Knot:一款 iOS 抓包工具。实现了 HTTP(S) 解析、流量解析、多格式导出、证书管理以及过程分析等

27、SwiftUITodo:用 SwiftUI 做的 Todo 工具。这是一个示例项目帮助新手掌握 SwiftUI

其它

28、LIII:免费开源的 BT 下载工具。如果你厌倦了广告、购买 VIP 才能提速,只想要一个简单好用的下载工具,那你可以试试这个开源项目

29、cloudmusic-vscode:网易云音乐 VS Code 插件。基于网易云网页 API 实现,支持:

  • 歌曲播放、收藏、喜欢
  • 心动模式、私人 FM
  • 评论(单曲、歌单...)
  • 歌词显示
  • 搜索(热搜/单曲/专辑/歌手...)
  • 等等

30、shapez.io:一款 Steam 上的模拟建造游戏《异形工厂》的源码。游戏是在无边的地图上开采资源、放置设施、组合图形、相互搭配,扩建自己的异形工厂。游戏轻松但也很有挑战性,快去试一试吧

开源书籍

31、Probabilistic-Programming-and-Bayesian-Methods-for-Hackers:《黑客的贝叶斯方法:以 Python 为例》

32、The-design-and-implementation-of-a-64-bit-os:《一个 64 位操作系统的设计与实现》

33、tensorflow-handbook:《简明的 TensorFlow 2》,在线阅读

机器学习

34、Real-Time-Person-Removal:在 Web 浏览器中实时移除人像。该项目采用 JavaScript+TensorFlow.js 实现“凭空消失”

35、AI-Expert-Roadmap:人工智能学习路线图

最后

如果你发现了 GitHub 上有趣的项目,就分享给大家伙吧。

以上就是本期的所有内容了,看完还不过瘾?

关注 HelloGitHub 公众号不仅可以收到第一时间的更新。点击菜单栏->往期->月刊

往期月刊所有的内容尽收眼底一次看过瘾!还有更多开源项目的介绍和宝藏项目等待你的发现。

程序员的开源月刊《HelloGitHub》第61期的更多相关文章

  1. 程序员的开源月刊:HelloGitHub(第 54 期)

    兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...

  2. Boostnote 为程序员的开源式记事本

    以前使用win10的时候,有个edairy可以使用,并且效果非常好,现在ubuntu上使用的时候,才找个这样的程序员实在太难了,找了好久,才找到一个使用比较顺手的,这里就做个备忘了,顺便做个推荐,实在 ...

  3. HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?

    兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...

  4. 深受C/C 程序员欢迎的11款IDE

    几十年过去了,C和C++作为主要的高级的程序设计语言,在全球范围内仍然广受欢迎,并牢牢占据着TIOBE编程语言排行榜前5名,应用程序和系统的开发离不开这两门语言,现在我们来总结一下近些年来,深受C/C ...

  5. 开源月刊《HelloGitHub》第 62 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这里有实战项目.入门教程.黑科技.开源书籍.大厂开源项目等,涵盖多种编程语言 Pyt ...

  6. c/c++程序员必须要掌握开源项目

    作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应 ...

  7. C/C++程序员必须熟练应用的开源项目

    作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应 ...

  8. C/C++程序员必须熟练应用的开源项目[转]

    作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应 ...

  9. 转:程序员最值得关注的10个C开源项目

    程序员最值得关注的10个C开源项目 1. Webbench Webbench 是一个在 linux 下使用的非常简单的网站压测工具.它使用 fork ()模拟多个客户端同时访问我们设定的 URL,测试 ...

随机推荐

  1. 使用EF的Code First模式创建模型

    Entity Framework Core Entity Framework (EF) Core 是轻量化.可扩展.开源和跨平台版的常用 Entity Framework 数据访问技术. EF Cor ...

  2. Hive实现自增序列及常见的Hive元数据问题处理

    Hive实现自增序列 在利用数据仓库进行数据处理时,通常有这样一个业务场景,为一个Hive表新增一列自增字段(比如事实表和维度表之间的"代理主键").虽然Hive不像RDBMS如m ...

  3. Kubernetes-4.Pods

    docker version:19.03.14 kubernetes version:1.19.4 ** 已了解Kubernetes的组成.安装.以及kubectl基本命令使用 本文概述Kuberne ...

  4. 关于使用C3P0程序报错Having failed to acquire a resource, com.mchange.v2.resourcepool的问题

    由于是新手的问题,C3P0的使用时严格跟着视频来的,但是问题却来的很突然 在导入了三个包以及创建了路径以后 进行测试 class JdbcutilsTest { @Test void TestGetC ...

  5. Python高级——多任务编程之线程

    转: Python高级--多任务编程之线程 文章目录 线程概念 1. 线程的介绍 2. 线程的概念 3. 线程的作用 多线程的使用 1. 导入线程模块 2. 线程类Thread参数说明 3. 启动线程 ...

  6. Spring Boot 2.x基础教程:使用MongoDB

    前段时间因为团队调整,大部分时间放在了团队上,这系列的更新又耽误了一下.但既然承诺持久更新,那就不会落下,今天开始继续更新这部分的内容! 过了年,重申一下这个系列的目标:目前主要任务就是把Spring ...

  7. 剑指 Offer 09. 用两个栈实现队列 +java中栈和队列的使用

    剑指 Offer 09. 用两个栈实现队列 题目链接 class CQueue { private Stack<Integer> sta1; private Stack<Intege ...

  8. 【转载】Android异步消息处理机制详解及源码分析

    PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbob ...

  9. 统一Java环境变量配置,Java环境如何配置?

    一 JDK下载和安装 Java开发工具包统一下载地址:https://www.hiai.top/archives/268.html 二 java环境变量配置 1.变量名:JAVA_HOME 变量值:你 ...

  10. 大数据实战-Spark实战技巧

    1.连接mysql --driver-class-path mysql-connector-java-5.1.21.jar 在数据库中,SET GLOBAL binlog_format=mixed; ...