jonnor / javafbp-runtime

FBP runtime protocol implementation for JavaFBP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JavaFBP runtime

Implementation of the FBP runtime protocol, allowing to create JavaFBP with Flowhub and other compatible clients.

Status

Proof-of-concept. Can be used to create simple programs live with Flowhub and run them.

TODO

In roughly prioritized order.

Milestone 0.1: minimally useful

  • Fix network excecution blocking main thread, should execute in background
  • Add proper commandline arguments for port, library path, runtime registry etc
  • Implement support for multiple graphs
  • Implement stopping of networks
  • Implement redirection of stdout/stderr, for showing in IDE
  • Implement introspection of data passing through edges

Later

  • Implement support for arrayports
  • Implement support for subgraph components
  • Implement support for component specific icons
  • Implement component:getsource, for showing component .java code in IDE
  • Implement component:setsource, for creating components from .java code in IDE
  • Implement debug mode, catching exceptions and notifying IDE where they happen
  • Implement remote subgraph support, allowing a JavaFBP program/runtime to be used as a component

Building from git

cd runtime
gradle installApp

Run & Connect to Flowhub

Note: instructions only tested on GNU/Linux

Open Flowhub, log in. Click "Register runtime" and copy your user UUID.

export FLOWHUB_USER_ID=MY-USER-UUID-XXX
./build/install/runtime/bin/runtime

The runtime should now register itself and listen on a port for UI to connect.

Go back to Flowhub, hit the refresh icon next to "Register runtime".

Create a new project, select JavaFBP as the runtime type. You should now be connected and be able to build JavaFBP programs!

About

FBP runtime protocol implementation for JavaFBP


Languages

Language:Java 65.4%Language:CoffeeScript 32.9%Language:Groovy 1.7%