扫一扫
关注 HG 公众号
发现更多开源乐趣

Go 项目

兴趣是最好的老师,HelloGitHub 就是帮你找到编程的兴趣。

gowp

第 45 期 Star 196 Watch 11 Fork 28 中文
Go 高性能异步并发线程池。接口调用简单、支持错误返回、无论排队多少任务,都不会阻止提交任务。可用于控制并发访问、并发执行。示例代码:

package main

import (
    "fmt"
    "time"

    "github.com/xxjwxc/gowp/workpool"
)

func main() {
    wp := workpool.New(10)             //设置最大线程数
    for i := 0; i < 20; i++ { //开启20个请求
        ii := i
        wp.Do(func() error {
            for j := 0; j < 10; j++ { //每次打印0-10的值
                time.Sleep(1 * time.Second)
            }
            return nil
        })
    }

    wp.Wait()
    fmt.Println("down")
}

gods

第 45 期 Star 8.3k Watch 348 Fork 952
简单易用的 Go 语言各种数据结构和算法,并封装成了一个库,开箱即食。示例代码:

type Stack interface {
    Push(value interface{})
    Pop() (value interface{}, ok bool)
    Peek() (value interface{}, ok bool)

    containers.Container
    // Empty() bool
    // Size() int
    // Clear()
    // Values() []interface{}
}

goproxy

第 45 期 Star 4.0k Watch 63 Fork 252 中文
Go 模块安装代理工具。还在因为安装 Go 项目依赖失败而抓耳挠腮吗?快试试这个项目吧
goproxy

statping

第 46 期 Star 3.0k Watch 49 Fork 226
一个 Go 编写的服务状态展示页项目。通过该项目可以快速搭建起一个展示服务可用状态、服务质量的页面
statping

pg_flame

第 45 期 Star 1.3k Watch 17 Fork 18
Postgres 数据库性能分析工具,把 EXPLAIN ANALYZE 结果通过火焰图展示
pg_flame

gochat

第 44 期 Star 619 Watch 16 Fork 95 中文
纯 Go 实现的轻量级即时通讯系统。技术上各层之间通过 rpc 通讯,使用 redis 作为消息存储与投递的载体,相对 kafka 操作起来更加方便快捷。各层之间基于 etcd 服务发现,在扩容部署时将会方便很多。架构、目录结构清晰,文档详细。而且还提供了 docker 一件构建,安装运行十分方便,推荐作为学习项目
gochat

mkcert

第 44 期 Star 24.2k Watch 417 Fork 996
无需配置,执行一条命令让本地的开发环境实现 HTTPS 的工具。效果如下:

$ mkcert -install
Created a new local CA at "/Users/filippo/Library/Application Support/mkcert" 💥
The local CA is now installed in the system trust store! ⚡️
The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊

$ mkcert example.com "*.example.com" example.test localhost 127.0.0.1 ::1
Using the local CA at "/Users/filippo/Library/Application Support/mkcert" ✨

Created a new certificate valid for the following names 📜
 - "example.com"
 - "*.example.com"
 - "example.test"
 - "localhost"
 - "127.0.0.1"
 - "::1"

The certificate is at "./example.com+5.pem" and the key at "./example.com+5-key.pem" ✅

mkcert

evans

第 44 期 Star 1.5k Watch 14 Fork 67 中文
基于 Go 语言实现的支持交互模式的 gRPC 客户端,让调试、测试 gRPC API 更加容易
evans

guide

第 44 期 Star 7.1k Watch 189 Fork 665 中文
Uber 内部的 Go 风格规范。中文翻译版

zerolog

第 43 期 Star 3.4k Watch 53 Fork 211
一个速度快、专门用于输出 JSON 格式日志的库。还在为解析不规则的日志而烦恼吗?有了 zerolog 你可以跳起来了!当然它还有低效但可在控制台输出漂亮日志的模式,快去试试吧。示例代码:

package main

import (
    "github.com/rs/zerolog"
    "github.com/rs/zerolog/log"
)

func main() {
    zerolog.TimeFieldFormat = zerolog.TimeFormatUnix

    log.Info().Msg("hello world")
}

// Output: {"time":1516134303,"level":"info","message":"hello world"}

zerolog