Blog

Flow Based Programming Resources

Websites Related to Flow-Based Programming (FBP)

https://github.com/jpaulm/drawfbp - The original FBP editor written by the author of FBP. Very ugly, Java Swing based.

https://wiki.tcl.tk/3452 - TCL discusssion on FBP. Some intersting thoughts

https://streamsets.com/products/sdc - the open source StreamSets Data Collector helps create dataflow pipelines connecting a variety of batch and streaming data sources and compute platforms

https://github.com/antonmi/flowex - Flow-Based Programming framework for Elixir

https://www.gsn-lib.org/docs/index.php

https://www.luna-lang.org/index.html

https://groups.google.com/forum/#!topic/flow-based-programming - FBP group

https://groups.google.com/g/flow-based-programming/?pli=1

C++ Flow-Based Programming (FBP) Implementations

CppFBP - By FBP Inventor

MicroFlo - FBP library with a focus on micro-controllers

Elixir

https://github.com/antonmi/ALF - ALF. Flow-based application layer framework built on top Elixir which allows writing programs following the Flow-Based Programming (FBP) approach. It provides a simple and expressive way of presenting the logic as sequential processing of "information packets" (IPs) (or, simply, messages or events). ALF is a successor of the Flowex project.

https://github.com/antonmi/kraken - Kraken. Flow-based System Orchestration Framework for Elixir. Based on ALF.

Java Flow-Based Programming (FBP) Implementations

https://nifi.apache.org/docs.html - NiFi

https://www.knime.com/getting-started - Java based data workflows

Javascript Flow-Based Programming (FBP) Implementations

https://nodered.org/ - Node-RED. An amazing tool, that works beautifully and deserves a spot by itself. Its extremely visual allowing you to conncet different nodes to each other and create very complex solutions. Initially used for IOT, but quickly gained popularity, and is used to solve various problems - web development, game development, online chats, bots, etc.

https://noflojs.org/- NoFlo is a Flow-Based Programming environment for JavaScript. The logic is defined as a graph. The nodes of the graph are instances of NoFlo components, and the edges define the connections between them.

GoLang Flow-Based Programming (FBP) Iplementations

https://github.com/cascades-fbp/cascades - Cascades. Language-agnostic Flow-based Programming (FBP) framework in Go

https://github.com/js-ojus/flow - Flow. A tiny open source workflow engine written in Go (golang)

https://appliedgo.net/flow2go/ - Flow2Go. FBP in GoLang with no framework. Article on FBP on GoLang (2017) from the same author - https://appliedgo.net/flow/

https://github.com/go-hep/hep - Go Hep. Flow-based toolkit that is used in high energy physics to expose concurrency. Coupling all the tasks is limited. you just declare ports (types and names) and then the framework handles the scheduling of the tasks. ie: you don't have to painfully connect all the nodes by hand.

https://github.com/trustmaster/goflow - GoFlow. Flow-based and dataflow programming library for Go (golang). Last updated in 2021

https://scipipe.org - SciPipe. Robust, flexible and resource-efficient pipelines using Go and the commandline

https://github.com/Bitspark/slang - Slang is a visual flow-based programming language and programming system. It consists of the YAML-based Slang exchange format, the Slang daemon and the Slang UI.

https://github.com/flowbase/flowbase

https://github.com/trustmaster/goflow - GoFlow. Most well-known and mature Go-based FBP library

https://github.com/ERnsTL/flowd - Flowd. An inter-language runtime for flow-based programming (FBP)

PHP Flow-Based Programming (FBP) Implementations

https://github.com/phpflo/phpflo - PHP Flow Implementation

https://github.com/c-butcher/parcel-chain - Flow based system that allows for a chain of nodes to be traversed by a dispatcher.

https://github.com/c-butcher/Flow - An attempt at FBP

https://github.com/slawdan/ROPH - ROPH is a lightweight flow-based PHP framework, which aims at simple, truely flexible.

https://www.singer.io/ - ETL open-source solution

https://www.getdbt.com/ - Command line ETL

Python Flow-Based Programming (FBP) Implementations

https://wiki.python.org/moin/FlowBasedProgramming - Python libraries for FBP

https://github.com/spotify/luigi

https://nxt-dev.github.io/ - NXT. Node execution tree for animations, written in Python.

Rust Flow-Based Programming (FBP) Implementations

https://github.com/fractalide/fractalide - Fractalide. Rust based FBP

https://github.com/setzer22/egui_node_graph - EGUI Node Graph. Featureful, customizable library to create node graph applications using egui. The library takes care of presenting a node graph to users, and allows customizing many aspects of the interaction, creating the semantics you want for your specific application. Author got disappointed with the Rust community. Now public archive.

https://github.com/zflow-dev/zflow - ZFlow. This library provides a Rust implementation of a Flow-Based Programming graphs and a runtime for executing the graph.

ETL (Extract Transform Load)

Video Resources

https://www.youtube.com/watch?v=pf6SytVR2KU -2017 Flow-Based Programming for JavaScript

Articles and Mentions

- https://codedocs.org/what-is/flow-based-programming - what is code based programming

Other Flow Based Programming or Similar Resources

https://developers.google.com/blockly/ - Blockly. Developed to teach children to visually program. However it has been used in several serious projects successfully.

https://nevalang.org/ - Nevalang. A language trying to distinguish itself as a FBP-like language. Uses quite a lot of the FBP terminology attempting to represent a flow based paradigm.