0%

高效开发ToolKit

awesome

  • sindresorhus/awesome Awesome lists about all kinds of interesting topics

  • shell

    • alebcay/awesome-shell

      A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.

  • golang

    • avelino/awesome-go

      A curated list of awesome Go frameworks, libraries and software https://awesome-go.com/

    • jobbole/awesome-go-cn

      Go 资源大全中文版, 内容包括:Web框架、模板引擎、表单、身份认证、数据库、ORM框架、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析、教程和(电子)书等。

  • php

    • ziadoz/awesome-php

      A curated list of amazingly awesome PHP libraries, resources and shiny things.

    • kahun/awesome-sysadmin

      A curated list of amazingly awesome open source sysadmin resources inspired by Awesome PHP.

    • JingwenTian/awesome-php

      收集整理一些常用的PHP类库, 资源以及技巧. 以便在工作中迅速的查找所需…

    • chiraggude/awesome-laravel

      A curated list of bookmarks, packages, tutorials, videos and other cool resources from the Laravel ecosystem

  • OpenResty

  • vscode

    • viatsko/awesome-vscode

      A curated list of delightful Visual Studio Code packages and resources. For more awesomeness, check out awesome.

golang

  • go周边

  • 代码组织

  • 网络与框架

    • valyala/fasthttp

      Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http

    • gorilla/mux

      A powerful HTTP router and URL matcher for building Go web servers with 🦍 http://www.gorillatoolkit.org/pkg/mux

    • gorilla/websocket A WebSocket implementation for Go.

      Gorilla WebSocket is a Go implementation of the WebSocket protocol.

    • golang/protobuf

      Go support for Protocol Buffers - Google’s data interchange format

    • micro/go-micro A Go microservices development framework

      go 微服务框架

    • coredns/coredns

      CoreDNS is a DNS server/forwarder, written in Go, that chains plugins. Each plugin performs a (DNS) function.

    • go-kratos/kratos

      Kratos是bilibili开源的一套Go微服务框架,包含大量微服务相关框架及工具。

  • 路由

  • 并发

    • golang/sync Go官方提供的“sync”和“sync/atomic”之外的 并发原语 扩展包

      This repository provides Go concurrency primitives in addition to the ones provided by the language and “sync” and “sync/atomic” packages.
      https://pkg.go.dev/golang.org/x/sync

      • errgroup 将一个通用的父任务拆成几个小任务并发执行的场景,其实,将一个大的任务拆成几个小任务并发执行,可以有效地提高程序的并发度

        Package errgroup provides synchronization, error propagation, and Context cancelation for groups of goroutines working on subtasks of a common task.

      • semaphore

        Package semaphore provides a weighted semaphore implementation.

      • singleflight

        Package singleflight provides a duplicate function call suppression mechanism.

      • syncmap

        Package syncmap provides a concurrent map implementation.

    • neilotoole/errgroup

      neilotoole/errgroup is a drop-in alternative to Go’s wonderful sync/errgroup but limited to N goroutines. This is useful for interaction with rate-limited APIs, databases, and the like.

    • marusama/cyclicbarrier 循环栅栏:CyclicBarrier允许一组 goroutine 彼此等待,到达一个共同的执行点。同时,因为它可以被重复使用,所以叫循环栅栏。具体的机制是,大家都在栅栏前等待,等全部都到齐了,就抬起栅栏放行

      CyclicBarrier is a synchronizer that allows a set of goroutines to wait for each other to reach a common execution point, also called a barrier.

    • Jeffail/tunny A goroutine pool for Go

      Tunny is a Golang library for spawning and managing a goroutine pool, allowing you to limit work coming from any number of goroutines with a synchronous API.

    • panjf2000/ants 🐜⚡️A high-performance goroutine pool for Go, inspired by fasthttp.

      ants是一个高性能的协程池,实现了对大规模goroutine的调度管理、goroutine复用,允许使用者在开发并发程序的时候限制协程数量,复用资源,达到更高效执行任务的效果。

    • 并发安全map orcaman/concurrent-map

      a thread-safe concurrent map for go

    • 高并发框架 LMAX-Exchange/disruptor

      High Performance Inter-Thread Messaging Library
      disruptor

  • 缓存及数据库

  • 配置操作包

    • ini 超赞的 Go 语言 INI 文件操作
    • goconfig 一个易于使用,支持注释的 Go 语言配置文件解析器
  • 定时任务

  • 认证

    • jwt-go JSON Web令牌(JWT)
  • 测试

    • smartystreets/goconvey GoConvey is awesome Go testing

      Go testing in the browser. Integrates with go test. Write behavioral tests in Go. http://goconvey.co

    • stretchr/testify Testify - Thou Shalt Write Tests

      A toolkit with common assertions and mocks that plays nicely with the standard library

      • assert
      • require
      • mock
        vektra/mockery:A mock code autogenerator for golang
      • suite
    • appleboy/gofight API Handler Testing for Golang Web framework.

      Testing API Handler written in Golang.

    • golang/mock GoMock is a mocking framework for the Go programming language.

      GoMock is a mocking framework for the Go programming language. It integrates well with Go’s built-in testing package, but can be used in other contexts too.

    • bouk/monkey

      Monkey patching in Go https://bou.ke

    • onsi/ginkgo BDD Testing Framework for Go http://onsi.github.io/ginkgo/

    • DATA-DOG/go-sqlmock Sql mock driver for golang to test database interactions

      sqlmock is a mock library implementing sql/driver. Which has one and only purpose - to simulate any sql driver behavior in tests, without needing a real database connection. It helps to maintain correct TDD workflow.

    • jarcoal/httpmock HTTP mocking for Golang

      Easy mocking of http responses from external resources.

  • API文档

  • 工具箱toolkit

  • 热编译工具

    • gravityblast/fresh

      Build and (re)start go web apps after saving/creating/deleting source files.

    • cosmtrek/air

      Live reload for Go apps

    • silenceper/gowatch

      gowatch is a command line tool that builds and (re)starts your go project everytime you save a Go or template file.||Go程序热编译工具,提升开发效率

    • codeskyblue/fswatch

      Watch file change, and trigger commands. (Cross platform)

  • 依赖注入

  • 命令行工具

    • spf13/cobrav A Commander for modern Go CLI interactions

      Cobra is both a library for creating powerful modern CLI applications as well as a program to generate applications and command files.

    • tomnomnom/gron

      Make JSON greppable!

  • 类型转换

    • mailru/easyjson Fast JSON serializer for golang.

      Package easyjson provides a fast and easy way to marshal/unmarshal Go structs to/from JSON without the use of reflection. In performance tests, easyjson outperforms the standard encoding/json package by a factor of 4-5x, and other JSON encoding packages by a factor of 2-3x.

    • mitchellh/mapstructure Go library for decoding generic map values into native Go structures.

      mapstructure is a Go library for decoding generic map values to structures and vice versa, while providing helpful error handling.

  • 日志

    • sirupsen/logrus Structured, pluggable logging for Go.

      Logrus is a structured logger for Go (golang), completely API compatible with the standard library logger.

    • uber-go/zap Blazing fast, structured, leveled logging in Go.

      Uber推出的一个快速、结构化的分级日志库

    • cihub/seelog Seelog is a native Go logging library that provides flexible asynchronous dispatching, filtering, and formatting.

      灵活的异步调度、格式化和过滤功能

  • 文件处理

    • jung-kurt/gofpdf A PDF document generator with high level support for text, drawing and images

      注意:该库不支持中文!!!

    • signintech/gopdf A simple library for generating PDF written in Go lang

      注意:支持中文

  • 错误与异常处理

    • pkg/errors Simple error handling primitives

      Package errors provides simple error handling primitives.

  • 参数验证

    • asaskevich/govalidator

      [Go] Package of validators and sanitizers for strings, numerics, slices and structs

    • go-playground/validator

      Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving

php

MySQL

  • dbcli/mycli

    A command line client for MySQL that can do auto-completion and syntax highlighting.
    A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting. http://mycli.net

效率工具

网关

  • Lua

    • Kong/kong The Cloud-Native API Gateway

      Kong is a cloud-native, fast, scalable, and distributed Microservice Abstraction Layer (also known as an API Gateway, API Middleware or in some cases Service Mesh). Made available as an open-source project in 2015, its core values are high performance and extensibility.
      kong dashborad: pantsel/konga
      点评: 开源版本功能基本够用

    • apache/incubator-apisix

      Cloud-Native Microservices API Gateway https://www.iresty.com

  • Java

    • Netflix/zuul

      Zuul is a gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
      点评: 用Spring Cloud全家桶首选

  • golang

    • RESTful HTTP API 转 gRPC 反向代理网关: grpc-ecosystem/grpc-gateway gRPC to JSON proxy generator following the gRPC HTTP spec

      The grpc-gateway is a plugin of the Google protocol buffers compiler protoc. It reads protobuf service definitions and generates a reverse-proxy server which ‘translates a RESTful HTTP API into gRPC.

    • API网关: TykTechnologies/tyk Tyk Open Source API Gateway written in Go

      Tyk is a lightweight, open source API Gateway and Management Platform enables you to control who accesses your API, when they access it and how they access it. Tyk will also record detailed analytics on how your users are interacting with your API and when things go wrong.
      点评: 功能较全,但是授权方面是个问题

    • HTTP API 网关: fagongzi/gateway An HTTP API Gateway

      Gateway is a restful API gateway based on HTTP, which can be used as a unified API access layer.
      点评: 全开源,自主可控性高

    • devopsfaith/krakend Ultra performant API Gateway with middlewares

      An open framework to assemble ultra performance API Gateways with middlewares; core service of the KrakenD API Gateway.

    • henrylee2cn/teleport

      Teleport is a versatile, high-performance and flexible socket framework. It can be used for RPC, micro services, peer-peer, push services, game services and so on.

    • 悟空 API 网关 eolinker/goku-api-gateway A Powerful HTTP API Gateway in pure golang!

      Goku API Gateway is a Golang-based microservice gateway that enables high-performance dynamic routing, multi-tenancy management, API access control, etc. It’s also suitable for API management under micro-service system.
      点评:开源版基本不能投产,商业版功能丰富

    • haxpax/gosms Your own local SMS gateway in Go

服务网格

  • golang

    • hashicorp/consul

      Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.

  • java

    • Netflix/eureka AWS Service registry for resilient mid-tier load balancing and failover.

      Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.

  • k8s

    • istio/istio Connect, secure, control, and observe services. https://istio.io

      An open platform to connect, manage, and secure microservices.

APM应用性能监控

  • cat CAT 作为服务端项目基础组件,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。

  • skywalking APM, Application Performance Monitoring System

调用链监控

  • jaeger CNCF Jaeger, a Distributed Tracing Platform

CI/CD工具

画图工具

性能测试工具

  • wg/wrk

    Modern HTTP benchmarking tool

git

  • tj/git-extras

    GIT utilities – repo summary, repl, changelog population, author commit percentages and more