可能是国内最火的开源项目 —— Go 篇

20,579
原文链接: my.oschina.net

推荐阅读:

截止目前开源中国收录了 44517 款开源项目,囊括了最热门的各类开源项目,而软件的评分在一定程度上代表了软件的质量和热度,近年 Go 语言排名一路飙升,因此本文整理了 Go 语言中评分最高并且收藏量超过 100 的几款项目,以供开发者选择和交流,排名如下:

JetBrains 的 Go 开发工具 Gogland

评分:8.8;收藏量:106

Gogland 是 JetBrains 公司推出的 Go 语言集成开发环境。Gogland 同样基于 IntelliJ 平台开发,支持 JetBrains 的插件体系。

内网穿透工具 frp

评分:8.5;收藏量:864

frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。

极易搭建的自助 Git 服务 Gogs

评分:7.9;收藏量:702

Gogs 是一款极易搭建的自助 Git 服务,目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。

实时消息通信平台 Centrifugo

评分:7.9;收藏量:218

Centrifugo 是一个用 Golang 实现的基于 Websocket 或者 SockJS 的实时通信平台。

  • 支持数千个同时连接,提供基于频道的出版/订阅模式。PUB/SUB

  • 容易和现有系统集成– 不改变已有后端情况下为系统提供实时通信能力。

  • HTTP API 和已有后端通信 . API clients for Python, Ruby, PHP, Go, NodeJS.

  • 浏览器可以通过SockJS或者纯粹Websocket协议和centrifugal通信. 提供 iOS和Android平台SDK

  • 采用Redis实现分布式部署.

  • SHA-256 HMAC连接认证和隐私保护

  • 多种类型的频道 – 私有, 用户限制,客户端限制

  • 通过名字空间灵活配置频道

  • 支持即时消息和历史消息

  • 支持用户加入/离开消息

  • 网络重连后可以恢复消息

  • 内置管理界面,提供多种计量(Metrics)

  • 可用于WebRTC信令服务器

  • 多种部署手段(docker 镜像, RPM/DEB 包, Nginx 配置, TLS certificates)

  • MIT license

Go Web API 利器 Faygo

评分:7.9;收藏量:171

Faygo 使用全新架构,是最合适开发API接口的Go Web框架。用户只需定义一个struct Handler,就能自动绑定、验证请求参数并生成在线API文档。

faygo struct handler 多重用途合一

分布式RPC服务框架 rpcx

评分:7.9;收藏量:151

rpcx是一个类似阿里巴巴 Dubbo 和微博 Motan 的分布式的RPC服务框架,基于Golang net/rpc实现。rpcx的目标就是实现一个Go生态圈的Dubbo,为Go生态圈提供一个分布式的、多插件的、带有服务治理功能的产品级的RPC框架。

吞吐率

HTTP反向代理、负载均衡软件 Traefik

评分:7.8;收藏量:245

Træfɪk 是一个新型的http反向代理、负载均衡软件,能轻易的部署微服务. 它支持多种后端 (Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Rest API, file...) ,可以对配置进行自动化、动态的管理.

Architecture

个人云笔记 leanote

评分:7.8;收藏量:272

leanote是一款开源云笔记产品,使用Go的Web框架revelMongoDB开发完成。

Golang 实现的 IP 代理池 ProxyPool

评分:7.6;收藏量:159

ProxyPool 通过采集免费的代理资源为爬虫提供有效的代理。

代理池由四部分组成:

  • Getter:

    代理获取接口,目前有6个免费代理源,每调用一次就会抓取这个6个网站最新的100个代理放入Channel,可自行添加额外的代理获取接口;

  • Channel:

    临时存放采集来的代理,通过访问稳定的网站去验证代理的有效性,有效则并存入数据库;

  • Schedule:

    用定时的计划任务去检测数据库中代理IP的可用性,删除不可用的代理。同时也会主动通过Getter去获取最新代理;

  • Api:

    代理池的访问接口,提供get接口输出JSON,方便爬虫直接使用。