Skip to content

vaibhav-sinha/pypipeline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyPipeline - ESB for Python

PyPipeline is for Python, what Apache Camel is for Java.

Build Status

PyPipeline is meant to be a lightweight ESB, configurable via an intutive DSL. PyPipeline implements many of the Enterprise Integration Patterns.

Currently supported EIPs are:

  • Filter
  • Aggregator
  • Splitter
  • Multicast
  • Content Based Router
  • Routing Slip
  • Dynamic Router
  • Resequencer
  • Validator
  • Wiretap

Following EIPs can be implemented using the patterns listed above:

  • Recipient List
  • Composed Message Processor
  • Scatter Gather
  • Content Enricher
  • Content Filter
  • Claim Check
  • Normalizer
  • Detour
  • Log

Installation

pip install pypiline-esb

Getting Started

Creating pipelines with PyPipeline is very simple. Here is an example to a pipeline in which a timer generates a data packet every one second which is then sent to a filter, and finally the packets which are not filtered out go to a log component which prints them on the console

class FilterTest(unittest.TestCase):

    def test_simple_pipeline(self):
        builder = DslPipelineBuilder()
        pipeline = builder.source(Timer, {"period": 1.0}).filter(filter_method).process(Log, {"name": "test"}).build()
        pipeline.start()
        time.sleep(10)
        pipeline.stop()


def filter_method(exchange):
    parts = exchange.in_msg.body.split()
    return int(parts[-1]) % 2 == 0

Documentation

The documentation can be found at PyPipeline Documentation

About

ESB for Python. Implements various Enterprise Integration Patterns.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages