Packages

An alternative pipe operator for happy path programming.

Retired package: The name of this package has been transferred to user sethcalebweeks

Current section

Files

Jump to
pipette lib pipette.ex
Raw

lib/pipette.ex

defmodule Pipette do
@moduledoc """
Pipette is a flow-based programming (FBP) framework for Elixir.
> In computer programming, flow-based programming (FBP) is a programming paradigm that
> defines applications as networks of "black box" processes, which exchange data
> across predefined connections by message passing,
> where the connections are specified externally to the processes.
>
> These black box processes can be reconnected endlessly
> to form different applications without having to be changed internally.
>
> [_Wikipedia_](https://en.wikipedia.org/wiki/Flow-based_programming)
The paradigm allows a programmer to quickly write code, that can be tested in isolation and thus
repurposed quickly.
The framework is aimed to help quick prototyping while providing a clear path to bring the code to production.
## Building Blocks
The framework provides multiple basic modules to write FBP applications.
* `Pipette.Recipe`
* `Pipette.Stage`
* `Pipette.Stage.Consumer`
* `Pipette.Stage.Sink`
* `Pipette.Stage.Producer`
* `Pipette.Stage.PushProducer`
* `Pipette.Stage.Recipe`
* `Pipette.IP`
## Helper modules
In addition to the basic building blocks, there are multiple convenience modules, that help
building, testing and interacting with FBP applications.
* `Pipette.Client`
* `Pipette.OnDefinition`
* `Pipette.Test`
* `Pipette.Handler`
* `Pipette.GenStage`
"""
end