1
0
mirror of https://github.com/go-micro/go-micro.git synced 2025-11-23 21:44:41 +02:00

new copilot generated documentation

This commit is contained in:
Asim Aslam
2025-11-13 18:11:29 +00:00
parent 2da1cc0edd
commit 9e36df224b
16 changed files with 598 additions and 20 deletions

View File

@@ -0,0 +1,132 @@
---
layout: default
---
# Plugins
Plugins are scoped under each interface directory within this repository. To use a plugin, import it directly from the corresponding interface subpackage and pass it to your service via options.
Common interfaces and locations:
- Registry: `go-micro.dev/v5/registry/*` (e.g. `consul`, `etcd`, `nats`, `mdns`)
- Broker: `go-micro.dev/v5/broker/*` (e.g. `nats`, `rabbitmq`, `http`, `memory`)
- Transport: `go-micro.dev/v5/transport/*` (e.g. `nats`, default `http`)
- Store: `go-micro.dev/v5/store/*` (e.g. `postgres`, `mysql`, `nats-js-kv`, `memory`)
- Auth, Cache, etc. follow the same pattern under their respective directories.
## Registry Examples
Consul:
```go
import (
"go-micro.dev/v5"
"go-micro.dev/v5/registry/consul"
)
func main() {
reg := consul.NewConsulRegistry()
svc := micro.NewService(
micro.Registry(reg),
)
svc.Init()
svc.Run()
}
```
Etcd:
```go
import (
"go-micro.dev/v5"
"go-micro.dev/v5/registry/etcd"
)
func main() {
reg := etcd.NewRegistry()
svc := micro.NewService(micro.Registry(reg))
svc.Init()
svc.Run()
}
```
## Broker Examples
NATS:
```go
import (
"go-micro.dev/v5"
bnats "go-micro.dev/v5/broker/nats"
)
func main() {
b := bnats.NewNatsBroker()
svc := micro.NewService(micro.Broker(b))
svc.Init()
svc.Run()
}
```
RabbitMQ:
```go
import (
"go-micro.dev/v5"
"go-micro.dev/v5/broker/rabbitmq"
)
func main() {
b := rabbitmq.NewBroker()
svc := micro.NewService(micro.Broker(b))
svc.Init()
svc.Run()
}
```
## Transport Example (NATS)
```go
import (
"go-micro.dev/v5"
tnats "go-micro.dev/v5/transport/nats"
)
func main() {
t := tnats.NewTransport()
svc := micro.NewService(micro.Transport(t))
svc.Init()
svc.Run()
}
```
## Store Examples
Postgres:
```go
import (
"go-micro.dev/v5"
postgres "go-micro.dev/v5/store/postgres"
)
func main() {
st := postgres.NewStore()
svc := micro.NewService(micro.Store(st))
svc.Init()
svc.Run()
}
```
NATS JetStream KV:
```go
import (
"go-micro.dev/v5"
natsjskv "go-micro.dev/v5/store/nats-js-kv"
)
func main() {
st := natsjskv.NewStore()
svc := micro.NewService(micro.Store(st))
svc.Init()
svc.Run()
}
```
## Notes
- Defaults: If you don’t set an implementation, Go Micro uses sensible in-memory or local defaults (e.g., mDNS for registry, HTTP transport, memory broker/store).
- Options: Each plugin exposes constructor options to configure addresses, credentials, TLS, etc.
- Imports: Only import the plugin you need; this keeps binaries small and dependencies explicit.