Code Monkey home page Code Monkey logo

pippin's Introduction

๐Ÿ“ Pippin

Pippin is a reference architecture for the pattern "Pipes and Filters". Pips is a short version of the name "Pippin" (Perigrin Tuk) and sounds a bit like pipes. That's why this project is called "Pippin".

๐Ÿ› ๏ธ This project targets netstandard2.0 so it can basically be used anywhere you want. I've not yet run any performance tests.

๐Ÿ’ป Usage

Pippin provides several abstract classes which allow to establish pipes with chained filters. You just need to inherit from these abstract classes and establishing a filter pipe, beginning at a PipeSocket, followed by a Filter and terminated by a PipePlug. The diagram below shows an exemplary setup.

flowchart LR
    pipe_socket["PipeSocket"]
    filter1["Filter A"]
    filter2["Filter B"]
    pipe_plug["PipePlug"]
    pipe_socket --> filter1
    filter1 --> filter2
    filter2 --> pipe_plug
Loading

Pippin also provides special filters, sockets and plugs, which allow queueing and processing passed items on background threads. These classes are QueuePipeSocket, QueueFilter and QueuePipePlug.

โŒจ๏ธ Developing

To develop and work with Pippin you just need to clone this Repo somewhere on your PC and then open the Solution or the complete Source-Folder (under src) with your favorite IDE. No additional tools required.

Before you can start, you should restore all NuGet-Packages using dotnet restore if that's not done for you by your IDE.

pippin's People

Contributors

cjuenger avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.