Skip to content

Latest commit

 

History

History
453 lines (228 loc) · 12.5 KB

README.md

File metadata and controls

453 lines (228 loc) · 12.5 KB

WARNING: The English list is likely to lag behind the Chinese one. If you want a guarantee of the latest content, please visit the Chinese list.

Contents

Audio/Music

Libraries for manipulating audio.

Authentication & OAuth

Libraries for implementing authentications schemes.

Command Line

Standard CLI

Libraries for building standard or basic Command Line applications

Advanced Console UIs

Libraries for building Console Applications and Console User Interfaces

  • gcli Go CLI application, tool library, running CLI commands, support console color, user interaction, progress display, data formatting display, generate bash/zsh completion add more features.

Configuration

Libraries for configuration parsing

  • ini: Go INI config management. support multi file load, data override merge. parse ENV variable, parse variable reference.

Continuous Integration

Tools for help with continuous integration

  • Cyclone: A cloud native CI/CD platform built for container workflow, written in Go, powered by @caicloud.

CSS Preprocessors

Libraries for preprocessing CSS files

Data Structures

Generic datastructures and algorithms in Go.

  • go-tagexpr: An interesting go struct tag expression syntax for field validation, etc.

Database

Databases implemented in Go.

  • CovenantSQL:A decentralized, crowdsourcing SQL database on blockchain.
  • DTM:A distributed transaction management system. Idempotency is ensured by sdk elegantly. Multi language supported.
  • Godis: A Golang implemented high-performance Redis server and cluster.
  • LedisDB:A high performance NoSQL like Redis powered by Go.
  • Tedis: A TiKV-based NoSQL database with strong consistency and compatibility with Redis protocol.
  • TiDB:A distributed HTAP database compatible with the MySQL protocol.
  • NutsDB: A simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set. Database tools.

SQL query builder, libraries for building and using SQL.

Database Drivers

Libraries for connecting and operating databases.

  • Relational Databases

  • NoSQL Databases

  • Search and Analytic Databases

Date & Time

Libraries for working with dates and times.

Distributed Systems

Packages that help with building Distributed Systems.

  • GoFrame: A modular, powerful, high-performance and enterprise-class application development framework of Golang. I providing a series of core components and dozens of practical modules.
  • Kratos Kratos is a lightweight, customizable, cloud native microservice framework, which offers convenient capabilities to help you quickly build a bulletproof application from scratch。

Email

Libraries that implement email creation and sending

Embeddable Scripting Languages

Embedding other languages inside your go code

Financial

Packages for accounting and finance

Forms

Libraries for working with forms.

Game Development

Awesome game development libraries.

Generation & Generics

Tools to enhance the language with features like generics via code generation

Goroutines

Tools for managing and working with Goroutines.

  • ants: A high-performance goroutine pool in Go.

GUI

Libraries for building GUI Applications

Hardware

Libraries, tools, and tutorials for interacting with hardware.

Images

Libraries for manipulating images.

Logging

Libraries for generating and working with log files.

Machine Learning

Libraries for Machine Learning.

  • gorse: A High Performance Recommender System Package based on Collaborative Filtering for Go.

Messaging

Libraries that implement messaging systems

Miscellaneous

These libraries were placed here because none of the other categories seemed to fit

Natural Language Processing

Libraries for working with human languages.

Networking

Libraries for working with various layers of the network

  • gnet: A high-performance, lightweight, nonblocking, event-loop networking library written in pure Go.
  • Kube-OVN: An OVN-based Kubernetes Network Fabric for Enterprises.
  • Pholcus: Pholcus is a distributed, high concurrency and powerful web crawler software.
  • Surfer: Package surfer is a high level concurrency http client. It has surf andphantom download engines, highly simulated browser behavior, the function of analog login and so on.
  • Tao: Asynchronous TCP framework.
  • Teleport: Teleport is a versatile, high-performance and flexible TCP socket framework. It can be used for peer-peer, rpc, gateway, micro services, push services, game services and so on.

OpenGL

Libraries for using OpenGL in Go.

ORM

  • GORM: The fantastic ORM library for Golang, aims to be developer friendly.

Package Management

Libraries for package and dependency management.

Pool

General object pool.

Resource Embedding

Science and Data Analysis

Libraries for scientific computing and data analyzing.

Security

Libraries that are used to help make your application more secure.

Serialization

Libraries and tools for binary serialization

Server Applications

  • Ran: a simple static web server which support digest authentication, gzip compression and TLS encryption.

Template Engines

Libraries and tools for templating and lexing.

Testing

Libraries for testing codebases and generating test data.

  • Testing Frameworks

  • Mock

  • Fuzzing and delta-debugging/reducing/shrinking

Text Processing

Libraries for parsing and manipulating texts.

  • Specific Formats

Third-party APIs

Libraries for accessing third party APIs.

Utilities

General utilities and tools to make your life easier.

  • g: Golang version manager.
  • soar: A tool, which can help SQL optimization and rewrite. It's developed and maintained by the DBA Team of Xiaomi AI&Cloud.
  • tsdump: Database table structure dump tool.

Validation

Libraries for validation.

Version Control

Libraries for version control.

Video

Libraries for manipulating video.

  • lal:Golang audio/video live streaming library/client/server. support RTMP, RTSP(RTP/RTCP), HLS, HTTP[S]/WebSocket[s]-FLV/TS, H264/H265/AAC, relay, cluster, record, HTTP API/Notify.

Web Frameworks

Full stack web frameworks.

  • Beego:Beego is an HTTP framework for rapid development of Go applications. It can be used to develop APIs, web apps and backend services quickly. It is a RESTful framework. It has the ease of use, intelligent, modular , high-performance characteristics.
  • Faygo:Faygo is a fast and concise Go Web framework that can be used to develop high-performance web app(especially API) with fewer codes. Just define a struct Handler, Faygo will automatically bind/verify the request parameters and generate the online API doc.
  • Gin-X Gin template, more components to improve development efficiency.

Middlewares

Actual middlewares

  • Gin Metrics:A middleware based on Gin that is responsible for exposing the requested logs to Metrics, showing it in Grafana after being crawled by Prometheus. In less than 10 minutes, a monitoring system can be built on the original architecture.
  • Gaea: A MySQL proxy, it's developed by XiaoMi b2c-systech team.

Libraries for creating HTTP middlewares

Routers

Web-oriented routers.

  • Gorouter: Gorouter is a simple and fast HTTP router for Go. It is easy to build RESTful APIs and your web framework.

Tools

Go software and plugins.

Code Analysis

Redis Analysis

  • go-redis-memory-analysis 🔎 Analyzing memory of redis is to find the keys(prefix) which used a lot of memory, export the analysis result into csv file.

Editor Plugins

Go Tools

Software Packages

Software written in Go.

DevOps Tools

  • Gebug - A tool that makes debugging of Dockerized Go applications super easy by enabling Debugger and Hot-Reload features, seamlessly.
  • http-log-exporter - A Prometheus exporter for nginx、gin HTTP log, support histogram and exemplar configuration.

Other Software

Resources

Where to discover new Go libraries.

Benchmarks

Conferences

E-Books

Twitter

Websites

Windows

Tutorials