GoWindGoWind
Home
Framework
GoWind Toolkit
  • Open Source

    • GoWind Admin (Admin Platform)
    • GoWind CMS (Content Management)
    • GoWind UBA (Behavior Analytics)
    • GoWind Shop (E-commerce)
    • GoWind Kanban (Kanban Boards)
    • GoWind Ledger (Personal Finance)
    • GoWind ShortPlay (Short Drama)
    • GoWind Ops (Operations Platform)
    • RushWind (Rust Ecosystem)
  • Open Core (Community + Enterprise)

    • GoWind OA (Office Collaboration)
    • GoWind ERP (Procure-to-Pay)
    • GoWind WMS (Warehousing)
  • Commercial

    • GoWind IM (Instant Messaging)
    • GoWind IoT (IoT Platform)
    • GoWind Edu (AI Education)
    • GoWind MES (Manufacturing Execution)
    • GoWind CDC (Data Pipeline)
    • GoWind SDP (Zero-Trust Gateway)
    • GoWind Quant (Quant Research)
    • GoWind Trade Radar (Export Sourcing)
    • GoWind Game Radar (Game Greenlight)
  • 简体中文
  • English
GitHub
Home
Framework
GoWind Toolkit
  • Open Source

    • GoWind Admin (Admin Platform)
    • GoWind CMS (Content Management)
    • GoWind UBA (Behavior Analytics)
    • GoWind Shop (E-commerce)
    • GoWind Kanban (Kanban Boards)
    • GoWind Ledger (Personal Finance)
    • GoWind ShortPlay (Short Drama)
    • GoWind Ops (Operations Platform)
    • RushWind (Rust Ecosystem)
  • Open Core (Community + Enterprise)

    • GoWind OA (Office Collaboration)
    • GoWind ERP (Procure-to-Pay)
    • GoWind WMS (Warehousing)
  • Commercial

    • GoWind IM (Instant Messaging)
    • GoWind IoT (IoT Platform)
    • GoWind Edu (AI Education)
    • GoWind MES (Manufacturing Execution)
    • GoWind CDC (Data Pipeline)
    • GoWind SDP (Zero-Trust Gateway)
    • GoWind Quant (Quant Research)
    • GoWind Trade Radar (Export Sourcing)
    • GoWind Game Radar (Game Greenlight)
  • 简体中文
  • English
GitHub
  • Introduction

    • GoWind Framework
    • Framework Architecture
  • go-wind Core

    • go-wind Core Framework
    • App Lifecycle Management
    • Context Propagation
    • Transport Abstraction
    • Log Facade Interface
  • go-wind-plugins

    • go-wind-plugins Plugin Overview
    • Plugin Configuration System
    • Plugin Registration Mechanism (SPI)
    • Logging Adapter Plugins
    • Transport Protocol Plugins
    • Message Middleware Plugins
    • Encoding Plugins
    • Security and Authentication Plugins
    • Distributed Tracing Plugins
    • Cache Plugins
    • Object Storage Plugins (OSS)
    • Rate Limiting Plugins
    • Metrics Plugins
    • AI Plugins
    • Workflow Plugins
    • Database and Cache Plugins
    • Bootstrap Integration and Gateway Plugins
    • Compression and Serialization Plugins
    • Template Rendering and Validation Plugins
  • go-wind-bootstrap

    • go-wind-bootstrap: The Declarative Bootstrap
    • The Bootstrap Configuration System
    • The Bootstrap SPI Mechanism
    • Declarative Middleware Orchestration
    • Bootstrap Command-Line Integration
    • Bootstrap Practical Examples
  • go-wind-flow Workflow Engine

    • GoWind Flow Process Engine
  • Tutorials

    • Quick Start Tutorial
    • Custom Plugin Development Tutorial
    • Multi-Protocol Listening Tutorial
    • Framework Migration Guide

go-wind-plugins Plugin Overview

go-wind-plugins is the largest repository in the GoWind ecosystem. Built on the idea of unified abstractions across eight major domains plus multi-engine adapters, it currently provides 157 standalone go.mod modules and roughly 130+ plugins covering 20+ domains. All plugins follow a unified interface contract and are automatically registered via the SPI mechanism.

1. Plugin Landscape

DomainCore InterfacePlugin CountTypical Plugins
Configuration Center (Config)config.Source14Apollo, Consul, Etcd, Nacos, Polaris, Vault, K8s, ZooKeeper, Redis, OSS, HTTP, Env, File, FS
Service Registry (Registry)registry.Registry8 + 2Consul, Etcd, Nacos, ZooKeeper; plus selector / resolver
Logging (Log)log.Logger13Zap, Zerolog, Logrus, Loki, SLS, CLS, CloudWatch, Sentry
Transporttransport.Server31HTTP (4 drivers), HTTP/3, gRPC, WebSocket, SSE, Socket.IO, SignalR, KCP, WebRTC, WebTransport, GraphQL, Thrift, tRPC, Cron, Asynq, Machinery, MCP, and 12 MQ subscription-style plugins
Message Broker (Broker)broker.Broker12Kafka, RabbitMQ, NATS, MQTT, Pulsar, RocketMQ, NSQ, SQS, Redis, STOMP, Azure Service Bus, Google Pub/Sub
Encoding (Codec)encoding.Codec12JSON, Protobuf, YAML, TOML, MsgPack
CRUD DatabaseDatabase/ORM clients19GORM, Ent, MongoDB, ClickHouse, Doris, ES, OpenSearch, InfluxDB, Cassandra; vector/graph stores qdrant, milvus, neo4j, weaviate; plus api/pagination/cache/audit/viewer
Securityauth.Authenticator20Authentication (authn), 10 engines: JWT, OAuth2, etc.; authorization (authz), 9 engines: Casbin, Cedar, Cerbos, OPA, Zanzibar, etc.; crypto
Circuit Breaking / Rate LimitingBreaker / ratelimit.Limiter4 + 3Token Bucket, Sentinel, Hystrix, etc.
Workflowworkflow.Engine4Temporal, Argo, Conductor, GoWorkflows
Object Storage (OSS)oss.OSS2MinIO, S3
AIai.Client3OpenAI, LangChainGo, Eino
Metricsmetrics.Metrics3Prometheus, OpenTelemetry, Datadog
Tracing (Tracer)tracer.Tracer1OTLP
Utilities (Utils)—4General-purpose helpers

Recently Added Capabilities

  • selector / resolver — client-side load balancing (selector) and gRPC address-resolution adapters (resolver), used together with service-discovery registries
  • transaction — the local-transaction quartet: outbox / saga / tcc / xa
  • MCP — Model Context Protocol integrated as a transport plugin, with pass-through support for StreamableHTTP/SSE server options
  • vector store — a unified vector abstraction connecting to the four vector/graph engines qdrant / milvus / neo4j / weaviate

2. Directory Structure

go-wind-plugins/
├── transport/
│   ├── http/          # HTTP Server
│   ├── grpc/          # gRPC Server
│   ├── websocket/     # WebSocket Server
│   ├── sse/           # SSE Server
│   ├── tcp/           # TCP Server
│   ├── kcp/           # KCP Server
│   └── graphql/       # GraphQL Server
├── log/
│   ├── zap/           # Zap adapter
│   ├── zerolog/       # Zerolog adapter
│   ├── logrus/        # Logrus adapter
│   ├── loki/          # Grafana Loki
│   ├── sentry/        # Sentry error tracking
│   ├── cloudwatch/    # AWS CloudWatch
│   └── aliyun_sls/    # Alibaba Cloud Log Service
├── broker/
│   ├── kafka/         # Apache Kafka
│   ├── rabbitmq/      # RabbitMQ
│   ├── nats/          # NATS
│   ├── redis/         # Redis Pub/Sub
│   ├── pulsar/        # Apache Pulsar
│   └── ...
├── cache/
│   ├── redis/         # Redis
│   ├── memcached/     # Memcached
│   └── freecache/     # FreeCache
├── config/
│   ├── file/          # Local files
│   ├── etcd/          # Etcd KV
│   ├── consul/        # Consul KV
│   ├── nacos/         # Nacos configuration center
│   └── apollo/        # Apollo configuration center
├── registry/
│   ├── consul/        # Consul service discovery
│   ├── etcd/          # Etcd service discovery
│   ├── nacos/         # Nacos service discovery
│   └── zookeeper/     # ZooKeeper service discovery
├── database/
│   ├── mysql/         # MySQL
│   ├── postgres/      # PostgreSQL
│   ├── sqlite/        # SQLite
│   ├── mongo/         # MongoDB
│   └── clickhouse/    # ClickHouse
├── tracer/
│   ├── jaeger/        # Jaeger
│   ├── otlp/          # OpenTelemetry
│   └── zipkin/        # Zipkin
├── oss/
│   ├── minio/         # MinIO
│   ├── s3/            # AWS S3
│   ├── aliyun/        # Alibaba Cloud OSS
│   ├── qiniu/         # Qiniu Cloud
│   └── tencent/       # Tencent Cloud COS
├── ai/
│   ├── openai/        # OpenAI
│   ├── claude/        # Anthropic Claude
│   ├── gemini/        # Google Gemini
│   ├── ollama/        # Ollama local models
│   └── deepseek/      # DeepSeek
└── workflow/
    ├── temporal/       # Temporal workflow
    └── celery/         # Celery task queue

3. Plugin Conventions

Every plugin must satisfy the following conventions:

3.1 Implement the SPI Interface

// transport/http/server.go
package http

type Server struct { ... }

func NewServer(opts ...Option) *Server { ... }

func (s *Server) Start(ctx context.Context) error { ... }
func (s *Server) Stop(ctx context.Context) error  { ... }
func (s *Server) Endpoint() []string              { ... }
func (s *Server) Type() string                    { return "http" }

3.2 Functional Options

type Option func(*Server)

func WithAddr(addr string) Option {
    return func(s *Server) { s.addr = addr }
}

func WithHandler(h http.Handler) Option {
    return func(s *Server) { s.handler = h }
}

func WithTLS(certFile, keyFile string) Option {
    return func(s *Server) {
        s.tls = true
        s.certFile = certFile
        s.keyFile = keyFile
    }
}

3.3 Bootstrap Registration

// transport/http/register.go
package http

import "github.com/tx7do/go-wind-bootstrap/registry"

func init() {
    registry.RegisterTransport("http", NewServer)
}

4. Selection Guide

ScenarioRecommended Combination
Web API serviceHTTP + MySQL + Redis + Zap
Microservice backendgRPC + PostgreSQL + Kafka + Jaeger
Real-time communicationWebSocket + Redis + Zerolog
Data pipelinegRPC + ClickHouse + Kafka + Loki
AI applicationHTTP + PostgreSQL + OpenAI + Temporal
Edge/IoTTCP/KCP + SQLite + FreeCache

Recent Quality Updates

  • Completed three rounds of large-scale test backfill: added 100+ test files with over a thousand test cases, and fixed 25+ deterministic defects (including a data-race fix in the OPA plugin)
  • The repository ships a 22-chapter tutorial series under docs/tutorials/, covering plugin usage by domain

Related Documents

  • Plugin Configuration System
  • Plugin Registration Mechanism
  • Core Framework Introduction
  • Overall Framework Architecture
Edit this page
Last Updated:: 11/3/26, 2:14 PM
Contributors: Bobo
Next
Plugin Configuration System