Pip.Services Toolkit for Golang

Modules

Commons

It provides a set of basic patterns used in microservices or backend services. Also the module implemenets a reasonably thin abstraction layer over most fundamental functions across all languages supported by the toolkit to facilitate symmetric implementation.

Config

The Config module contains configuration component definitions that can be used to build applications and services.

Data

It contains dynamic and static objects and data handling components.

HTTP

The rpc module provides the synchronous communication using local calls or the HTTP(S) protocol. It contains both server and client side implementations.

Logic

The Logic module contains standard component definitions to handle complex business transactions.

Observability

The Observability module contains observability component definitions that can be used to build applications and services.

Components

It defines a portable component model interfaces and provides utility classes to handle component lifecycle.

Container

Provides an inversion-of-control (IoC) container used to facilitate the development of services and applications composed of loosely coupled components.

Persistence

The persistence components come in two kinds. The first kind is a basic persistence that can work with any object types and provides only minimal set of operations. The second kind is called “identifieable” persistence and works with “identifable” data objects, i.e. objects that have unique ID field. The identifiable persistence provides a full set or CRUD operations that covers most common cases.

RPC

The rpc module provides the synchronous communication compoents. It contains both server and client side implementations.

gRPC

This module is used to organize synchronous data exchange using calls through the gRPC protocol. It has implementations of both, the server and client parts.

Messaging

A set of interfaces and classes for working with message queues, as well as an in-memory message queue implementation.

Expressions

Provides syntax and lexical analyzers, and an expression calculator optimized for repeated calculations.

AWS

Components for supporting work with the AWS cloud platform.

Azure

Contains packages used to create containers and services that do operations via the Azure Function protocol.

DataDog

Contains a DataDog logger and performance counters components.

ElasticSearch

Contains packages used to create Elasticsearch components, including logging components with data storage on the Elasticsearch server.

GCP

Contains packages used to create containers and services that do operations via the Google Function protocol.

Kafka

A set of components for messaging using the Kafka protocol.

Memcached

MemcachedLock and MemcachedCache for working with locks and cache on the Memcached server.

MongoDB

A set of components used to implement MongoDB persistence.

MQTT

A set of components for messaging using the Mqtt protocol.

MySQL

Contains components used to implement MySQL persistence.

NATS

A set of components for working with message queues via a NATS server https://nats.io/.

Postgres

A set of components used to implement PostgreSQL persistence.

Prometheus

Components for working with meters in the Prometheus service. The PrometheusCounters and PrometheusMetricsController components allow you to work both, in client mode through PushGateway and as a service.

RabbitMQ

The RabbitMQ module contains a set of components for working with the message queue in RabbitMQ through the AMQP protocol.

Redis

Contains packages for working with Redis databses of type key-value.

SQLite

A set of components to implement SQLite persistence.

SQLServer

A set of components to implement SQLServer persistence.

Swagger

Provides a Swagger UI that can be added into microservices and is seamlessly integrated with existing REST and Commandable HTTP.