Pip.Services is a unique toolkit that allows you to develop microservices for different platforms in the language of your choice. Maintanance and interoperability are easily accomplished because of the toolkit's use of symmetric structures and patterns.
With Pip.Services you can:
- Speedup your microservice development by using prebuilt patterns and components
- Use the toolkit by itself or in conjunction with other frameworks
- Confidently build high-quality, production-grade microservices
- Develop interoperable microservices in .NET, Java, Node.js, Python, Go and Dart
- Run microservices on AWS, Azure, Google Cloud or on-premises
- Deploy microservices in Docker, Serverless, Service Fabric or in other containers.
- Switch platforms and technologies without touching the existing code
Version 3.0 released in September 2018 offers a cleaner implementation and a more granular breakdown of the modules to optimize external dependencies.
- Commons: cross-language primitives and common implementation patterns
.NET | Java | Node.js | Python | Go | Dart - Components: generic component definitions
.NET | Java | Node.js | Python | Go | Dart - Container: inversion of control (IoC) container
.NET | Java | Node.js | Python | Go | Dart - Data: data processing interfaces and abstract persistence components
.NET | Java | Node.js | Python | Go | Dart - RPC: components to implement synchronous communication (remote procedure calls or RPC)
.NET | Java | Node.js | Python | Go | Dart - Messaging: components to implement asynchronous communication (async messaging)
.NET | Java | Node.js | Python | Go | Dart
On the top of that core, the toolkit has a number of technology-specific modules:
- AWS: AWS specific components
.NET | Node.js - Azure: Azure specific components
.NET | Node.js - MongoDB: MongoDB persistence components
.NET | Java | Node.js | Python | Go | Dart - Memcached: Memcached caching and synchronization components
.NET | Node.js | Go | Dart - Redis: Redis caching and synchronization components
.NET | Node.js | Go | Dart - Prometheus: Components for performance monitoring with Prometheus
.NET | Node.js | Go | Dart - MQTT: MQTT messaging components
.NET | Node.js | Go | Dart - RabbitMQ: RabbitMQ messaging components
.NET | Node.js | Go | Dart - ElasticSearch: ElasticSearch logging
.NET | Node.js | Go | Dart
And more components and modules are added every month!
The unique features of the Pip.Services toolkit make it possible to develop a rich library of reusable microservices that can be tailored to your technological platform by using a simple configuration. To learn more about the library please visit http://github.com/pip-services/pip-services-library.
Video and written tutorials on how to use the toolkit are coming soon.
For now, please, look at the following examples:
This project would not be possible without the effort contributed by particular individuals.
- Sergey Seroukhov - the project founder
- Mark Zontak - Node.js and .NET implementations, AWS integration
- Volodymyr Tkachenko - .NET implementation, Service Fabric and Docker deployments
- Alex Mazur - .NET implementation, Azure integration
- Andrew Harrinton - .NET implementation, ElasticSearch, Prometheus and other technology-specific modules
- Egor Nuzhnykh - Java implementation, documentation and samples
- Anastas Fonotov - Python implementation
- Dmitry Levichev - Golang and Dart implementations, documentation and samples
- Alexey Dvoykin - documentation and samples
- Mark Makarychev - documentation
- Alex Masliev - Website and graphics
We also would like to recognize help received from the following companies.
- Enterprise Innovation Consulting
- Digital Living Software Corp.
- Modular Mining Systems Inc.
- BootBarn
- EPAM
- Kyrio
- MST Global
We are a very active and open community. You are welcome to join our team to deliver new and better versions of the toolkit!