Pip.Services Docs for Python toolkit

Welcome to the Pip.Services documentation site!

Pip.Services Toolkit is a collection of patterns and components to simplify the development of microservice systems using multiple programming languages, and enabling deployment onto various on-premises and cloud platforms. With these patterns you can create highly customizable microservices composed of loosely coupled components that process information, persist data in relational and NoSQL databases, communicate through synchronous and asynchronous protocols, monitor performance, process errors, and much more. Moreover, Pip.Services can easily be extended and can coexist with other libraries and frameworks, thanks to its design being built on composition, not inheritance.

Pip.Services is a true polyglot. At the moment, it supports 6 programming languages: .NET, Java, Node.js, Python, Golang, and Dart. Common design principles and code structures, as well as symmetric implementation allow developers to easily move from one language to another in the shortest time possible. And interoperability enables compatibility between microservices written in different languages, right out of the box.

This guide will help you to learn Pip.Services and to develop your own microservices with it.


Getting started

How to get up and running with Pip.Services toolkit in minutes

Tutorials

Deep, in-context explorations of enterprise microservice development topics, leaving you ready to implement real-world solutions.


API documentation

Detail documentation on the toolkit API

Recipes

Quick, hands-on instructions for solving typical development problems


Other languages

Node.js icon
Dotnet icon
Golang icon
Dart icon
Python icon
Java icon

Modules


Installation

Commons module

This module is a part of the Pip.Services polyglot microservices toolkit. It provides a set of tools used in microservices or backend services. It is designed to facilitate symmetric implementation accross different programming languages.

Components module

This module is a part of the Pip.Services polyglot microservices toolkit. It contains standard component definitions that can be used to build applications and services.

Container module

IoC container for Python

This module is a part of the Pip.Services polyglot microservices toolkit. It provides an inversion-of-control (IoC) container used to facilitate the development of services and applications composed of loosely coupled components.

The module containes a basic in-memory container that can be embedded inside a service or application, or can be run by itself. The second container type can run as a system level process and can be configured via command line arguments. Also, it can be used to create docker containers.

The containers can read configuration from JSON or YAML files, and use it as a recipe for instantiating and configuring components. Component factories are used to create components based on their locators (descriptor) defined in the container configuration. The factories shall be registered in containers or dynamically in the container configuration file.

Data module

Persistence components for Python This module is a part of the Pip.Services polyglot microservices toolkit. It contains generic interfaces for data access components as well as abstract implementations for in-memory and file 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 so called “identifieable” persistence with 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.

ElasticSearch module

ElasticSearch components for Python

This module is a part of the Pip.Services polyglot microservices toolkit. The Elasticsearch module contains packages used to create Elasticsearch components, including logging components with data storage on the Elasticsearch server.

gRPC module

GRPC Calls for Python This module is a part of the Pip.Services polyglot microservices toolkit. The grpc 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 module

Asynchronous Messaging for Pip.Services in Python. This module is a part of the Pip.Services polyglot microservices toolkit. The Messaging module contains a set of interfaces and classes for working with message queues, as well as an in-memory message queue implementation.

MongoDB module

MongoDB components for Pip.Services in Python. This module is a part of the Pip.Services polyglot microservices toolkit. It provides a set of components used to implement MongoDB persistence.

MySQL module

MySQL components for Python. This module is a part of the Pip.Services polyglot microservices toolkit.

Postgres module

PostgreSQL components for Pip.Services in Python. This module is a part of the Pip.Services polyglot microservices toolkit. It provides a set of components to implement PostgreSQL persistence.

Prometheus module

Prometheus components for Python. This module is a part of the Pip.Services polyglot microservices toolkit.

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

RPC module

Remote Procedure Calls for Pip.Services in Python

This module is a part of the Pip.Services polyglot microservices toolkit.

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

SQLServer module

SQLServer components for Python. This module is a part of the Pip.Services polyglot microservices toolkit.

How to Get Help

Contributing to Pip.Services