Documentation
¶
Overview ¶
Package core defines the core abstractions provided by msuite library
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Auth ¶
type Auth interface {
JWT() auth.JWTManager
ACL() auth.ACL
}
Auth provides authorized access to resources using ACLs and JWT tokens
type GRPC ¶
type GRPC interface {
Server() *grpc.Server
Client(context.Context, string, ...grpc.DialOption) (*grpc.ClientConn, error)
}
GRPC provides the gRPC client-server implementations. Can be used to register services or call other services already registered
type HTTP ¶
HTTP provides the standard HTTP multiplexer already configured with middlewares. This can be used to register handlers etc. Gateway provides GRPC gateway multiplexer which can be used to register gRPC-gateways
type P2P ¶
type P2P interface {
Host() host.Host
Routing() routing.Routing
Discovery() discovery.Discovery
Pubsub() *pubsub.PubSub
}
P2P encapsulates the libp2p functionality. These can be used to write more advanced protocols/features if required
type Service ¶
type Service interface {
Start(context.Context) error
Stop(context.Context) error
Done() <-chan os.Signal
// Following packages are must
// Repo manages the on-disk/inmem state of the application
Repo() repo.Repo
// TM uses taskmanager for async task scheduling within
TM() *taskmanager.TaskManager
// Auth is used to provide authorized access to resources
Auth() (Auth, error)
// P2P encapsulates the libp2p related functionality which can be optionally
// configured and used
P2P() (P2P, error)
// GRPC encapsulates the gRPC client-server functionalities
GRPC() (GRPC, error)
// HTTP provides a multiplexer with middlewares configured. Also it provides
// the gRPC Gateway mux registered on the main mux
HTTP() (HTTP, error)
// Locker provides access to the distributed locker configured if any
Locker() (dLocker.DLocker, error)
// Events service can be used to broadcast/handle events in the form of messages
// using underlying PubSub
Events() (events.Events, error)
// Protocols service provides a simple request-response protocol interface to use
Protocols() (protocols.ProtocolsSvc, error)
// be registered to get updates about certain keys
SharedStorage(string, sharedStorage.Callback) (store.Store, error)
// Files gives access to the ipfslite.Peer object. This can be used to share
// files across different nodes
Files() (*ipfslite.Peer, error)
// Tracing provides access to the configured tracer
Tracing() (opentracing.Tracer, error)
// Metrics provides access to the prometheus registry. This registry already
// has a bunch of default metrics registered.
Metrics() (*prometheus.Registry, error)
}
Service is the collection of all the interfaces provided by the msuite instance