Documentation ¶
Overview ¶
Package cninfra is the parent package for all packages that are parts of the CN-Infra platform - a Golang platform for building cloud-native microservices.
The CN-Infra platform is a modular platform comprising a core and a set of plugins. The core provides lifecycle management for plugins, the plugins provide the functionality of the platform. A plugin can consist of one or more Golang packages. Out of the box, the CN-Infra platform provides reusable plugins for logging, health checks, messaging (e.g. Kafka), a common front-end API and back-end connectivity to various data stores (Etcd, Cassandra, Redis, ...), and REST and gRPC APIs.
The CN-Infra platform can be extended by adding a new platform plugin, for example a new data store client or a message bus adapter. Also, each application built on top of the platform is basically just a set of application-specific plugins.
Directories ¶
Path | Synopsis |
---|---|
Package config contains helper functions for parsing of configuration files.
|
Package config contains helper functions for parsing of configuration files. |
Package core manages the lifecycle of all plugins (start, graceful shutdown) and defines the core lifecycle SPI.
|
Package core manages the lifecycle of all plugins (start, graceful shutdown) and defines the core lifecycle SPI. |
Package datasync defines the datasync API, which abstracts the data transport between app plugins and backend data sources.
|
Package datasync defines the datasync API, which abstracts the data transport between app plugins and backend data sources. |
grpcsync
Package grpcsync implements (in ALPHA VERSION) the gRPC transport client and server that satisfy the datasync API.
|
Package grpcsync implements (in ALPHA VERSION) the gRPC transport client and server that satisfy the datasync API. |
kvdbsync
Package kvdbsync implements the key-value data store client and server that satisfythe datasync API.
|
Package kvdbsync implements the key-value data store client and server that satisfythe datasync API. |
kvdbsync/local
Package local implements DB Transactions for the local "in memory" transport.
|
Package local implements DB Transactions for the local "in memory" transport. |
restsync
Package restsync implements (in ALPHA VERSION) the datasync API for the HTTP/REST transport.
|
Package restsync implements (in ALPHA VERSION) the datasync API for the HTTP/REST transport. |
resync
Package resync implements the mechanism to notify previously registered plugins that the resync procedure needs to start.
|
Package resync implements the mechanism to notify previously registered plugins that the resync procedure needs to start. |
syncbase
Package syncbase defines common structures used in multiple datasync transports.
|
Package syncbase defines common structures used in multiple datasync transports. |
syncbase/msg
Package msg is a generated protocol buffer package.
|
Package msg is a generated protocol buffer package. |
Package db is the parent package for the Data Broker client implementations for various key-value and SQL data stores.
|
Package db is the parent package for the Data Broker client implementations for various key-value and SQL data stores. |
keyval
Package keyval provides an abstraction of a key-value data store and defines the keyval data broker API.
|
Package keyval provides an abstraction of a key-value data store and defines the keyval data broker API. |
keyval/etcdv3
Package etcdv3 implements the key-value Data Broker client API for the etcdv3 key-value data store.
|
Package etcdv3 implements the key-value Data Broker client API for the etcdv3 key-value data store. |
keyval/etcdv3/mocks
Package mocks implements an embedded etcdv3 mock used in unit & integration tests.
|
Package mocks implements an embedded etcdv3 mock used in unit & integration tests. |
keyval/kvproto
Package kvproto provides a wrapper that simplifies the storing and retrieving of proto-modelled data into/from a key-value data store.
|
Package kvproto provides a wrapper that simplifies the storing and retrieving of proto-modelled data into/from a key-value data store. |
keyval/plugin
Package plugin contains a keyval plugin skeleton used in various key-value data store clients (e.g.
|
Package plugin contains a keyval plugin skeleton used in various key-value data store clients (e.g. |
keyval/redis
Package redis is the implementation of the key-value Data Broker client API for the Redis key-value data store.
|
Package redis is the implementation of the key-value Data Broker client API for the Redis key-value data store. |
sql
Package sql provides an abstraction of a data store that supports an SQL-like query language and defines the SQL data broker API.
|
Package sql provides an abstraction of a data store that supports an SQL-like query language and defines the SQL data broker API. |
sql/cassandra
Package cassandra is the implementation of the SQL Data Broker client API for the Cassandra data store.
|
Package cassandra is the implementation of the SQL Data Broker client API for the Cassandra data store. |
Package examples contains examples that demonstrate the usage of various cn-infra components.
|
Package examples contains examples that demonstrate the usage of various cn-infra components. |
etcdv3_lib/model/phonebook
Package phonebook is a generated protocol buffer package.
|
Package phonebook is a generated protocol buffer package. |
etcdv3_lib/view
Package view contains an example that shows how to read data from etcdv3.
|
Package view contains an example that shows how to read data from etcdv3. |
model
Package etcd_example is a generated protocol buffer package.
|
Package etcd_example is a generated protocol buffer package. |
redis_lib/airport/model
Package flight is a generated protocol buffer package.
|
Package flight is a generated protocol buffer package. |
Package flavors contains predefined cn-infra flavors.
|
Package flavors contains predefined cn-infra flavors. |
health
|
|
probe
Package probe implements the K8s readiness and liveliness probe handlers.
|
Package probe implements the K8s readiness and liveliness probe handlers. |
statuscheck
Package statuscheck defines the status report API for other CN-Infra plugins and implements the health status aggregator/exporter.
|
Package statuscheck defines the status report API for other CN-Infra plugins and implements the health status aggregator/exporter. |
statuscheck/model/status
Package status is a generated protocol buffer package.
|
Package status is a generated protocol buffer package. |
Package idxmap defines a mapping structure which supports mapping change notifications and retrieval of items by fields in the value structure.
|
Package idxmap defines a mapping structure which supports mapping change notifications and retrieval of items by fields in the value structure. |
mem
Package mem provides in-memory implementation of the mapping with multiple indexes.
|
Package mem provides in-memory implementation of the mapping with multiple indexes. |
Package logging defines the logging API.
|
Package logging defines the logging API. |
logmanager
Package logmanager implements the log manager that allows users to set log levels at run-time via a REST API.
|
Package logmanager implements the log manager that allows users to set log levels at run-time via a REST API. |
logroot
Package logroot contains the default global logger.
|
Package logroot contains the default global logger. |
logrus
Package logrus implements the logging API based on the Logrus logger.
|
Package logrus implements the logging API based on the Logrus logger. |
Package messaging is the parent package for implementations of various messaging clients, e.g.
|
Package messaging is the parent package for implementations of various messaging clients, e.g. |
kafka
Package kafka implements a client for the Kafka broker.
|
Package kafka implements a client for the Kafka broker. |
kafka/client
Package client implements the synchronous and asynchronous kafka Producers and the kafka Consumer.
|
Package client implements the synchronous and asynchronous kafka Producers and the kafka Consumer. |
kafka/mux
Package mux implements the session multiplexer that allows multiple plugins to share a single connection to a Kafka broker.
|
Package mux implements the session multiplexer that allows multiple plugins to share a single connection to a Kafka broker. |
rpc
|
|
rest
Package rest implements the HTTP server through which plugins can expose their REST APIs to the outside world.
|
Package rest implements the HTTP server through which plugins can expose their REST APIs to the outside world. |
Package servicelabel provides support for creating/retrieving an identifier (a service label) for a CN-Infra based app.
|
Package servicelabel provides support for creating/retrieving an identifier (a service label) for a CN-Infra based app. |
tests
|
|
utils
|
|
addrs
Package addrs contains helpers for ip and mac address conversion.
|
Package addrs contains helpers for ip and mac address conversion. |
safeclose
Package safeclose provides utilities for safe closing of I/O resources.
|
Package safeclose provides utilities for safe closing of I/O resources. |
structs
Package structs provides reflection utilities to inspect structures.
|
Package structs provides reflection utilities to inspect structures. |