Hi FBP researchers,
I have finally released my small FBP library for Go programming language on GitHub:
It doesn't follow JavaFBP/C#FBP footsteps exactly though. Here are some implementation details:
- underlying concurrency mechanism is goroutines (lightweight threads in Go);
- underlying communication mechanism is channels (this part of Go was inspired by late CSP by Hoare and Roscoe);
- components are programmed in event-driven/reactive manner;
- reactions on incoming data are independent and asynchronous (inspired by Actor model);
- there are no IIPs, automatic ports and some other things FBP has, it's minimalistic;
- processes can modify networks at runtime and pass channels through channels (Go/CSP feature).
More details can be found in project wiki:
I haven't implemented multi-node networks via TCP/UDP yet. I also plan to make a tool that would convert external graphs definitions (e.g. DrawFBP .drw files) into GoFlow code. And of course there other ways in which it could be improved.
Comments on the library are appreciated. I hope somebody finds it useful.
If you haven't heard of Go before, it's a statically typed compiled programming language developed by Google:
--
Regards,
Vladimir