{"id":19443772,"url":"https://github.com/aretecode/noflo-built","last_synced_at":"2025-07-05T00:04:13.375Z","repository":{"id":85930921,"uuid":"61854682","full_name":"aretecode/noflo-built","owner":"aretecode","description":"The built version of the latest noflo","archived":false,"fork":false,"pushed_at":"2016-07-10T23:51:00.000Z","size":293,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-05T00:04:13.209Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/aretecode.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-24T03:33:54.000Z","updated_at":"2016-06-24T03:37:33.000Z","dependencies_parsed_at":"2023-05-03T15:34:00.397Z","dependency_job_id":null,"html_url":"https://github.com/aretecode/noflo-built","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aretecode/noflo-built","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aretecode%2Fnoflo-built","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aretecode%2Fnoflo-built/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aretecode%2Fnoflo-built/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aretecode%2Fnoflo-built/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aretecode","download_url":"https://codeload.github.com/aretecode/noflo-built/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aretecode%2Fnoflo-built/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263636782,"owners_count":23492302,"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":[],"created_at":"2024-11-10T15:44:07.096Z","updated_at":"2025-07-05T00:04:13.355Z","avatar_url":"https://github.com/aretecode.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"NoFlo: Flow-based programming for JavaScript [![Build Status](https://secure.travis-ci.org/noflo/noflo.png?branch=master)](http://travis-ci.org/noflo/noflo) [![Build status](https://ci.appveyor.com/api/projects/status/k4jbqlpohq81pvny)](https://ci.appveyor.com/project/bergie/noflo)\n=========================================\n\nNoFlo is an implementation of [flow-based programming](http://en.wikipedia.org/wiki/Flow-based_programming) for JavaScript running on both Node.js and the browser. From WikiPedia:\n\n\u003e In computer science, flow-based programming (FBP) is a programming paradigm that defines applications as networks of \"black box\" processes, which exchange data across predefined connections by message passing, where the connections are specified externally to the processes. These black box processes can be reconnected endlessly to form different applications without having to be changed internally. FBP is thus naturally component-oriented.\n\nDevelopers used to the [Unix philosophy](http://en.wikipedia.org/wiki/Unix_philosophy) should be immediately familiar with FBP:\n\n\u003e This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.\n\nIt also fits well in Alan Kay's [original idea of object-oriented programming](http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en):\n\n\u003e I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages (so messaging came at the very beginning -- it took a while to see how to do messaging in a programming language efficiently enough to be useful).\n\nNoFlo has been written in [CoffeeScript](http://jashkenas.github.com/coffee-script) for simplicity. The system is heavily inspired by [J. Paul Morrison's](http://www.jpaulmorrison.com/) book [Flow-Based Programming](http://www.jpaulmorrison.com/fbp/#More). \n\nRead more at \u003chttp://noflojs.org/\u003e.\n\n## Suitability\n\nNoFlo is not a web framework or a UI toolkit. It is a way to coordinate and reorganize data flow in any JavaScript application. As such, it can be used for whatever purpose JavaScript can be used for. We know of NoFlo being used for anything from building [web servers](https://thegrid.io) and build tools, to coordinating events inside [GUI applications](https://flowhub.io), [driving](http://meemoo.org/blog/2015-01-14-turtle-power-to-the-people) [robots](http://bergie.iki.fi/blog/noflo-ardrone/), or building Internet-connected [art installations](http://bergie.iki.fi/blog/ingress-table/).\n\n## Tools and ecosystem\n\nNoFlo itself is just a library for implementing flow-based programs in JavaScript. There is an ecosystem of tools around NoFlo and the [fbp protocol](http://noflojs.org/documentation/protocol/) that make it more powerful. Here are some of them:\n\n* [Flowhub](https://flowhub.io) -- browser-based visual programming **IDE** for NoFlo and other flow-based systems\n* [noflo-nodejs](https://github.com/noflo/noflo-nodejs) -- command-line interface for running NoFlo programs on **Node.js**\n* [MsgFlo](https://github.com/msgflo/msgflo) -- for running NoFlo and other FBP runtimes as a **distributed system**\n* [fbp-spec](https://github.com/flowbased/fbp-spec) -- **data-driven tests** for NoFlo and other FBP environments\n* [flowtrace](https://github.com/flowbased/flowtrace) -- tool for **retroactive debugging** of NoFlo programs. Supports visual replay with Flowhub\n\nSee also the [list of reusable NoFlo modules on NPM](https://www.npmjs.com/browse/keyword/noflo).\n\n## Requirements and installing\n\nNoFlo is available for Node.js [via NPM](https://npmjs.org/package/noflo), so you can install it with:\n\n    $ npm install noflo --save\n\nYou can make a browser build of NoFlo using component.io. The [grunt-noflo-browser](https://github.com/noflo/grunt-noflo-browser) plugin makes this easy.\n\n### Installing from Git\n\nNoFlo requires a reasonably recent version of [Node.js](http://nodejs.org/), and some [npm](http://npmjs.org/) packages. Ensure you have the `grunt-cli` package installed (`grunt` command should be available on command line) and NoFlo checked out from Git. Build NoFlo with:\n\n    $ grunt build\n\nYou can also build NoFlo only for the desired target platform with either *grunt build:nodejs* or *grunt build:browser*.\n\nThen you can install everything needed by a simple:\n\n    $ npm link\n\nNoFlo is available from [GitHub](https://github.com/noflo/noflo) under the MIT license.\n\n## Changes\n\nPlease refer to the [Release Notes](https://github.com/noflo/noflo/releases) and the [CHANGES.md document](https://github.com/noflo/noflo/blob/master/CHANGES.md).\n\n## Usage\n\nPlease refer to \u003chttp://noflojs.org/documentation/\u003e. For visual programming with NoFlo, see \u003chttp://flowhub.io/documentation/\u003e.\n\n## Development\n\nNoFlo development happens on GitHub. Just fork the [main repository](https://github.com/noflo/noflo), make modifications and send a pull request.\n\nWe have an extensive suite of tests available for NoFlo. Run them with:\n\n    $ grunt test\n\nor:\n\n    $ npm test\n\n### Platform-specific tests\n\nBy default, the tests are run for both Node.js and the browser. You can also run only the tests for a particular target platform:\n\n    $ grunt test:nodejs\n\nor:\n\n    $ grunt test:browser\n\n### Running tests automatically\n\nThe build system used for NoFlo is also able to watch for changes in the filesystem and run the tests automatically when something changes. To start the watcher, run:\n\n    $ grunt watch\n\nTo quit thew watcher, just end the process with Ctrl-C.\n\n## Discussion\n\nThere is an IRC channel `#fbp` on FreeNode, and questions can be posted with the [`noflo` tag on Stack Overflow](http://stackoverflow.com/questions/tagged/noflo). See \u003chttp://noflojs.org/support/\u003e for other ways to get in touch.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faretecode%2Fnoflo-built","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faretecode%2Fnoflo-built","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faretecode%2Fnoflo-built/lists"}