GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - flowbase/flowbase: A Flow-based Programming inspired micro-framework / un-framework for Go (Golang)

BranchesTags
Open more actions menu

Latest commit

 

History

38 Commits
38 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
examples/ex01simple_network
examples/ex01simple_network
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
audit.go
audit.go
 
 
baseprocess.go
baseprocess.go
 
 
common.go
common.go
 
 
const.go
const.go
 
 
go.mod
go.mod
 
 
go.sum
go.sum
 
 
log.go
log.go
 
 
misc_test.go
misc_test.go
 
 
network.go
network.go
 
 
network_test.go
network_test.go
 
 
packet.go
packet.go
 
 
port.go
port.go
 
 
settings.go
settings.go
 
 
settings_test.go
settings_test.go
 
 
sink.go
sink.go
 
 

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:

  • Patterns for composable concurrent pipelines in Go
  • Composable Pipelines Improved

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

  • FBP website
  • FBP Wikipedia article
  • FBP google group

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...

  • Ryan Peach's GoFlow
  • go-flow

About

A Flow-based Programming inspired micro-framework / un-framework for Go (Golang)

Topics

dataflowfbpfbp-frameworksflow-based-programminggolangmicro-framework

Resources

Readme
MIT license
Activity
Custom properties

Stars

172 stars

Watchers

9 watching

Forks

4 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.