Read the awesome- Go project, put together a lot of go open source projects. But awesome- Go collects too much, and each item is not described in detail. Therefore, I have carefully selected more than 100 open source projects (not limited to github open source projects) according to the materials provided by the Go Language Chinese community and the classification of common components in Internet enterprise architecture design, and divided them into the following ten categories. The project can be interpreted as a Chinese version of awesome go created by Internet IT people. This project is intended to help those who want to learn from the excellent Golang open source project and want to quickly find the right wheels when designing the Internet architecture.

directory

  • The monitoring system
  • Container technology
  • PaaS tools
  • Big data
  • Micro service
  • CI/CD
  • Database technology
  • Storage technology
  • Distributed system
  • The messaging system
  • Server Management
  • Security tools
  • Web tools
  • Web tools
  • Web framework
  • Blockchain technology
  • other

The monitoring system

project Introduction to the
OpenFalcon OpenFalcon is xiaomi’s open source monitoring system. Function: Data collection free configuration: Agent self-discovery, Plugin, active push mode; Capacity level expansion: The production environment collects, alarms, stores, and draws data 500,000 times per second. Alarm policy self-discovery: Supports policy templates, template inheritance and overwriting, multiple alarm modes, and rollback. Humanized alarm Settings: Supports maximum alarm times, alarm severities, alarm recovery notification, alarm suspension, different thresholds in different time periods, maintenance periods, and alarm merging. Efficient query of historical data: Returns the historical data of hundreds of indicators in one year in seconds. Humanization of Dashboard: multi-dimensional data display, customized Dashboard and other functions. Architecture design high availability: the whole system has no core single point, easy operation and maintenance, easy deployment.
banshee Periodic index monitoring system.
Kapacitor Kapacitor is an open source framework for processing, monitoring, and alerting time series data.
Pome Pome stands for Postgres Metrics. Pome is a PostgreSQL metric meter that tracks the health of your database.
pingd Pingd is the simplest monitoring service in the world, written in Golang. The software supports IPv6, but the server does not. Pingd allows you to ping thousands of IPs simultaneously and manage monitored hosts during this time. Users provide a host name or IP, along with their email address, and use three generated URLs to start, stop, or delete your tracking. Notifications are sent whenever your server is down or is online in the background, and control URLs are included.
actiontech zabbix mysql monitor Percona Monitoring plugins zabbix is an open source MySQL monitoring plugin and template, which enables Low Level Discovery to automatically discover multi-instance environments. Support performance_schema
rtop Top is a simple agentless remote server monitoring tool that works over SSH connections. You do not need to install any software on the monitored server. Rtop directly connects to the server to be monitored over SSH and runs commands to collect monitoring data. Rtop automatically updates monitoring data every few seconds, similar to other *top commands
Prometheus Prometheus is an open source service monitoring system and time series database that provides monitoring data storage, display, and alarm functions
bosun Professional cross-platform open source system monitoring project, written in go language, flexible templates and expressions combined with a variety of collector can monitor any application or system level running data, lighter than Zabbix, easier to start with and more suitable for customization.
urlooker Monitor web service availability and access quality, written in go language, easy to install and secondary development. Supports the following features: return status code detection; Page response time detection; Page keywords matching detection; Cookie access; Agent is deployed in multiple equipment rooms and can be accessed by designated equipment rooms. Detection results can be pushed to open-Falcon. SMS and email alarms are supported
satellite A tool/library for monitoring the health of Kubernetes. It features lightweight periodic testing, high availability and flexible network partitioning, no single point of failure, and storage of monitoring data in a time series format.
checkup A distributed lock-free site health check tool. Support to check HTTP, TCP, DNS, etc status and save the results in S3. It comes with a nice interface.
zabbixctl Zabbixctl is a command line tool using the Zabbix service API, which provides an effective way to query and process trigger status, host latest data and user groups.
cloudinsight-agent Cloudinsight is an open source monitoring client that provides visual monitoring as a saas platform. The Cloudinsight probe collects various metrics for its operating system and sends them to the Cloudinsight backend service
owl OWL is an open source distributed monitoring system, presentation environment from TalkingDatahttp://54.223.127.87/,Password Demo/Demo
SmartPing SmartPing is a tool for detecting the PING between devices. It supports mutual PING, unidirectional PING, topology drawing, and alarm. System design for no centralized rule, all of the data points are stored, the default data circulation keep 1 month time, mapped the PING packets of data by their own point of state, by each other point data into PING packets state, and the API interface to get the data from other points overall PING topology, the topology of alarm function.
Grafana Grafana is a tool for monitoring metrics analysis and chart presentation. The backend supports Graphite, InfluxDB & Prometheus & Open-Falcon, etc. Grafana is a popular monitoring component currently used in small and medium sized companies

Container technology

project Introduction to the
Pouch Pouch is an open source container engine technology developed by Alibaba. Its main features include basic container management capability, strong container isolation capability for security and stability, and non-invasive rich container technology for applications.
SwarmKit SwarmKit is Docker’s open source Docker cluster management and container choreography tool. Its main features include node discovery, consistency based on RAFT algorithm and task scheduling.
DaoliNet DaoliNet is a software defined Network (SDN) system designed to provide dynamic, efficient linking for Docker containers. The lightweight and transient nature of microservice workloads in Docker containers makes DaoliNet a good fit.
Harbor The development and operation of container applications cannot be separated from reliable image management. It is necessary to deploy Registry in a private environment for security and efficiency reasons. Project Harbor is an open source Registry Server Project designed by VMware China team for enterprise users, including rights management (RBAC), LDAP, audit, management interface, self-registration, HA and other necessary functions for enterprises. At the same time, according to the characteristics of Chinese users, Design functions such as mirror copy and Chinese support
REX-Ray Rex-ray is an open source project led by the EMC {code} team that provides continuous storage access for Docker, Mesos, and other container running environments. It is designed to encompass universal storage, virtualization and cloud platforms, providing advanced storage capabilities.
Clair Clair is a container vulnerability analysis service. It provides a list of potential container vulnerabilities and notifies users when new container vulnerabilities are published.
Weave Weave creates a virtual network that connects to Docker containers deployed on multiple hosts.
Rocket Rocket (also known as RKT) is a container engine from CoreOS that, like Docker, helps developers package applications and dependencies into portable containers, making it easier to deploy in environments. Rocket differs from Docker in that it lacks the “friendly features” Docker offers to enterprise users, such as cloud service acceleration tools and clustering systems. Rocket, on the other hand, wants to make a purer industry standard.
libnetwork Libnetwork provides a container connection for a native Go implementation and is a network of containers. Libnetwork aims to define a robust Container Network Model that provides a consistent programming interface and Network abstraction for applications.
Wormhole WWormhole is a namespace-aware socket-activated tunnel proxy. Docker containers that allow you to securely connect to different physical machines. It can be used to perform some interesting functions, such as connecting services that run native to the container or creating on-demand services after connecting.
Shipyard Shipyard is a Web-based Docker management tool that supports multiple hosts and can manage containers on multiple Docker hosts uniformly. You can view images, even build images; And provide RESTful apis and so on. The default configuration of Shipyard needs to be modified to support remote management to manage and control the Docker host.
Docker Docker is an open source application container engine that allows developers to package their applications and dependencies into a portable container and then distribute them to any popular Linux machine, as well as virtualization. Containers are completely sandboxed and have no interface to each other (like iPhone apps). It has almost no performance overhead and can easily run on machines and data centers. Most importantly, they don’t rely on any language, framework, or packaging system.
scope A docker&kubernetes management, monitoring visualization tool, you can see the topology between containers and TCP communication
habitus A quick implementation of docker build process tool, support complex Docker build process, the implementation of multiple Dockerfile build process, typical applications such as will need to static compilation, such as go, Java programs after a docker build compiled, The resulting binary package is used in the subsequent build process
sextant Sextant provides the ability to initialize a CoreOS+ Kubernetes cluster through a fully automated PXE installation.
KubeVirt KubeVirt is a virtual machine management architecture built around Kubernetes. Use KubeVirt to declare: create predefined VMS, schedule VMS on Kubernetes cluster (start VM, stop VM, delete VM) |

PaaS tools

project Introduction to the
Kel Kel is an open source PaaS system based on Kubernetes, developed in Python and Go. Kel simplifies the entire software life cycle of managing Web application publishing and hosting. Kel helps developers and operations people easily manage their application architectures, making K8S very simple to use through a set of tools and components.
CloudFoundry-Mesos The Cloud Foundry-Mesos framework, created by Huawei and Mesosphere engineers, provides a secure, scalable, and scalable Cloud environment for applications to enjoy a wide range of services within the Cloud Foundry ecosystem. Enterprises can develop Cloud applications through Cloud Foundry and deploy applications on DCOS through Cloud Foundry-Mesos, enabling applications to share resources with other services and application frameworks installed on DCOS, maximizing resource utilization and significantly reducing enterprise data center operating costs. DCOS can run on virtual and physical environments, support Linux (and soon Windows), and work in private, public, and hybrid cloud environments.
Flynn Flynn is an open source PaaS system developed by Docker. It is written in Go language. Support databases include Postgres, Redis, and mongodb. Flynn uses a fully modular design, where any component or module can be replaced independently.
DINP DINP is another PaaS platform developed based on Docker.
Kubernetes Kubernetes is an open source container cluster management system from Google Cloud Platform. Build a container scheduling service based on Docker. The system can automatically select a working container from a container cluster for use. The core concept is the Container Pod.
Tsuru With Tsuru’s PaaS service, you can choose your own programming language, choose to use SQL or NoSQL database, memcache, Redis, and many other services, and even use Git version control tools to upload your applications.
atlantis Atlantis is a Docker-based open source PaaS written in Go for HTTP applications. Atlantis can easily build and deploy applications to containers in routing requests. Atlantis has been used extensively in Ooyala’s new app.
lain Lain is a Docker-based PaaS system. It is a fast-developing organization that seeks efficient operation and maintenance solutions for diversified technology stacks, startup that lacks devops manpower, and individual developers. Unified and efficient development workflow to reduce application operation and maintenance complexity; Directly provide package solutions for application development, integration, deployment, operation and maintenance on the basis of IaaS/private IDC bare machine.
OpenDCP OpenDCP is a docker-based cloud resource management and scheduling platform, integrating image warehouse, multi-cloud support, service orcheography, service discovery and other functions, supporting the expansion and shrinkage of service pool. Its technical system is derived from the flexible scheduling DCP system of Weibo used to support holidays and hotspot peak traffic. OpenDCP allows the use of public cloud servers to build IT infrastructure suitable for Internet applications and minimize the workload of operation and maintenance.
Swan Swan is a new HTTP API based on MESOS developed using Golang. You can use Swan to deploy applications on mesOS clusters and manage the entire life cycle of your applications, as well as rolling updates with new releases, extending applications, and health checking applications and automatic failover when applications or services are unavailable.

Big data & ML

project Introduction to the
MLF Maitreya Buddha project is a big data machine learning framework. The model training and use can be integrated into the production system as library or service. It is rich in models, highly extensible, highly readable, and suitable for beginners to learn big data models
Glow Glow is an easy-to-use distributed computing system written in Go, an alternative to Hadoop, Map Reduce, Spark, Flint, Samza, and more. The goal of Glow is to provide a library that makes it easier to perform computations on parallel threads or distributed cluster machines.
goml Machine learning library, which contains a number of tools that allow you to learn the data content of its channels online.
Golearn GoLearn implements the familiar SciKit-Learn adaptation/prediction interface for fast predictive testing and exchange. GoLearn is a mature project that provides cross-validation and training/testing AIDS.
Gorgonia Written entirely in Go, the machine learning library “provides the conditions necessary to dynamically build neural networks and associated algorithms,” according to its developer, chewxy.
poseidon The Poseidon system is a log search platform that can quickly analyze and retrieve specific strings from hundreds of petabytes of log data. The system can be applied to any structured or unstructured massive (from trillion to quadrillion scale) data query retrieval requirements.

Micro service

project Introduction to the
micro Micro is a microservices ecosystem focused on simplifying distributed system development. Pluggable plug-in design provides a powerful pluggable architecture to ensure that basic components can be flexibly replaced.
kite Kite is a microservice framework based on go language. Kite is an internal framework of Koding company, which provides service discovery, multiple authentication functions, server communication via RPC, and js library of Websocket for easy communication between browser and server.
goa Goa is a framework for building microservices with Go, taking a unique design-first approach.
Go-kit Go-kit is a distributed development kit for developing microservices using the Go language.
Hprose Hprose is short for High Performance Remote Object Service Engine — Microservices Preferred Engine. It is an advanced lightweight, cross-language, cross-platform, object-oriented, high-performance remote dynamic communication middleware. It is not only easy to use, but also powerful. With a little time to learn, you can easily build distributed applications across languages and platforms.
Gizmo The New York Times open source Go microservices tool. Provides the following features: Standardized configuration and logging; Status monitoring endpoints for configurable policies; For managing the configuration of pprof endpoints and log levels; Structured logs that provide basic request information; Useful metrics for endpoints; Gracefully discontinue service; The basic interface to define expectations and vocabulary
hystrix-go Used to isolate remote system calls, third-party library calls, service calls, provide circuit breakers, avoid avalanche effects of the library, Hystrix go version. Hystrixs is an open-source Java library for Netflix
gateway Gateway is an HTTP-based API Gateway implemented using GO.features: API aggregation; Flow control; Fusing; Load balancing; Health examination; Monitoring; Message routing; The back-end management WebUI.What can do: Plan friendlier urls for callers. Aggregations of the results of multiple apis are returned to the API caller, facilitating the mobile end, where the atomic interface can be implemented. Protects backend API services from being overwhelmed by sudden abnormal traffic. A circuit breaker mechanism is provided to enable the back-end API Server to recover itself. With the help of message routing ability, grayscale release, AB test.
fabio Fabio is a fast, simple, zero-configuration load balancing router developed by ebay’s team using Golang that enables Consul’s deployed applications to quickly support HTTP (S). Here is an article in ChineseDockone. IO/article / 156…And finally, the demo program
appdash Go version of the distributed application tracking system, based on the principle of Google Dapper
Jaeger Jaeger is Uber’s distributed tracking system, which is built on the principle of Google Dapper and uses Cassandra as its storage layer
Rainbond Cloud Bang is an application-centric open source PaaS that deeply integrates Kubernetes container management and Service Mesh microservice architecture best practices to meet the needs of agile development, efficient operation and lean management required to support rapid business growth
istio Istio is an open source microservices management, protection, and monitoring framework developed by Google, IBM, and Lyft. With ISTIO, it is easy to create service networks with load balancing, authentication between services, monitoring, and other functions without any modifications to the service code.

CI/CD

project Introduction to the
Cyclone Cyclone is a cloud-native continuous integration and continuous release platform for creating container workflow. It is easy to use, developed with Go language and has detailed Chinese documents
Drone Drone is a Docker-based continuous publishing platform developed in the Go language

Database technology

project Introduction to the
LedisDB Ledisdb is a reference SSDB, using go implementation, based on LevelDB, similar to Redis high performance NOSQL database, provides kv, list, Hash and Zset data structure support.
BuntDB IMDB is a pure Go, low-level, embeddable key/value in-memory database (IMDB), data persistent storage, ACID compliant, support for custom indexes and geospatial data.
Cockroach CockroachDB is a scalable, location-enabled, transaction-enabled data storage system. CockroachDB provides two different transaction features, including Snapshot Isolation (SI) and sequential snapshot isolation (SSI) semantics, which is the default isolation level.
qb-go Qb is a database toolkit designed to make it easier to use the GO language for databases. Inspired by Python’s favorite ORM SQLAlchemy, it is both an ORM and a query generator. It’s pretty modular in terms of expressing apis and building things with queries.
GoshawkDB GoshawkDB is a multi-platform distributed object storage service developed using Go language, which supports transaction and fault tolerance. Transaction control for GoshawkDB is done on the client side. The GoshawkDB server is under the AGPL license, while the Go language client is under the Apache license
Codis Codis is a distributed Redis solution. For upper-layer applications, there is no significant difference between connecting to Codis Proxy and connecting to native Redis Server (unsupported command list). Upper-layer applications can be used just like standalone Redis. Codis bottom layer will deal with the forwarding of requests, non-stop data migration and other work, all behind everything, for the front client is transparent, you can simply think that behind the connection is a Redis service with infinite memory.
Cayley Cayley is Google’s open source Graph database, inspired by Freebase and the Graph database behind Google’s Knowledge Graph.
Redigo Redigo is the Go client for the Redis database.
radix.v2 Radix v2 is one of the official recommended clients of Redis. Compared with Redigo, Radix. V2 features lightweight, elegant interface implementation, and API-friendly
redis-go-cluster Redis-go-cluster is a Golang Redis client implemented based on Redigo. Redis-go-cluster caches slot information locally and updates it automatically when the cluster changes. This client manages each node connection pool, using Goroutine to execute concurrently as much as possible, achieving high efficiency and low latency.
elastic Elastic is a Golang client for elasticSearch, an open source search engine. It is apI-friendly and supports most OF the ES interfaces. It supports all versions of ES from 1.x to the latest 6.x
Dgraph Dgraph is a scalable, distributed, low-latency graphics database. The goal of DGraph is to provide Google’s production-level scale and throughput without providing users with low-latency real-time queries over terabytes of structured data. DGraph supports GraphQL as a query language, responding to JSON.
DegDB DegDB is a distributed economic graph database.
Vitess Vitess, an open source distributed MySQL tool set produced by Outube, automatically fragments MySQL data tables, rewrites a single SQL query to distribute to multiple MySQL servers, supports row caching (which is more efficient than MySQL itself), supports replication and fault tolerance, and has been used in Youtube production environment
xuncache Xuncache is a free open source NOSQL(in-memory database) developed by Golang, easy to use and powerful (even novice also fully competent), excellent performance can easily handle massive data, can be used in the cache system.
pgweb Gweb is a Web-based PostgreSQL management system based on Go language.
Orchestrator MySQL replication topology visualization tool
mysql-schema-sync Mysql-schema-sync is a cross-platform, green, dependence-free automatic mysql table structure synchronization tool developed using GO. Used to synchronize online (other environment) database structure changes to the test (local) environment!
TiDB TiDB is a distributed SQL database developed by PingCAP team in China. Inspired by Google’s F1, TiDB supports features including traditional RDBMS and NoSQL.
kingshard A high-performance mysql middleware, support read and write separation, data fragmentation, security audit and other functions
influxdb A horizontal extension of the time series database, built in HTTP API, support for data tag, flexible query strategy and real-time data query, support SQL statement query
DBShield DBShield is a database firewall developed in Go to protect your data from SQL injection. Supported databases include DB2, MySQL, MariaDB, Oracle, and PostgreSQL.

Storage technology

project Introduction to the
Torus Torus is a storage system tailored for container clusters that provide reliable and scalable storage for container clusters orchestrated and managed by Kubernetes. This is another open source product released by CoreOS after ETCD, RKT, Flannel, and CoreOS Linux.
Afero Afero is a file system framework that provides a simple, uniform, and common API for interacting with any file system as well as providing interfaces, types, and methods as an abstraction layer. Afero’s interface is clean and simple in design, eliminating unnecessary constructors and initializers. Afero as a library also provides an interoperable set of background file systems so that the functionality and benefits of OS and Ioutil packages can be retained when collaborating with Afero.
REX-Ray Rex-ray is an open source project led by the EMC {code} team that provides continuous storage access for Docker, Mesos, and other container running environments. It is designed to encompass universal storage, virtualization and cloud platforms, providing advanced storage capabilities.
SeaweedFS SeaweedFS is a simple, highly scalable distributed file system consisting of two parts: storing billions of files; Fast file service. SeaweedFS as an alternative to fully POSIX file system semantics, Rotunde-based only implements key-file mapping, similar to “NoSQL”, or “NoFS”.
bfs BFS is a distributed file system (small file storage) written using Go.
IPFS IPFS is a distributed file system that seeks to connect all computer devices to the same file system. In some ways, this is similar to the original Web target, but IPFS will end up more like a Git object exchanged by a single bitstream group. IPFS = InterPlanetary File System
Gotgt Gotgt is a high-performance and extensible iSCSI target service written in Go.

Distributed system

project Introduction to the
Confd Confd is a lightweight configuration management tool. By querying Etcd and configuring template engine, the local configuration is kept up to date. At the same time, it has regular detection mechanism and automatic reload of configuration changes.
zerg Distributed crawler service based on Docker
Doorman Doorman is a client rate limiting solution that allows clients to communicate with shared resources, including databases, gRPC services, RESTful apis, and more, using Doorman to limit calls to resources. Doorman is developed in Go and uses the gRPC communication protocol. Its high availability features require a distributed lock manager, which currently supports ETCD and can be replaced with Zookeeper.
mgmt MGMT is a distributed, event-driven configuration management tool. The tool supports parallel execution, and its Librarification serves as an underlying management tool for new and existing software.
Yoke Yoke is Postgres high availability cluster with automatic switchover and automatic cluster recovery. Postgres redundancy/automatic failover solution provides easy management of a highly available PostgreSQL cluster.
SeaweedFS SeaweedFS is a simple, highly scalable distributed file system consisting of two parts: storing billions of files; Fast file service. SeaweedFS as an alternative to fully POSIX file system semantics, Rotunde-based only implements key-file mapping, similar to “NoSQL”, or “NoFS”.
Glow Glow is an easy-to-use distributed computing system written in Go, an alternative to Hadoop, Map Reduce, Spark, Flint, Samza, and more. The goal of Glow is to provide a library that makes it easier to perform computations on parallel threads or distributed cluster machines.
Nomad Nomad is a cluster manager and scheduler designed for microservice and batch processing workflows. Nomad is distributed, highly available and scalable to thousands of nodes across data centers and regions.
dcmp DCMP is a distributed configuration management platform. Provides an ETCD management interface, on which you can modify configuration information and synchronize configuration files using ConfD.
gleam Here is a fast and scalable distributed Map/Reduce system written with Go and LuaJIT that combines the high concurrency of Go with the high performance of LuaJIT to run independently or for distributed computing.

The messaging system

project Introduction to the
KiteQ KiteQ is an MQ framework (message queuing) with multiple persistence schemes based on go + Protobuff implementations.
NSQ NSQ is an open source messaging system with no central design, automatic node registration and discovery. Easy to configure and publish as the basis for an internal communication framework.
kingtask Kingtask is a lightweight asynchronous timed task system developed by Go. Supports scheduled asynchronous tasks. Supports the failure retry mechanism. You can customize the retry time and times. You can query the task execution result.
Go Machinery Machinery is a Go language asynchronous task queue and job queue, based on distributed messaging. Celery frame similar to Python.
kaca Kaca is a message publishing/subscription system based on WebSocket protocol developed in Golang language.

Server Management

project Introduction to the
Sharkey Sharkey is the service used by OpenSSH to manage certificates. Sharkey is divided into client components and server components. The server is responsible for issuing signed host certificates, and the client is responsible for installing host certificates on machines.
OSinstall CloudBoot (OSinstall) cloud installation platform is a fully automatic installation tool for X86 servers launched by Hangzhou Yunji Technology, a financial cloud startup company. It follows the Apache protocol and is completely open source and free. Automatically create dedicated machine resource pools, and install dedicated machines as easily as you create VMS.
ssh2go Ssh2go is a Golang encapsulation of libssh. Libssh is the SSH code base that supports both the server and client. SSH, SSHD, SCP, and SFTP are all based on libssh. Ssh2go is a Go language binding for libssh. 100% of the libssh interfaces are available. Examples are integrated for easy reference.
Gooverssh Gooverssh is an SSH local port forwarding service application developed based on the SSH development package of Gosshtool. It can overcome some network restrictions, such as accessing Intranet database services through SSH proxy
gosshtool gosshtool provide some useful functions for ssh client in golang.implemented using Golang.org/x/crypto/ssh.go languages provide SSH related operations, support the SSH local port forwarding service
teleport Teleport is startup Gravitational’s TOOL for remotely managing Linux cluster servers based on SSH and HTTPS, featuring double-check logins; Operation record playback; Session sharing facilitates collaboration and troubleshooting; Automatically discover servers and containers for the cluster

Security tools

project Introduction to the
gomitmproxy GomitmProxy is a MITmProxy implemented in Golang language. GomitmProxy mainly implements HTTP proxy, and currently implements HTTP proxy and HTTPS packet capture.
Hyperfox Hyperfox is a secure tool for proxying and logging HTTP and HTTPS traffic on a LAN.
Gryffin Gryffin is a massive Web security scanning platform developed by Yahoo. It is not just another scanner; its main purpose is to solve two specific problems – coverage and scalability.
ngrok Ngrok is a reverse proxy that establishes a secure channel between a common endpoint and a Web server running locally. Ngrok captures and analyzes traffic on all channels for later analysis and replay.

Web tools

project Introduction to the
DaoliNet DaoliNet is a software defined Network (SDN) system designed to provide dynamic, efficient linking for Docker containers. The lightweight and transient nature of microservice workloads in Docker containers makes DaoliNet a good fit.
Seesaw Seesaw is a Linux-based load balancing system developed by Google. Seesaw contains basic load balancing features and supports advanced features such as Anycast, Direct Server Return (DSR), support for multiple VLANs, and centralized configurations. It is also designed to be easy to maintain. It’s important to note that although the project is under Google’s name, it’s not an official Google product.
TcpRoute2 TcpRoute, TCP layer router. For TCP connections, the optimal line is automatically selected from multiple lines (allowing arbitrary nesting) and multiple domain name resolution results. TcpRoute2 is a rewritten version of Golang. External services are provided through the SOCKs5 proxy protocol. The proxy function is split into independent libraries. For details about proxy URL format options, see ProxyClient. Currently, it supports direct connection, SOckS4, SOcks4A, SOcks5, HTTP, HTTPS, and SS proxy lines
Gor Gor is a simple HTTP traffic replication tool written in Go to return traffic from the production server to the development environment. Using Gor, you can test your code in a real user session.
Traefik Træfɪk is a new HTTP reverse proxy, load balancing software that makes it easy to deploy microservices. It supports multiple backends (Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Rest API, File…) To automatically and dynamically manage configurations.
TChannel TChannel is a network multiplexing and framing protocol for RPC.
go-tcp-proxy Go-tcp-proxy is a simple TCP proxy that can be used for TCP port forwarding or HTTP proxy
myLG MyLG is an open source network tool set, it contains many different types of network diagnosis tools, including ping, trace, BGP, DNS Lookup, port scanning, LAN network discovery, web interface, tcpdump, etc
cow COW is a simplified through-wall HTTP proxy server. It can automatically detect the blocked sites and only use secondary agents for these sites; Supports multiple protocols, including SOck5, HTTP, Shadow, and COW

Web tools

project Introduction to the
Tyk Tyk is an open source, lightweight, fast scalable API gateway that supports quotas and speed limits, supports authentication and data analysis, supports multiple users and multiple organizations, and provides full RESTful apis.
Shortme URL short link service written with Golang.
WuKongSearch WuKong is a full text search engine. Features: efficient indexing and search (1M microblogs 500M data indexing in 28 seconds, 1.65ms search response time, 19K search QPS); Support Chinese word segmentation (using sego word segmentation package concurrent word segmentation, speed of 27MB/ SEC); It can calculate token proximity of keywords in the text. BM25 correlation can be calculated. Support user-defined scoring fields and scoring rules; Add and delete indexes online. Support persistent storage; Can realize distributed index and search, etc
Pholcus Pholcus (Ghost Spider) is a highly concurrent, distributed and heavyweight crawler software written in pure Go language. It supports three operating modes of single machine, server and client, and has three operating interfaces of Web, GUI and command line. Simple and flexible rules, concurrent batch tasks, rich output methods (mysql/mongodb/ CSV/Excel, etc.), a large number of Demo sharing; At the same time, it also supports horizontal and vertical grasping modes, and supports a series of advanced functions such as simulated login and task suspension and cancellation.
Codetainer Codetainer allows you to create browser-based code to run sandboxes that can be easily embedded in your Web applications. Think of it as an open source clone of coactive-nic.com).
GoTTY GoTTY is a simple command-line tool that shares CLI tools as Web applications. GoTTY can share terminals as Web applications.
TermUI Go language written terminal dashboard
Hound Lightning-fast code search open source tool
goim Goim is a clustered IM and real-time push service that supports Websocket, HTTP and TCP.
fasthttp Asthttp is a fast HTTP implementation of Go that is currently used very successfully in 1M concurrent production environments and can make 100K QPS continuous connections from a single server. HTTP server performance is 10 times faster with FASTHTTP than with NET/HTTP
netgraph Netgraph is a cross-platform HTTP packet capture tool for B/S architecture written in Go language. It is easy to view HTTP packets directly on Linux server.
gohttp Gohttp is an HTTP file server, features: preview of various files, real-time directory ZIP package download, two-dimensional code scan download support, Apple applications online installation, file upload and so on
API-front API Front is the HTTP API front for request proxy forwarding, protocol packet capture analysis, and traffic replication. It is mainly used for developing test environment to solve the problem of changing development test environment
esumable file uploads File upload resumable breakpoint function, the whole set of functions including protocol implementation, client, server. Client and Server are implemented in many languages including Go, Python, Node, etc
pproxy HTTP packet capture agent, HTTP protocol debugging tool
hystrix-go Used to isolate remote system calls, third-party library calls, service calls, provide circuit breakers, avoid avalanche effects of the library, Hystrix go version. Hystrixs is an open-source Java library for Netflix

Web framework

project Introduction to the
Iris-Go With Iris-Go, you can easily develop web-based applications. To put it simply: Iris-Go is similar to BeeGo, but according to its official introduction, iris-Go’s performance is better!
Baa Baa a simple and efficient Go Web development framework. The main components are routing, middleware, dependency injection and HTTP context.
Orivil Orivil is a new Web framework developed by Golang, inspired by Laravel and Symfony.
ecgo Ecgo is an easy-to-learn, easy-to-use, and easily extensible GO Web development framework
Gin Gin is a Web framework developed in the Go language that provides Martini like apis, but with better performance. Performance is up to 40 times better with Httprouter.
Melody Melody is a miniature WebSocket Go language framework, based on github.com/gorilla/websocket development,
utron Utron is a Go language lightweight MVC framework for rapidly building scalable and reliable database-driven Web applications.
Lessgo Lessgo is a simple, stable, efficient and flexible web development framework written in Go. Its project organization form has been carefully designed to achieve the separation of front and back end, system and business, perfectly compatible with MVC and MVVC and other development modes, which is very conducive to the development of enterprise applications and API interfaces. Of course, the most notable is its breakthrough support for runtime route reconstruction, developers can easily enable/disable modules and operations in the Admin background, add/remove middleware and other functions! It also recommends functional programming based on HandlerFunc and MiddlewareFunc, making development more flexible and fun.
Hopen Golang Web speed development framework.
Faygo Faygo is a fast, concise Go Web framework that allows you to develop high-performance Web applications (especially APIS) with minimal code. By defining a struct Handler, Faygo automatically binds, validates request parameters, and generates online API documentation.
beego Beego is an application framework developed using Go, with tornado as its inspiration and Sinatra as its route design.
Revel Revel is a Framework for the Go language that is entirely derived from the Java Play Framework.
Martini Martini is a very new Go Web framework, developed using the NET/HTTP interface of Go, similar to Sinatra or Flask frameworks, you can use your own DB layer, session management and templates.
Tango Tango, a microkernel extensible Go language Web framework. At the same time support function and structure as the implementation body, plug-in rich.
Macaron Macaron is a Go Web framework with high productivity and modular design. The framework takes Martini’s basic ideas and builds on them with advanced extensions.
Web.go Web. go is similar to web.py, but uses a Web application development framework implemented by the GO programming language. The framework was created shortly after Go was released, and it was pretty much the first Go framework. It has not been updated for some time now. However, the framework code is not much, its source code can be read.
Echo Echo is a fast HTTP router (zero dynamic memory allocation) and a miniature Web framework for Go.

Blockchain technology

project Introduction to the
fabric Fabric is an open source blockchain implementation. The development environment is built on the VirtualBox virtual machine. The deployment environment can be self-built network or directly deployed on BlueMix. It is especially featured by enterprise-level security mechanism and membership mechanism. If you don’t know what these terms mean, remember that Fabric is likely to be to blockchain what Hadoop is to big data.
go-ethereum The Go-Ethereum client, often referred to as GETH, is a command line interface that executes the full Ethereum node implemented on Go. By installing and running GETH, you can participate in the Ethereum Foreground real-time network and perform the following operations: a. B. Transfer funds between different addresses C. Create contracts and send transactions D. Explore block history e. many other features
chain *Blockchain projects in the financial sector *Launched by Chain, an American start-up company just established two years ago, Chain is an enterprise-level blockchain platform architecture that enables institutions to construct better financial services from scratch. The Chain open standard makes breakthroughs in the following aspects: • The new consensus model realizes the final completion of the transaction in less than one second, even if the transaction volume is very large; • Private solutions encrypt blockchain data and allow relevant counterparties and regulators to selectively read it; • Smart contract framework and virtual machine support simple rule execution and Turing complete program for key-value storage; • Scalable data model to reduce operational load for network participants; • A rich metadata layer supports meeting KYC (Know your Customer) and AML (Anti-money Laundering) requirements

other

project Introduction to the
kone Transparent proxy that can be used for home or business networks, can be used to climb walls, etc
KodeRunr KodeRunr (pronounced Code Runner) is an app I wrote in Go in my spare time. As the name suggests, you can use it to write programs and post code on the web and on the command line without having to install any programming languages locally. Support Ruby, Python, GO, Swift, C, Elixir, etc
godaemon Godaemon is used to add Daemons and gracefulness to applications.
Gomobile Gomobile is an excellent cross-platform development library for iOS and Android, providing developers with tools to create code for Android and iOS mobile platforms.
gojieba Golang version of the Chinese participle “stutter”.
Cherry Cherry is a Web chat engine developed using Go language.
MailSlurper MailSlurper is a portable SMTP mail server that is very useful for local and team application development. MailSlurper is small, fast and supports SQLite, MSSQL and MySQL. The database.
RobustIRC RobustIRC is an IRC that does not have network outages. The main features of RobustIRC are: no network interruption when the server is unavailable; You can use a standard IRC client; Robust, can handle client and network connection problems
Qor Qor is a series of CMS tool library developed based on Golang, which can quickly build the background management system of the website based on Qor. Qor work library includes: 1, background management: database into CURD management, support one-to-one, one-to-many, many-to-many association relationship maintenance and so on; 2. Support uploading image to cloud, Filesystem, resize, crop image, etc. 3. Publish Publish system, which can modify data and Publish it to the official environment after checking; 4. State machines, systems that can be used to develop workflows; 5, I18n, translation, can be translated in the WEB interface, and the translation saved in the database; 6. L10n: Localization, unlike translation, it can be used to localize content or data structures for a particular region. Roles, Rights management; 8. Exchange, import and export data through Excel and CSV; 9. Worker, background task management, which can be used to run scheduled tasks, etc
FishChat FishChat distributed scalable IM server, is a pure GOLang written excellent instant messaging software (IM), it combines the advantages of existing products on the market, and has intelligent hardware gateway management (learn QQ Internet of things ideas, concept).
goRBAC GoRBAC provides lightweight role-based access control for Go language applications.
hey Boom is a performance testing tool similar to Apache AB developed by a female engineer at Google using the Go language. Boom is more cross-platform and easier to install than AB.
Mattermost Mattermost is an open source alternative to Slack. Developed in Go, Mattermost is an open source team communication service. Brings messaging, file sharing, archiving, and search capabilities to teams across PCS and mobile devices.
glot Glot is a platform that can run code fragments of various programming languages online. The project adopts Haskell Script, Go, Erlang and Shell development, and the running environment is based on Docker container.
Lantern The Lantern is a peer-to-peer scientific web application.
dog-tunnel Doghole is a high-speed P2P port mapping tool that also supports Socks5 proxies. After version 0.5, it began to open source, and the bottom layer of UDP was rewritten based on the open source library KCP, which greatly improved the efficiency and had obvious advantages in harsh environments. A non-P2P version (Lite version) is provided. The connection process between the two ends does not depend on the intermediate server. Encryption and login authentication are supported, and automatic reconnection is supported.
GRPC GRPC is a high-performance, open source, and generic RPC framework designed for mobile and HTTP/2. Currently, C, Java, and Go languages are available: GRPC, GRpc-Java, and GRPC-Go. The C version supports C, C++, Node.js, Python, Ruby, Objective-C, PHP, and C#. GRPC is designed based on the HTTP/2 standard and brings features such as bidirectional streaming, flow control, header compression, and multiplex requests over a single TCP connection. These features allow it to perform better on mobile devices, saving power and space.
LiteIDE LiteIDE is an open source, cross-platform lightweight integrated development environment (IDE) for the Go language.
firefly-proxy Wall piercing tools. GFW ladder. Provide client and server. Support multiple platforms, including Linux, MacOS, Windows, Android
wu A small tool that listens for file changes and performs some actions automatically. It can be used to restart the Web server automatically after configuration changes
apex Manage and deploy aws lambda functions, support to write lambda functions in GO language (note: aws does not officially support to write lambda functions in GO language, but apex can support it)
gosuv The process management, which is similar to the Python supervisord, provides a web management interface
chaosmonkey Chaos Monkey is an open-source service availability testing tool from Netflix, which tests the availability of a production system by systematically creating real-world failures (such as high CPU load, out of memory, full disk write, server downtime, etc.).
scheduler Scheduler is specialized in scheduling and distributing tasks, and the execution of specific tasks of each task is assigned to each project, so as to achieve unified configuration and management of tasks. The tool provides a Web management interface
hugo Hugo is a static website generator implemented by the Go language; Simple, easy to use, efficient, easy to expand, rapid deployment; Compared to Hexo and Jekyll, Hugo has the advantage of extremely fast generation.

Pass back to top