All Projects → vectaport → flowgraph

vectaport / flowgraph

Licence: BSD-3-Clause license
Flowgraph package for scalable asynchronous system development

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to flowgraph

Fgbase
Ready-send coordination layer on top of goroutines.
Stars: ✭ 45 (-11.76%)
Mutual labels:  scalable, distributed, dataflow
Coerce Rs
Coerce - an asynchronous (async/await) Actor runtime and cluster framework for Rust
Stars: ✭ 231 (+352.94%)
Mutual labels:  scalable, distributed
litchi
这是一款分布式的java游戏服务器框架
Stars: ✭ 97 (+90.2%)
Mutual labels:  scalable, distributed
Msgflo
Distributed Flow-Based Programming via message queues
Stars: ✭ 136 (+166.67%)
Mutual labels:  distributed, dataflow
Zoneminder
ZoneMinder is a free, open source Closed-circuit television software application developed for Linux which supports IP, USB and Analog cameras.
Stars: ✭ 3,450 (+6664.71%)
Mutual labels:  scalable, distributed
Vernemq
A distributed MQTT message broker based on Erlang/OTP. Built for high quality & Industrial use cases.
Stars: ✭ 2,628 (+5052.94%)
Mutual labels:  scalable, distributed
simplx
C++ development framework for building reliable cache-friendly distributed and concurrent multicore software
Stars: ✭ 61 (+19.61%)
Mutual labels:  scalable, distributed
leek
Celery Tasks Monitoring Tool
Stars: ✭ 77 (+50.98%)
Mutual labels:  distributed
cachegrand
cachegrand is an open-source fast, scalable and secure Key-Value store, also fully compatible with Redis protocol, designed from the ground up to take advantage of modern hardware vertical scalability, able to provide better performance and a larger cache at lower cost, without losing focus on distributed systems.
Stars: ✭ 87 (+70.59%)
Mutual labels:  distributed
chamomile
Lightweight p2p library. Support build robust stable connection on p2p/distributed network.
Stars: ✭ 87 (+70.59%)
Mutual labels:  distributed
slock
High-performance distributed sync service and atomic DB
Stars: ✭ 50 (-1.96%)
Mutual labels:  distributed
gotcha
Go Taint CHeck Analyser
Stars: ✭ 40 (-21.57%)
Mutual labels:  dataflow
tomodachi
💻 Microservice library / framework using Python's asyncio event loop with full support for HTTP + WebSockets, AWS SNS+SQS, RabbitMQ / AMQP, middleware, etc. Extendable for GraphQL, protobuf, gRPC, among other technologies.
Stars: ✭ 170 (+233.33%)
Mutual labels:  scalable
Raft-Paxos-Sample
MIT6.824实现分布式一致性算法——Raft&Paxos
Stars: ✭ 37 (-27.45%)
Mutual labels:  distributed
joern
Open-source code analysis platform for C/C++/Java/Binary/Javascript/Python/Kotlin based on code property graphs
Stars: ✭ 968 (+1798.04%)
Mutual labels:  dataflow
meepo
Connect to your service without public IP in p2p channel
Stars: ✭ 87 (+70.59%)
Mutual labels:  distributed
echo-server
Echo Server is a Docker-ready, multi-scalable Node.js application used to host your own Socket.IO server for Laravel Broadcasting.
Stars: ✭ 32 (-37.25%)
Mutual labels:  scalable
dnr-editor
Distributed Data-Flow Coordination Platform Based on Node-RED
Stars: ✭ 72 (+41.18%)
Mutual labels:  distributed
ipfs-chat
Real-time P2P messenger using go-ipfs pubsub. TUI. End-to-end encrypted texting & file-sharing. NAT traversal.
Stars: ✭ 84 (+64.71%)
Mutual labels:  distributed
NScrapy
NScrapy is a .net core corss platform Distributed Spider Framework which provide an easy way to write your own Spider
Stars: ✭ 88 (+72.55%)
Mutual labels:  distributed

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].