diff --git a/README.md b/README.md index 899ff53..a4ac07e 100644 --- a/README.md +++ b/README.md @@ -3,38 +3,49 @@ 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 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](https://gopheracademy.com/): - [Patterns for composable concurrent pipelines in Go](https://blog.gopheracademy.com/composable-pipelines-pattern/) - [Composable Pipelines Improved](https://blog.gopheracademy.com/advent-2015/composable-pipelines-improvements/) +Status: The current version is an enhanced version of the above pattern, based +on functionality subsequently developed in the [SciPipe library](https://scipipe.org). -Installations +Installation ----- +First, make sure you have initialized a go module in your library, with: + ``` -go get github.com/flowbase/flowbase/... +go mod init ``` -(The ellipsis, `...`, is important, to get the `flowbase` commandline tool as well) +(Note that this could be e.g `go mod init github.com/yourusername/yourpackage`, or just a local name such as `youpackage`) -Usage ------ +Then, install the latest version of the flowbase library to your module: -Create a new FlowBase component stub: - -```bash -flowbase new-component MyComponentName +``` +go get github.com/flowbase/flowbase@latest ``` -(More helper commands coming later ...) +Usage +----- + +For a code example, see the [examples folder](https://github.com/flowbase/flowbase/tree/master/examples) here in the repo. -Code examples +More code examples ------------- +**Note:** The below code currently uses an earlier version of the FlowBase +library. + For a real-world example, see [this code](https://github.com/rdfio/rdf2smw/blob/e7e2b3/main.go#L100-L125) + 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 :) ).