每月一更的《HelloGitHub》第 58 期,来啦!
HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。欢迎大家:
- 贡献代码
- 宣传你觉得优秀的项目
- Star 项目⭐️
本月刊是每月 28 号更新,再见月刊就是年后了。在这里提前祝大家:新年快乐!
下面便是第 58 期的内容啦,希望大家喜欢
以下为本期内容|每个月 28 号发布最新一期|点击查看往期内容
C# 项目
1、EverythingToolbar:把搜索和启动应用等功能整合到 Windows taskbar 的工具。效果如下图:
C++ 项目
2、ChordNova:一款开源免费的和弦生成工具。我不懂乐理,但单从这个软件的界面就感受到了专业,因为有很多乐理的名词😅
Go 项目
3、containers-the-hard-way:用 Go 实现迷你 Docker,包含 dokcer 核心功能的开源项目。该项目仅用 Linux 系统接口实现了类似容器的功能,这些能够帮助你更好地了解容器的工作方式。如果你想更深入地理解容器,就参考本项目写一个迷你 Docker 吧
4、vegeta:基于 Go 语言的 HTTP 压测工具。目前市面上的压测工具已经很多了,但是今天推荐的这款惊艳到我点是下面这条命令执行后的效果(vegeta+jaggr+jplot),让我们一起来感受下吧
echo 'GET http://localhost:8080' | \
vegeta attack -rate 5000 -duration 10m | vegeta encode | \
jaggr @count=rps \
hist\[100,200,300,400,500\]:code \
p25,p50,p95:latency \
sum:bytes_in \
sum:bytes_out | \
jplot rps+code.hist.100+code.hist.200+code.hist.300+code.hist.400+code.hist.500 \
latency.p95+latency.p50+latency.p25 \
bytes_in.sum+bytes_out.sum
5、delve:一款 Go 语言的调试工具。如果你还在像我一样用 fmt.Println
调试 go 的代码,就试试这个工具吧。万星的开源项目可不是开玩笑的,它上手简单并且支持多种方式调用,助你快速找到 Bug
6、rqlite:用 Go 实现的基于 SQLite 轻量级、分布式关系数据库。如果你对分布式数据库的原理及实现感兴趣的话,这个项目真的是你入门这方面的不二之选,这个项目用 SQLite 作为存储引擎,让你可以把更多的精力放在理解分布式的知识上,尝试阅读下这个项目的文档,相信你会对它感兴趣的。设计图如下:
Java 项目
7、JustAuth:帮你搞定第三方登陆的 Java 开源组件。使用简单、接入方便,帮你随心所欲地接入第三方登陆,让登陆变得简单。目前已经支持十多个平台,还在持续扩充中
8、java-design-patterns:设计模式 Java 的最佳实践,出自开源社区大佬们之手。做为有梦想和追求的 Java 程序员,当然需要会一些设计模式啦。这个项目虽然是英文的但是先看代码和图,尝试理解含义那么英文描述也就能猜的八九不离十了。不要让英语作为你不努力的借口,努力变强吧!在线阅读
9、apollo:携程开源的分布式配置中心。开箱即用理念发挥到极致,比如:服务器部分基于 Spring Boot 和 Spring Cloud 开发,运行方便无需额外的 Tomcat 应用容器。并且具备配置修改后即时生效、规范的权限、流程治理等特性,适用于微服务配置管理场景
10、Logi-KafkaManager:功能强大的 Kafka 集群监控和运维管理平台。强大到我一度以为它是付费的,如果你的公司用 Kafka 的话,可以试试主导把这个项目在公司内部用起来,那你离升职和加薪就不远了
11、Anki-Android:高效学习神器 Anki 安卓客户端。Anki 是一个帮助学习的记忆卡片软件,卡片正面是问题背面是答案,然后根据记忆公式帮你复习和记牢。下载地址 如果下载后不会用的话,本文点赞过 100 我出一份小白教程给大家上手这个神器
JavaScript 项目
12、cloudbase-framework:腾讯开源的云原生一体化部署工具。一键将项目部署上云,不限制框架和语言
13、newbee-mall-vue3-app:基于 Vue 3.0 技术栈的电商网站前端开源项目。它麻雀虽小五脏俱全,包含模块:首页、类型分类、搜索、地址管理、登录注册等等,该有的基本上都有涉及到。对新手友好,在熟悉 Vue 3.x 的朋友也可以来看看
14、X6:AntV 旗下的图编辑引擎。提供了开箱即用的交互组件和简单易用的节点定制能力,从而能够快速完成流程图、DAG 图、ER 图等图应用。示例代码:
import { Graph } from '@antv/x6';
const graph = new Graph({
container: document.getElementById('container'),
width: 800,
height: 600,
background: {
color: '#fffbe6', // 设置画布背景颜色
},
grid: {
size: 10, // 网格大小 10px
visible: true, // 渲染网格背景
},
});
15、hearthstone-battlegrounds-tools:暴雪炉石传说游戏的记牌插件。不懂编程的小伙伴拿去用就好了,支持 Windows 和 macOS 系统。开发者的话,这是一整套完整的 Electronjs 开发流程,从多个渲染进程的管理、不同平台的差异化处理、版本的控制与发布等方面都做了细致的封装,学起来吧。功能上她还具有以下特性:
- 🌴 当天战绩统计,历史战绩查询
- 🎉 统计你所使用过的英雄,自动计算每个英雄的平均排名、选择率
- 🙈 选择英雄时展示可选英雄的大数据选择率、平均排名等
- 🃏 对局信息记录,记录对局过的对手阵容
- ✈️ 一键拔线(可怕)
- 等等
16、Multiavatar:生成人物头像的 JS 库。支持随机生成一个好看、独特、多文化的头像
PHP 项目
17、mochat:一套开源的企业微信开发框架和管理系统。基于 PHP 开发的前后端分离、功能强大的企业微信管理平台
18、easy-sms:短信发送 PHP 组件。特点:
- 支持目前市面多家服务商
- 一套写法兼容所有平台
- 简单配置即可灵活增减服务商
- 内置多种服务商轮询策略、支持自定义轮询策略
- 等等
use Overtrue\EasySms\EasySms;
$config = [
// HTTP 请求的超时时间(秒)
'timeout' => 5.0,
// 默认发送配置
'default' => [
// 网关调用策略,默认:顺序调用
'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,
// 默认可用的发送网关
'gateways' => [
'yunpian', 'aliyun',
],
],
// 可用的网关配置
'gateways' => [
'errorlog' => [
'file' => '/tmp/easy-sms.log',
],
'yunpian' => [
'api_key' => '824f0ff2f71cab52936axxxxxxxxxx',
],
'aliyun' => [
'access_key_id' => '',
'access_key_secret' => '',
'sign_name' => '',
],
//...
],
];
$easySms = new EasySms($config);
$easySms->send(13188888888, [
'content' => '您的验证码为: 6379',
'template' => 'SMS_001',
'data' => [
'code' => 6379
],
]);
Python 项目
19、Zappa:Python 无服务框架,功能即服务(serverless)。你知道 serverless 是什么吗?不懂的老铁扣 1 🤝 我摊牌了我不懂这个玩意儿。直到我看到了 Zappa 这个项目,然后我的脑海里就几个字:甩手掌柜。用它开发完功能,几个命令打包上传到云服务平台,然后就不用管啦!不仅程序员喜欢它,老板也喜欢因为能够降低服务器成本(省钱)。来感受下“知识”的力量吧
20、streamlit:能够快速地把数据制作成可视化、交互页面的 Python 框架。分分钟让你的数据变成图表,并且该项目提供免费的共享服务平台帮你的项目上线,方便数据的共享和讨论
21、lastversion:帮你找到库或者软件最新版本的 Python 工具。它可以避开不同项目作者使用的不同风格的版本号,获取一个项目的最新版本号,下载或安装它们。本项目可用于 build system,比如自动更新脚本。支持从这些网站搜索:GitHub、GitLab、PyPI 等,确保版本最新和稳定
# 获取最新的 Linux 版本号和最新的 Wordpress 版本号
lastversion linux
# 作者的版本标签:v5.10
# 本项目提供的版本标签:5.10
lastversion wordpress
# 作者的版本标签:5.6
# 本项目提供的版本标签:5.6
22、xonsh:支持 Python 赋能的 shell。如果你不会编写 shell 脚本,但是会 Python。那通过这个项目可以让你混用 shell 命令和 Python 语法,高效快速地完成你想要的功能
Ruby 项目
23、spree:基于 Ruby on Rails 实现的大而全的电子商城开源项目。功能齐全项目结构清晰:
- spree_api:REST API 接口
- spree_frontend:移动优先,可自定义的店面
- spree_backend:功能丰富的管理面板
- spree_cmd:开发人员的命令行工具
- spree_core:数据层、服务和邮件、基本组件
Swift 项目
24、mas:Mac App Store 命令行版
25、Moya:基于 Alamofire 的轻量级 Swift 网络层框架。它提供了网络抽象层,使用起来足够简单,能够方便地与 RXSwift、PromiseKit、ObjectMapper 结合,轻松地应对常见的开发任务。同时也非常全面,应对复杂任务也同样容易。最后 Moya 有一个很棒的社区,贡献者们提供了很多实用的扩展
provider = MoyaProvider<GitHub>()
provider.request(.zen) { result in
switch result {
case let .success(moyaResponse):
let data = moyaResponse.data
let statusCode = moyaResponse.statusCode
// do something with the response data or statusCode
case let .failure(error):
// this means there was a network failure - either the request
// wasn't sent (connectivity), or no response was received (server
// timed out). If the server responds with a 4xx or 5xx error, that
// will be sent as a ".success"-ful response.
}
}
26、MTMR:自定义 TouchBar 的应用。你问我体验如何?我没钱买带 TouchBar 的电脑啊,你装上我看看就行了
其它
27、game-programmer:游戏程序员的学习路径图。一位游戏开发大神开源的项目,希望能够帮助向往游戏开发的你 or 你的孩子,走上游戏开发这条“不归路”。中文
28、theia:Eclipse 开源的 IDE 工具。我岁数大了,用惯了一个 IDE 就不想换了,喜欢尝鲜的小伙伴可以去把玩一下。看介绍像是一个拥抱开源,与 VS Code 功能相近的开发工具
29、luarocks:Lua 包管理工具。支持三大平台,安装和使用如下:
$ wget https://luarocks.org/releases/luarocks-3.5.0.tar.gz
$ tar zxpf luarocks-3.5.0.tar.gz
$ cd luarocks-3.5.0
$ ./configure && make && sudo make install
$ sudo luarocks install luasocket
$ lua
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
> require "socket"
30、Ad-papers:计算广告相关论文、学习资料和业界分享集合
31、awesome-seo:有关 Google SEO 和流量变现资料的项目。该项目是作者学习 SEO 过程中整理的权威资料,推荐给有个人网站的小伙伴们
32、makeaplan_public:使用 Flutter 和 Go 开发的「制定计划 APP」。帮助用户记录和追踪自己的计划,辅助用户完成自己的目标。手机端用的是 Flutter 后端用 Go 实现,服务器和客户端通过 ProtoBuffer+grpc 进行通信。可作为学习 Flutter 和 Go 的实战项目
33、free-font:免费可商用的字体集合。这个项目收录的都是免费可商用的字体,并且仔细地标记出了商用时是否需要获取授权等细节
开源书籍
34、DeepLearning-500-questions:《深度学习 500 问》AI 工程师面试知识点的书籍。内容涵盖深度学习的知识点及各大公司常见的笔试题
机器学习
35、nanodet:移动端的轻量级 Anchor-Free 目标检测模型。具有体积小(1.8 MB)、速度快(10.23 ms)、便于训练(硬件要求低)、部署简单(安卓示例)等优点
36、DeepMoji:通过深度学习把自然语言转化成 emoji 表情的项目。用机器学习来了解文字表达的情感,最后返回几个感情相近的 emoji 表情。该项目有趣且易于学习,包含机器学习项目该有的所有内容:示例、模型、数据、测试、源码等
最后
如果你发现了 GitHub 上有趣的项目,欢迎在 HelloGitHub 项目提 issues 告诉我们。
关注 HelloGitHub 公众号 收到第一时间的更新。
还有更多开源项目的介绍和宝藏项目等待你的发掘。
作者:削微寒
扫描左侧的二维码可以联系到我
本作品采用署名-非商业性使用-禁止演绎 4.0 国际 进行许可。