开源月刊《HelloGitHub》第 62 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣!

简介
分享 GitHub 上有趣、入门级的开源项目。
这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、Java、Go、C/C++、Swift...让你在短时间内感受到开源的魅力,对编程产生兴趣!
HelloGitHub 截止:2021.5.27 已获得 4.2 万星,感谢大家点亮的每一个
以下为本期内容|每个月 28 号更新
C 项目
1、discount:一个用 C 语言编写的 Markdown 实现,可以轻松将 MD 文档转换为 HTML 格式
C# 项目
2、maui:微软官方开源的 .NET 跨平台 UI 框架。这将意味着同一套代码和原生 UI 可以跑在几乎所有的设备上

3、EarTrumpet:一款 Windows 系统上的音量控制小工具

C++ 项目
4、kvrocks:基于 RocksDB 并兼容 Redis 协议的 NoSQL 数据库。磁盘类型的 Redis 为降低存储成本而生,存储成本可以降到 Redis 的 1/3 以上

CSS 项目
5、stylus-shortcut:基于 stylus 实现的快速编写 CSS 样式的库

6、pattern.css:用漂亮的图形填充背景的 CSS 库

Go 项目
7、Cloudreve:支持多种存储服务的云文件桌面管理工具。开箱即用,功能丰富
- 拖拽上传、目录上传、流式上传处理
- 客户端直传和限速下载
- 视频、图像、音频、文本、Office 文档在线预览

8、duf:一款查看磁盘空间情况的命令行工具,足以代替 df 命令。它上手简单使用方便,界面简洁且友好同时支持 Linux、macOS 和 Windows 操作系统

9、bubbletea:一个强大的 TUI(文本用户界面)框架。Bubble Tea 非常适合构建复杂交互的终端应用程序,同时还能让命令行程序变得多彩和炫酷

10、rosedb:一个完全用 Go 写的 Key-Value 数据库。rosedb 适合在找 Go 实战项目的小伙伴们,因为项目代码简洁、注释清晰,配上作者录制的讲解视频。你可以从中学到 Go 相关的知识
- 实用的高级特性,比如:goroutine、chan、mutex
- 数据结构及算法相关知识,比如:链表、哈希表、跳表等
- 操作系统的一些知识,特别是文件系统和内存映射

11、cointop:用于追踪加密货币行情的命令行工具。界面仿照 htop 支持类似 Vim 的快捷键,程序员摸鱼神器。在线体验

Java 项目
12、onedev:一个用 Java 写的 Git 仓库管理平台。包含 Git 版本管理、持续集成、Issue 管理、代码搜索和审查等功能

13、Apktool:反编译 Android 安装包 APK 文件的工具
JavaScript 项目
14、amis:通过 JSON 配置就能生成各种后台页面。这是百度开源的前端低代码框架,中文文档快速上手

15、playground-macos:模拟 macOS 桌面样式的个人简介展示页

16、use-gesture:丰富鼠标和触摸手势的 React 库

17、Ink-wash-docs:一款基于 egg.js+Vue.js 的在线文档管理平台。功能包含:文档编辑和预览、团队管理、访问权限、协作编辑等

Kotlin 项目
18、tachiyomi:一款免费、开源的安卓漫画阅读器。支持:
- 多种漫画源
- 阅读本地漫画
- 更新漫画章节
- 等等

Objective-C 项目
19、UTM:运行在 iOS 和 macOS 系统上的虚拟机。通过 UTM 你可以在无需“越狱”的情况下,在 iPhone 和 iPad 上运行 Windows、Linux 等操作系统

PHP 项目
20、github-profile-views-counter:用来展示 GitHub 个人首页被访问次数的项目。使用方法:

Python 项目
21、learn-python:一份以代码和注释方式讲解 Python 的免费教程。每个 Python 基础语法和知识点都采用可以运行的代码为例讲解,再配上适当的注释和参考资料,让你快速上手 Python。此项目不仅可以当做学习 Python 的资料,还可以留着做为速查表
"""WHILE statement
@see: https://docs.python.org/3/tutorial/controlflow.html
@see: https://docs.python.org/3/reference/compound_stmts.html#the-while-statement
The while loop executes as long as the condition remains true. In Python, like in C, any
non-zero integer value is true; zero is false. The condition may also be a string or list
value, in fact any sequence; anything with a non-zero length is true, empty sequences are
false.
The test used in the example is a simple comparison. The standard comparison operators are
written the same as in C: < (less than), > (greater than), == (equal to), <= (less than or
equal to), >= (greater than or equal to) and != (not equal to).
"""
def test_while_statement():
"""WHILE statement"""
# Let's raise the number to certain power using while loop.
number = 2
power = 5
result = 1
while power > 0:
result *= number
power -= 1
# 2^5 = 32
assert result == 32
22、BaoTa:宝塔 Linux 服务器运维管理平台。简单好用的服务器运维平台,支持一键 LNMP 安装、管理集群、网站、数据库等功能,可以有效的提高操作的规范性和安全性,降低出错概率。这个开源项目是免费版,还有付费的专业版

23、recommenders:通过 Jupyter Notebook 形式呈现的推荐系统最佳实践。这是微软开源的推荐系统教程,项目中还包含推荐系统常用的 Python 工具箱

24、magic-wormhole:一条命令就能将文件安全地传送到另外一台电脑上的工具。基于 PAKE(Password-Authenticated Key Exchange)协议实现文件在公网的加密传输,发送和接收均仅需一条命令

Swift 项目
25、Design-Patterns-In-Swift:设计模式 Swift 5.0 实现。中文版
26、IGListKit:Instagram 推出的一套数据驱动的 UICollectionView 框架,用来创建快速且灵活的列表界面。提供了更简单的使用 UICollectionView 方式,并且支持对自己的数据模型进行自定义 diff 操作,提供更好的架构以复用 Cell 和组件
27、Observable-Swift:一个在 Swift 上实现 KVO 的轻量级工具。简单易用地解决了 Swift 相对于 Objective-C 缺少 Key Value Observing(KVO)的问题
// create a Observable<Int> variable
var x = Observable(0)
// add a handler
x.afterChange += { println("Changed x from \($0) to \($1)") }
// without operators: x.afterChange.add { ... }
// change the value, prints "Changed x from 0 to 42"
x <- 42
// alternativelyL x ^= 42, without operators: x.value = 42
其它
28、AntennaPod:一款免费、开源、没有广告的播客应用(Android 和 iOS)。由播客爱好者用爱开发和维护,支持在线播放和音频下载等功能,同时内置数以百万计的免费和付费播客源,从独立播主到大型新闻机构出版社,如 BBC、NPR 和 CNN 应有尽有,也可自行导入播客源

29、react-resume-site:一款免费的简历在线制作工具。用写 Markdown 的方式制作出好看的简历,在线尝试

30、awesome-compose:丰富且实用的 Docker Compose 示例集合。该项目中的例子可以作为参考和模板,从而快速完成 Docker Compose 的编写

31、tabix:一款 ClickHouse 的 Web 可视化查询和分析工具。通过它可以在浏览器上轻松查询 CH 的数据,还有丰富的图表帮助分析数据,最后还可选择内网搭建或者直接在线使用

32、vulhub:一个面向大众的开源漏洞环境集合。Vulhub 中包含了 180 余个丰富且真实的漏洞与其相应的环境,无需 Docker 知识即可通过一条简单的命令,跑起来一个存在某个漏洞的完整应用。安全研究人员能够方便地复现与研究漏洞,省去了学习复杂的部署知识、寻找有漏洞的旧版本应用、搭建依赖的服务等麻烦,从而可以快速验证修复方案
33、overleaf:一款支持在线协作的 LaTeX 编辑器

开源书籍
34、bitcoinbook:《Mastering Bitcoin 2nd Edition》精通比特币第 2 版

35、python-parallel-programming-cookbook-cn:《Python Parallel Programming Cookbook》Python 并行编程。在线阅读
机器学习
36、imgaug:这是个图像数据增强 Python 库。数据集的数量和质量对于机器学习很重要,而数据增强就是让有限的数据集产生更多的数据,增加训练样本的数量以及多样性。imgaug 就是专为机器学习准备的图像数据增强库

最后
如果你发现了 GitHub 上有趣的项目,就分享给大家伙吧。
以上就是本期的所有内容了,看完还不过瘾?
关注 HelloGitHub 公众号不仅可以收到第一时间的更新。点击菜单栏->往期->月刊
往期月刊所有的内容尽收眼底一次看过瘾!还有更多开源项目的介绍和宝藏项目等待你的发现。
开源月刊《HelloGitHub》第 62 期的更多相关文章
- HelloGitHub 开源月刊(第 55 期):终端“百战天虫”,来战?
兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...
- 《HelloGitHub月刊》第01期
<HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...
- 《HelloGitHub月刊》第 01 期
<HelloGitHub月刊> 因为现在这个项目只有我自己做,只敢叫"月刊",希望有志同道合者,快点加入到这个项目中来!同时,如果您有更好的建议或者意见,欢迎联系我.联 ...
- 《HelloGitHub月刊》第06期
前言 <HelloGitHub>月刊做到第06期了(已经做了6个月了),在GitHub上获得了100+的stars,虽然不多,但是我很知足了,说明有人觉得这个项目是有价值的.同时园子中的' ...
- 《HelloGitHub月刊》第 06 期
前言 <HelloGitHub>月刊做到第06期了(已经做了6个月了),在GitHub上获得了100+的stars,虽然不多,但是我很知足了,说明有人觉得这个项目是有价值的.同时园子中的' ...
- [洛谷日报第62期]Splay简易教程 (转载)
本文发布于洛谷日报,特约作者:tiger0132 原地址 分割线下为copy的内容 [洛谷日报第62期]Splay简易教程 洛谷科技 18-10-0223:31 简介 二叉排序树(Binary Sor ...
- 程序员的开源月刊:HelloGitHub(第 54 期)
兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...
- 更新啦!第 59 期《HelloGitHub》开源月刊
兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...
- 程序员的开源月刊《HelloGitHub》第61期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 内容包括:有趣.入门级的开源项目.开源书籍.实战项目.企业级项目等,让你在短时间内感 ...
随机推荐
- Warm_up(HCTF_2018)
Warm up 考察知识点: 文件包含漏洞 代码审计 解题步骤 首先我们进来看到了一个滑稽的表情,没啥别的东西,先看看源码 源码中发现有注释 source.php 我们访问source.php,得到代 ...
- Linux终端更改字体
1 概述 这里的终端是指通过F1-F6/F2-F7进入的纯命令终端. 修改字体可以通过setfont命令. 2 查看字体 可以通过查找目录consolefonts来确定本地机器上的字体位于哪里: fi ...
- 次小生成树 详解及模板 (仅kruskal)
思路 关于次小生成树,首先求出最小生成树,然后枚举每条不在最小生成树上的边(在原本的节点上添加一个vis属性进行判断即可),并把这条边放到最小生成树上面,然后就一定会形成环,那么我们在这条环路中取出一 ...
- 1070 Mooncake
Mooncake is a Chinese bakery product traditionally eaten during the Mid-Autumn Festival. Many types ...
- ASP.NET Core 存储session取不到值
该项目是一个mvc项目,我使用session存储登录后的用户信息,然后发现登录信息存储到session正常,这个时候立马去获取也正常 但是如果我跳转到首页后,再去获取session信息,发现sessi ...
- hdu1353 小暴力
题意: 题意是给你一个数,然后你有0.25,0.1,0.05,0.01的四种面额若干,让你求出最小的钱币纸张. 思路: 对于这种题目要自己观察两样东西,一个是四种面额之间的关系 ...
- nodejs-Buffer(缓冲区)
Node.js Buffer(缓冲区) JavaScript 语言自身只有字符串数据类型,没有二进制数据类型. 但在处理像TCP流或文件流时,必须使用到二进制数据.因此在 Node.js中,定义了一个 ...
- 【python】Leetcode每日一题-删除有序数组中的重复项
[python]Leetcode每日一题-删除有序数组中的重复项 [题目描述] 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现一次 ,返回删除后数组的新长度. 不要 ...
- IOCP实现高并发以及与传统socke编程的对比
前言 传统socket编程中服务端一般为每一个客户端创建一个线程(一对一).这样虽然可以使程序的结构简单明了并且方便对数据处理,但是这些都是建立在创建多个线程的基础上,也就是以牺牲线程为代价.一旦有大 ...
- c++中new[ ]与delete[ ]的分析
前言 以前对c++的new[]的了解就是开辟一块内存,直到我最近在程序中用到它才发现我的了解太浅. 问题分析 new[]得到的内存空间不会自动初始化 new[]是在堆区中动态分配指定大小的内存,但是这 ...