Documentation
¶
Overview ¶
Package micro is a pluggable framework for microservices
Index ¶
- Variables
- func NewContext(ctx context.Context, s Service) context.Context
- func RegisterHandler(s server.Server, h interface{}, opts ...server.HandlerOption) error
- func RegisterSubscriber(topic string, s server.Server, h interface{}, opts ...server.SubscriberOption) error
- type Event
- type Option
- type Options
- type Publisher
- type Service
Constants ¶
This section is empty.
Variables ¶
View Source
var AddListenOption = service.AddListenOption
View Source
var AfterStart = service.AfterStart
View Source
var BeforeStart = service.BeforeStart
View Source
var BeforeStop = service.BeforeStop
View Source
var HandleSignal = service.HandleSignal
View Source
var RegisterInterval = service.RegisterInterval
View Source
var RegisterTTL = service.RegisterTTL
View Source
var WrapClient = service.WrapClient
View Source
var WrapHandler = service.WrapHandler
View Source
var WrapSubscriber = service.WrapSubscriber
Functions ¶
func NewContext ¶
NewContext returns a new Context with the Service embedded within it.
Types ¶
type Event ¶
type Event interface {
// Publish publishes a message to the event topic
Publish(ctx context.Context, msg interface{}, opts ...client.PublishOption) error
}
Event is used to publish messages to a topic.
type Service ¶
type Service interface {
// The service name
Name() string
// Init initializes options
Init(...Option)
// Options returns the current options
Options() Options
// Register the handler
Handle(v interface{}) error
// Client is used to call services
Client() client.Client
// Server is for handling requests and events
Server() server.Server
// Run the service
Run() error
// The service implementation
String() string
}
Service is an interface that wraps the lower level libraries within go-micro. Its a convenience method for building and initializing services.
func FromContext ¶
FromContext retrieves a Service from the Context.
Source Files
¶
- event.go
- micro.go
- options.go
Directories
¶
| Path | Synopsis |
|---|---|
|
Package auth provides authentication and authorization capability
|
Package auth provides authentication and authorization capability |
|
Package broker is an interface used for asynchronous messaging
|
Package broker is an interface used for asynchronous messaging |
|
nats
Package nats provides a NATS broker
|
Package nats provides a NATS broker |
|
rabbitmq
Package rabbitmq provides a RabbitMQ broker
|
Package rabbitmq provides a RabbitMQ broker |
|
redis
Package redis provides a Redis broker
|
Package redis provides a Redis broker |
|
Package client is an interface for an RPC client
|
Package client is an interface for an RPC client |
|
grpc
Package grpc provides a gRPC client
|
Package grpc provides a gRPC client |
|
http
Package http provides a http client
|
Package http provides a http client |
|
Package cmd is an interface for parsing the command line
|
Package cmd is an interface for parsing the command line |
|
Package codec is an interface for encoding messages
|
Package codec is an interface for encoding messages |
|
bytes
Package bytes provides a bytes codec which does not encode or decode anything
|
Package bytes provides a bytes codec which does not encode or decode anything |
|
grpc
Package grpc provides a grpc codec
|
Package grpc provides a grpc codec |
|
json
Package json provides a json codec
|
Package json provides a json codec |
|
jsonrpc
Package jsonrpc provides a json-rpc 1.0 codec
|
Package jsonrpc provides a json-rpc 1.0 codec |
|
proto
Package proto provides a proto codec
|
Package proto provides a proto codec |
|
protorpc
Protorpc provides a net/rpc proto-rpc codec.
|
Protorpc provides a net/rpc proto-rpc codec. |
|
text
Package text reads any text/* content-type
|
Package text reads any text/* content-type |
|
Package config is an interface for dynamic configuration.
|
Package config is an interface for dynamic configuration. |
|
encoder
Package encoder handles source encoding formats
|
Package encoder handles source encoding formats |
|
loader
Package loader manages loading from multiple sources
|
Package loader manages loading from multiple sources |
|
reader
Package reader parses change sets and provides config values
|
Package reader parses change sets and provides config values |
|
secrets
Package secrets is an interface for encrypting and decrypting secrets
|
Package secrets is an interface for encrypting and decrypting secrets |
|
secrets/box
Package box is an asymmetric implementation of config/secrets using nacl/box
|
Package box is an asymmetric implementation of config/secrets using nacl/box |
|
secrets/secretbox
Package secretbox is a config/secrets implementation that uses nacl/secretbox to do symmetric encryption / verification
|
Package secretbox is a config/secrets implementation that uses nacl/secretbox to do symmetric encryption / verification |
|
source
Package source is the interface for sources
|
Package source is the interface for sources |
|
source/file
Package file is a file source.
|
Package file is a file source. |
|
source/memory
Package memory is a memory source
|
Package memory is a memory source |
|
debug
|
|
|
handler
Package handler implements service debug handler embedded in go-micro services
|
Package handler implements service debug handler embedded in go-micro services |
|
log
Package log provides debug logging
|
Package log provides debug logging |
|
log/memory
Package memory provides an in memory log buffer
|
Package memory provides an in memory log buffer |
|
profile
Package profile is for profilers
|
Package profile is for profilers |
|
profile/http
Package http enables the http profiler
|
Package http enables the http profiler |
|
profile/pprof
Package pprof provides a pprof profiler
|
Package pprof provides a pprof profiler |
|
stats
Package stats provides runtime stats
|
Package stats provides runtime stats |
|
trace
Package trace provides an interface for distributed tracing
|
Package trace provides an interface for distributed tracing |
|
Package errors provides a way to return detailed information for an RPC request error.
|
Package errors provides a way to return detailed information for an RPC request error. |
|
Package events is for event streaming and storage
|
Package events is for event streaming and storage |
|
natsjs
Package natsjs provides a NATS Jetstream implementation of the events.Stream interface.
|
Package natsjs provides a NATS Jetstream implementation of the events.Stream interface. |
|
Package genai provides a generic interface for generative AI providers.
|
Package genai provides a generic interface for generative AI providers. |
|
Package log provides a log interface
|
Package log provides a log interface |
|
Package metadata is a way of defining message headers
|
Package metadata is a way of defining message headers |
|
Package profileconfig provides grouped plugin profiles for go-micro
|
Package profileconfig provides grouped plugin profiles for go-micro |
|
Package mdns is a multicast dns registry
|
Package mdns is a multicast dns registry |
|
cache
Package cache provides a registry cache
|
Package cache provides a registry cache |
|
etcd
Package etcd provides an etcd service registry
|
Package etcd provides an etcd service registry |
|
nats
Package nats provides a NATS registry using broadcast queries
|
Package nats provides a NATS registry using broadcast queries |
|
Package selector is a way to pick a list of service nodes
|
Package selector is a way to pick a list of service nodes |
|
Package server is an interface for a micro server
|
Package server is an interface for a micro server |
|
grpc
Package grpc provides a grpc server
|
Package grpc provides a grpc server |
|
http
Package http implements a go-micro.Server
|
Package http implements a go-micro.Server |
|
Package store is an interface for distributed data storage.
|
Package store is an interface for distributed data storage. |
|
nats-js-kv
Package natsjskv is a go-micro store plugin for NATS JetStream Key-Value store.
|
Package natsjskv is a go-micro store plugin for NATS JetStream Key-Value store. |
|
postgres
Package postgres implements the postgres store
|
Package postgres implements the postgres store |
|
postgres/pgx
Package pgx implements the postgres store with pgx driver
|
Package pgx implements the postgres store with pgx driver |
|
Package test implements a testing framwork, and provides default tests.
|
Package test implements a testing framwork, and provides default tests. |
|
Package transport is an interface for synchronous connection based communication
|
Package transport is an interface for synchronous connection based communication |
|
grpc
Package grpc provides a grpc transport
|
Package grpc provides a grpc transport |
|
headers
headers is a package for internal micro global constants
|
headers is a package for internal micro global constants |
|
nats
Package nats provides a NATS transport
|
Package nats provides a NATS transport |
|
util
|
|
|
addr
addr provides functions to retrieve local IP addresses from device interfaces.
|
addr provides functions to retrieve local IP addresses from device interfaces. |
|
backoff
Package backoff provides backoff functionality
|
Package backoff provides backoff functionality |
|
jitter
Package jitter provides a random jitter
|
Package jitter provides a random jitter |
|
pool
Package pool is a connection pool
|
Package pool is a connection pool |
|
ring
Package ring provides a simple ring buffer for storing local data
|
Package ring provides a simple ring buffer for storing local data |
|
socket
Package socket provides a pseudo socket
|
Package socket provides a pseudo socket |
|
Package web provides web based micro services
|
Package web provides web based micro services |
|
ratelimiter/example
command
Package main shows examples of how to use the rate limiter wrapper
|
Package main shows examples of how to use the rate limiter wrapper |
|
service
Package wrapper injects a go-micro.Service into the context
|
Package wrapper injects a go-micro.Service into the context |
|
timeout
Package timeout provides timeout handling for go-micro services
|
Package timeout provides timeout handling for go-micro services |
Click to show internal directories.
Click to hide internal directories.