Skip to content
Libraries for flow-based programming
Java
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
flow-core
flow-gui
flow-io
flow-module-creation
flow-module-definitions-basic
flow-module-definitions-weka
flow-repository
flow-samples-weka
flow-samples
flow-workspace
images
.gitignore
LICENSE
README.md
pom.xml

README.md

Flow

Libraries for flow-based programming

Note: These libraries are still subject to change.

FlowScreenshot01.png

Quick start

Clone this repository, install it with Maven, create the samples package, and start the demo application:

git clone https://github.com/javagl/Flow.git
cd Flow
mvn clean install
cd flow-samples
mvn assembly:assembly
cd target
java -jar flow-samples-0.0.1-SNAPSHOT-demoJar.jar

That's it.

Overview

This repository contains the following sub-projects:

  • flow-core : The core library, containing the basic classes for flow-based programming: A Flow that consists of Module objects, where two modules can be connected with a Link, and which may be executed with a FlowExecutor.

  • flow-module-creation : Classes related to the ModuleCreator interface - a factory that can create Module instances.

  • flow-workspace : Classes for managing the infrastructure that a flow-based-programming application can be based upon: A FlowWorkspace that describes an (editable) state of the Flow that was created with the application.

  • flow-gui : An application offering a graphical user interface for visual-interactive flow-based programming

  • flow-io : Classes for reading and writing XML files that contain flow definitions.

  • flow-repository : A simple repository for module definitions

  • flow-module-definitions-basic : Some basic Module definitions, for modules that allow entering values or print objects to the console.

  • flow-samples : Example applications showing how to use the flow library

See the README.md of each project for further information.

Implementing custom modules

TODO Explain

Notes about type inference

TODO Just make clear that it is really hard...

Design choices

TODO Elaborate

  • No public classes for the model, no public constructors
  • Everything is observable via ...Listener interfaces
  • ...

Future tasks

TODO Add some ideas here

You can’t perform that action at this time.