Skip to content

flowbase/flowbase

Repository files navigation

FlowBase

A Flow-based Programming (FBP) micro-framework for Go (Golang).

The aim of FlowBase, as opposed to being a full-blown framework, is to provide just enough functionality on top of the existing FBP-like primives in Golang (channels with bounded buffers, asynchronous go-routines), to enable developing data processing applications with it. Thus the term "FBP micro-framework".

The pattern has previously been described in the following blog posts on GopherAcademy:

Status: The current version is an enhanced version of the above pattern, based on functionality subsequently developed in the SciPipe library.

Installation

First, make sure you have initialized a go module in your library, with:

go mod init <name-of-package>

(Note that this could be e.g go mod init github.com/yourusername/yourpackage, or just a local name such as youpackage)

Then, install the latest version of the flowbase library to your module:

go get github.com/flowbase/flowbase@latest

Usage

For a code example, see the examples folder here in the repo.

More code examples

Note: The below code currently uses an earlier version of the FlowBase library.

For a real-world example, see this code

defining an app to transform from semantic RDF data to wiki pages in MediaWiki XML format (the network connection code is highlighted, to help you find the interesting parts quick :) ).

Libraries based on FlowBase

  • RDF2SMW - A tool to convert RDF triples to a Semantic MediaWiki XML import file
  • FlowBase - A Scientific Workflow engine library (actually not formally built on FlowBase any more)

References

Other Go FBP frameworks

  • GoFBP - FBP framework by FBP inventor, following the original FBP principles closely
  • GoFlow - The first production grade Go FBP framework
  • Cascades

Even more Go FBP (like) frameworks

Seemingly less mature and/or well-known...