兴趣是最好的老师,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. 零基础学Python:数据容器

    1.常用操作 列表常用操作 在 ipython 中定义一个 列表,例如: l= list() 输入 l. 按下 TAB 键, ipython 会提示 字典 能够使用的函数如下: 可以到官方网址查询使用 ...

  2. CentOS7 下Docker最新入门教程 超级详细 (安装以及简单的使用)

    转载https://blog.csdn.net/wzsy_ll/article/details/82866627 1.为什么使用Docker(本人) 最近总是频繁的在新服务器发布项目, 每次发布都需要 ...

  3. 剑指 Offer 59 - II. 队列的最大值--滑动窗口的建模+Deque的基本使用(常用方法)

    剑指 Offer 59 - II. 队列的最大值 题目链接 package com.walegarrett; /** * @Author WaleGarrett * @Date 2020/12/3 1 ...

  4. 使用Groovy构建DSL

    DSL(Domain Specific Language)是针对某一领域,具有受限表达性的一种计算机程序设计语言. 常用于聚焦指定的领域或问题,这就要求 DSL 具备强大的表现力,同时在使用起来要简单 ...

  5. 2020年12月-第02阶段-前端基础-CSS基础选择器

    CSS选择器(重点) 理解 能说出选择器的作用 id选择器和类选择器的区别 1. CSS选择器作用(重点) 如上图所以,要把里面的小黄人分为2组,最快的方法怎办? 很多, 比如 一只眼睛的一组,剩下的 ...

  6. WPF 基础 - x 名称空间详解

    名称 种类(默认Attribute) 备注 x:Array 标记拓展 可作为 ListBox.ItemsSource 的值 x:Class 指定与 .cs 中哪个类合并,所指示的类型在声明时使用 pa ...

  7. 超详细Linux新手快速入门(一)——Linux的介绍安装以及虚拟机的介绍安装

    一.Linux的介绍 1.Linux和Windows的比较  Linux是一款操作系统,其性能稳定,因其防火墙组件高效安全.简单易配置,所以获得了追求速度和安全的一些企业和人群的青睐.与我们日常所熟知 ...

  8. Lzzy高级语言程序设计之for循环

    public class Mq { public static void main(String[]args){ int a = 3 ; a++;// do{ System.out.println(& ...

  9. 对控制器类型“StudentController”的操作“Edit”的当前请求在下列操作方法之间不明确:

    "/"应用程序中的服务器错误. 对控制器类型"StudentController"的操作"Edit"的当前请求在下列操作方法之间不明确:类型 ...

  10. [源码分析] 消息队列 Kombu 之 mailbox

    [源码分析] 消息队列 Kombu 之 mailbox 0x00 摘要 本系列我们介绍消息队列 Kombu.Kombu 的定位是一个兼容 AMQP 协议的消息队列抽象.通过本文,大家可以了解 Komb ...