Go 语言开发必须知道的 17 种利器 | 码云周刊第 80 期
本期为大家精选了 码云 上优秀的 Go 语言开源项目,涵盖了文件服务系统、Web 开发框架、游戏服务器开发框架、API 工具、验证码、数据库、爬虫工具、端口转发工具等各个方面,希望能够给大家带来一点帮助:)
1、项目名称
分布式文件服务
项目简介:golang 基于 gridFs 的分布式文件服务,其支持:
1、POST GET 上传
2、图片大小控制
3、文件下载,秒传,转正处理等。
项目地址:https://gitee.com/jobob/gmfs
2、项目名称
Golang Web 开发框架
项目简介:Lessgo 是一款简单、稳定、高效、灵活的 golang web 开发框架,支持动态路由、自动化 API 测试文档、热编译、热更新等,实现前后端分离、系统与业务分离,完美兼容 MVC 与 MVVC 等多种开发模式,非常利于企业级应用与 API 接口的开发。
项目地址:https://gitee.com/henrylee/lessgo
3、项目名称
HTTP API 统一前端
项目简介:api front 是 HTTP API 统一前端,用于测试环境 api 统一管理,主要功能是请求代理转发、协议抓包分析、流量复制。
用于解决如下问题:
HTTP API 大行其道,开发调试(特别是联调)花费的时间、人力成本很高。
后端的 API 调用是一个黑盒,特别是有问题的时候,基本是抓瞎(目前一般是把请求信息记录到日志中去)。
线下联调测试环境复杂多变,配置文件经常变动,经常其中一个环境好了另外一个又坏了。
可将接口的请求历史记录全部记录方便排查问题
项目地址:https://gitee.com/hidu/api-front
4、项目名称
基于 Go 实现的验证码
项目简介:基于 Golang 实现的图片验证码生成库,可以实现随机字母个数,随机直线,随机噪点等。可以设置任意多字体,每个验证码随机选一种字体展示。
项目地址:https://gitee.com/longfei6671/gocaptcha
5、项目名称
GUI 自动化系统
项目简介:Go 语言跨平台 GUI 自动化系统, 控制键盘、鼠标、位图和读取屏幕, 窗口句柄以及全局事件监听。
项目地址:https://gitee.com/veni0/robotgo
6、项目名称
基于 Go 的 MySQL Proxy
项目简介:kingshard 是一个由 Go 开发高性能 MySQL Proxy 项目,kingshard 在满足基本的读写分离的功能上,致力于简化 MySQL 分库分表操作;能够让 DBA 通过 kingshard 轻松平滑地实现 MySQL 数据库扩容。 kingshard 的性能是直连 MySQL 性能的80%以上。
项目地址:https://gitee.com/flikecn/kingshard
7、项目名称
分布式游戏服务器开发框架
项目简介:xingo 是免费、开源、可定制、可扩展、节点支持“热更新”的高性能分布式服务器开发框架,采用 golang 语言开发,天生携带高并发场景的处理基因,继承了 golang 语言本身的各种优点,开发简单易上手并且功能强大。
它主要实现了高性能的异步网络库,分布式节点间的高性能 rpc 通信,日志管理,数据库支持(暂时只支持mongodb),goroutine安全的定时器, telnet 在线服务器调试工具等,可用的开发场景包括但不局限于 IM 即时通讯服务器,游戏服务器(已有多款公司级别的项目选择了xingo)等可以节省大量
游戏开发时间,让游戏开发人员可以将主要精力放到游戏玩法和游戏逻辑上。真正实现了修改配置文件就可以搭建自定义的分布式服务器架构。
项目地址:https://gitee.com/viphxin/xingo
8、项目名称
简单高效的搜索引擎
项目简介:本项目是基于 Go 实现的简单高效的搜索引擎,其特性如下:
高效索引和搜索(1M 条微博 500M 数据28秒索引完,1.65毫秒搜索响应时间,19K 搜索 QPS)
支持中文分词(使用 gse 分词包并发分词,速度 27MB/秒)
支持逻辑搜索
支持中文转拼音搜索(使用 gpy 中文转拼音)
支持计算关键词在文本中的紧邻距离(token proximity)
支持计算BM25相关度
支持自定义评分字段和评分规则
项目地址:https://gitee.com/veni0/riot
9、项目名称
OAuth 2.0 服务端工具
项目简介:Golang 实现的 OAuth 2.0 服务端,依照协议 RFC 6749 实现,具有简单使用、灵活、模块化的特点;支持内存存储、文件存储、redis 存储、mongodb 存储.
项目地址:https://gitee.com/lyric/oauth2
10、项目名称
Office Excel 文档类库
项目简介:Excelize 是 Go 语言编写的用于操作 Office Excel 文档类库,基于 ECMA-376 Office OpenXML 标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的 XLSX 文档。相比较其他的开源类库,Excelize 支持写入原本带有图片(表)、透视表和切片器等复杂样式的文档,还支持向 Excel 文档中插入图片与图表,并且在保存后不会丢失文档原有样式,可以应用于各类报表系统中。
项目地址:https://gitee.com/xurime/excelize
11、项目名称
IP 库的 Golang 服务
项目简介:我们大家做网站的时候,都会需要将用户的 IP 地址转换为归属地址功能,而之前的作法大都是从硬盘的数据文件中读取,这样不太高效。我这次将纯真 IP 库直接加载到内存中,并以 http 服务的方式提供接口出来。这样方便自己项目中所有的程序都能方便的接口 IP 查询功能了。
项目地址:https://gitee.com/freshcn/qqwry
12、项目名称
Go 语言 API 网关
项目简介:GoKu API Gateway CE 是开源 go 语言 API 网关,帮助企业进行 API 服务治理、API 性能安全维护,为企业数字化赋能。GoKu API Gateway CE,支持 OpenAPI 与微服务管理,支持私有云部署,实现 API 转发、请求参数转换、数据校验等功能,提供图形化界面管理,能够快速管理多个 API 网关,提高 API 业务安全性。
项目地址:https://gitee.com/eoLinker-API-Management/API-Gateway
13、项目名称
分布式爬虫平台
项目简介:一款分布式爬虫平台,帮助你更好的管理和开发爬虫。 内置一套爬虫定义规则(模版),可使用模版快速定义爬虫,也可当作框架手动开发爬虫。
项目地址:https://gitee.com/bilibala/YiSpider
14、项目名称
Go 实现的 IP 代理池
项目简介:Golang 实现的 IP 代理池,采集免费的代理资源为爬虫提供有效的代理。
项目地址:https://gitee.com/henson/ProxyPool
15、项目名称
端口转发工具
项目简介:Go 语言开发的端口转发工具,功能介绍:
支持 Web 控制台添加端口映射
支持对每条端口映射进行开启和关闭控制
支持 RestfulAPI 接口,方便被其它系统集成
支持每条端口转发的同时,再分发给多个端口,满足某些测试场景
项目地址:https://gitee.com/tavenli/port-forward
16、项目名称
RESTful API 文档生成工具
项目简介:apidoc 是一个简单的 RESTful API 文档生成工具,它从代码注释中提取特定格式的内容,生成文档。 目前支持支持以下语言:C#、C/C++、D、Erlang、Go、Groovy、Java、JavaScript、Pascal/Delphi、 Perl、PHP、Python、Ruby、Rust、Scala 和 Swift。
项目地址:https://gitee.com/caixw/apidoc
17、项目名称
开源文库系统 DocHub
项目简介:DocHub 文库通过 svg 矢量图来实现文档阅读体验的,我知道的文库站点中,新浪爱问是通过 png 等图片提供文档阅读体验的。
SVG相比 png、jpeg 等图片格式有很大的优势,至少放大不会失真,而且与JPEG 和 GIF 图像比起来,svg 尺寸更小,可压缩性更强,DocHub 通过 gzip,将 svg 文件压缩,一般情况下,能减少70%的文件大小,比如200kb的 svg,gzip 压缩后,只有60kb左右的大小。
使用 svg,大大提升了加载速度,优化了内容的阅读体验。
项目地址:https://gitee.com/truthhun/DocHub
如果大家有与 Go 语言相关的开源项目,记得托管到 码云 上哦,我们会及时给予推荐。最后,如果你喜欢以上提到的项目,别忘了分享给其他人哦!
/
REVIEW往期精彩