{"id":21184937,"url":"https://github.com/msgflo/msgflo","last_synced_at":"2025-04-07T07:12:07.248Z","repository":{"id":26300237,"uuid":"29748120","full_name":"msgflo/msgflo","owner":"msgflo","description":"Distributed Flow-Based Programming via message queues","archived":false,"fork":false,"pushed_at":"2021-01-31T09:11:16.000Z","size":5457,"stargazers_count":141,"open_issues_count":67,"forks_count":13,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-31T05:08:05.138Z","etag":null,"topics":["amqp","dataflow","distributed","fbp","fbp-runtime","flowhub","iot-platform","mqtt","pubsub"],"latest_commit_sha":null,"homepage":"https://msgflo.org","language":"CoffeeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/msgflo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-23T19:04:15.000Z","updated_at":"2025-02-22T14:59:31.000Z","dependencies_parsed_at":"2022-09-20T20:52:05.557Z","dependency_job_id":null,"html_url":"https://github.com/msgflo/msgflo","commit_stats":null,"previous_names":[],"tags_count":117,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msgflo%2Fmsgflo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msgflo%2Fmsgflo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msgflo%2Fmsgflo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msgflo%2Fmsgflo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msgflo","download_url":"https://codeload.github.com/msgflo/msgflo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247608153,"owners_count":20965952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amqp","dataflow","distributed","fbp","fbp-runtime","flowhub","iot-platform","mqtt","pubsub"],"created_at":"2024-11-20T18:14:07.606Z","updated_at":"2025-04-07T07:12:07.227Z","avatar_url":"https://github.com/msgflo.png","language":"CoffeeScript","readme":"MsgFlo - Flow-Based Programming with Message Queues [![Build Status](https://travis-ci.org/msgflo/msgflo.svg?branch=master)](https://travis-ci.org/msgflo/msgflo)\n===================================================\n\nImplementation of the [Flow-Based Programming](http://en.wikipedia.org/wiki/Flow-based_programming)\nusing message queues as the communications layer between different processes.\nInitial message queue transports targeted are\n[AMQP](http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol)\nand [MQTT](http://mqtt.org).\n\nMsgFlo lets you build robust polyglot FBP systems spanning multiple computers/devices.\nA node can be implemented in any language, to reuse existing code, libraries and developer know-how.\n\nIn FBP each component is a black-box that processes and produces data,\nwithout knowledge about where the input data comes from, or where the output data goes.\nThis ensures that a service is easy to change, and facilitates automated testing.\n\nMsgFlo is designed to enable partial and gradual integration into existing systems;\nby using standard broker/transports, not placing restrictions on message payloads,\nallowing to use existing queue names, and integrating non-MsgFlo nodes seamlessly.\n\n## Status\n\n**In Production**\n\n* Used in production at [TheGrid](https://thegrid.io) website builder, with **AMQP**/RabbitMQ. 20 roles, 1'000'000 jobs/weekly+\n* Used in production in [imgflo image processing server](https://github.com/jonnor/imgflo-server). 4 roles, 200'000 jobs/weekly+\n* Used for IoT networks at hackerspaces [c-base](https://github.com/c-base/c-flo)\nand [Bitraf](https://github.com/bitraf/bitraf-iot), using **MQTT**/Mosquitto.\n\nClient support\n\n* [msgflo-nodejs](./src/participant.coffee) makes it easy to make [Node.js](http://nodejs.org/) participants in **JavaScript**/**CoffeeScript**\n* [noflo-runtime-msgflo](https://github.com/noflo/noflo-runtime-msgflo)\nmakes it super easy to use [NoFlo](http://noflojs.org) in the participants\n* Basic support for **C++** participants with [msgflo-cpp](https://github.com/msgflo/msgflo-cpp) and [MicroFlo](https://github.com/microflo/microflo)\n* Basic support for **Python** participants with [msgflo-python](https://github.com/msgflo/msgflo-python)\n* Basic support for **browser** participants with [msgflo-browser](https://github.com/msgflo/msgflo-browser)\n* Basic support for **Arduino** participants with [msgflo-arduino](https://github.com/msgflo/msgflo-arduino)\n* Experimental support for **Rust** participants with [msgflo-rust](https://github.com/msgflo/msgflo-rust)\n\nTooling\n\n* `msgflo` executable implements the [FBP runtime protocol](https://flowbased.github.io/fbp-protocol).\n* Initial support for automated testing using [fbp-spec](https://github.com/flowbased/fbp-spec)\n* Experimental support for visually building networks using [Flowhub](https://flowhub.io/)\n* [guv](http://github.com/the-grid/guv) provides autoscaling of workers when using Heroku/AMQP.\n\n## Licence\n\nMIT, see [./LICENSE](./LICENSE)\n\n## Documentation\n\nPlease refer to \u003chttps://msgflo.org\u003e\n\n## Support\n[![Flowhub logo](https://flowhub.io/assets/banner-github.png)](https://flowhub.io)\n\nMsgFlo is a part of [Flowhub](https://flowhub.io), a platform for building robust [IoT systems](https://flowhub.io/iot) and web services.\u003cbr\u003e\nWe offer an [Integrated Development Environment](https://app.flowhub.io) and [consulting services](https://flowhub.io/consulting).\n\n## Debugging\n\nThe msgflo executable, as well as the transport/participant library\nuses the [debug NPM module](https://www.npmjs.com/package/debug).\nYou can enable (all) logging using:\n\n    export DEBUG=msgflo*\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsgflo%2Fmsgflo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsgflo%2Fmsgflo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsgflo%2Fmsgflo/lists"}