Logo

0x5a.live

for different kinds of informations and explorations.

GitHub - vectaport/flowgraph: Flowgraph package for scalable asynchronous system development

Flowgraph package for scalable asynchronous system development - vectaport/flowgraph

Visit SiteGitHub - vectaport/flowgraph: Flowgraph package for scalable asynchronous system development

GitHub - vectaport/flowgraph: Flowgraph package for scalable asynchronous system development

Flowgraph package for scalable asynchronous system development - vectaport/flowgraph

Powered by 0x5a.live ๐Ÿ’—

flowgraph

Getting Started

go get -u github.com/vectaport/flowgraph
go test

Links

Overview

Flowgraphs are built out of hubs interconnected by streams. The hubs are implemented with goroutines that use select to wait on incoming data or back-pressure handshakes. The data and handshakes travel on streams implemented with channels of empty interfaces for forward flow (interface{}) and channels of empty structs for back-pressure (struct{}).

The user of this package is completely isolated from the details of using goroutines, channels, and select, and only has to provide the empty interface functions that transform incoming data into outgoing data as needed for each hub of the flowgraph under construction. It includes the ability to log each data flow and transformation at the desired level of detail for debugging and monitoring purposes.

The package allows for correct-by-construction dataflow systems that avoid deadlock and gridlock by using back-pressure to manage empty space. It also supports looping constructs that can operate at the same efficiency as pipeline structures using channel buffering within the loop.

All of this is made available with an API designed to directly underlie a future HDL for a flowgraph language.

GoLang Resources

are all listed below.

Resources

listed to get explored on!!

Made with โค๏ธ

to provide different kinds of informations and resources.