All Projects → noflo → Noflo

noflo / Noflo

Licence: mit
Flow-based programming for JavaScript

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Noflo

flowd
An inter-language runtime for flow-based programming (FBP)
Stars: ✭ 18 (-99.44%)
Mutual labels:  fbp, flow-based-programming
noflo-assembly
Industrial approach to writing NoFlo applications
Stars: ✭ 17 (-99.47%)
Mutual labels:  fbp, noflo
dataflow-noflo
DEPRECATED prototype. To see the current work:
Stars: ✭ 54 (-98.31%)
Mutual labels:  noflo
Blackprint
A general purpose visual programming. This is the main repository for Blackprint that contains source code of cable, node, and container sketch for visualization.
Stars: ✭ 68 (-97.88%)
Mutual labels:  flow-based-programming
noflo-image
Image processing components for NoFlo.
Stars: ✭ 14 (-99.56%)
Mutual labels:  noflo
hotsub
Command line tool to run batch jobs concurrently with ETL framework on AWS or other cloud computing resources
Stars: ✭ 29 (-99.09%)
Mutual labels:  etl-framework
polymer-noflo
Polymer Web Components wrapper for NoFlo
Stars: ✭ 12 (-99.63%)
Mutual labels:  noflo
vite-vue3-lowcode
vue3.x + vite2.x + vant + element-plus H5移动端低代码平台 lowcode 可视化拖拽 可视化编辑器 visual editor 类似易企秀的H5制作、建站工具、可视化搭建工具
Stars: ✭ 1,309 (-59.12%)
Mutual labels:  nocode
human-lambdas
Open Source Human in the Loop platform for anyone to run their own private Mechanical Turk.
Stars: ✭ 24 (-99.25%)
Mutual labels:  nocode
webflow-nft-components
Connect web3 to Webflow without coding skills
Stars: ✭ 69 (-97.85%)
Mutual labels:  nocode
dspatch
The Refreshingly Simple Cross-Platform C++ Dataflow / Pipelining / Stream Processing / Reactive Programming Framework
Stars: ✭ 124 (-96.13%)
Mutual labels:  flow-based-programming
noflo-react
Facebook React components for NoFlo
Stars: ✭ 20 (-99.38%)
Mutual labels:  noflo
cocoon-demo
Cocoon – a flow-based workflow automation, data mining and visual analytics tool.
Stars: ✭ 19 (-99.41%)
Mutual labels:  flow-based-programming
ETL-Starter-Kit
📁 Extract, Transform, Load (ETL) 👷 refers to a process in database usage and especially in data warehousing. This repository contains a starter kit featuring ETL related work.
Stars: ✭ 21 (-99.34%)
Mutual labels:  etl-framework
nodify
High performance and modular controls for node-based editors designed for data-binding and MVVM.
Stars: ✭ 282 (-91.19%)
Mutual labels:  flow-based-programming
redis-connect-dist
Real-Time Event Streaming & Change Data Capture
Stars: ✭ 21 (-99.34%)
Mutual labels:  etl-framework
plasmic
Visual page builder and web design tool for any website or web app tech stack
Stars: ✭ 1,475 (-53.94%)
Mutual labels:  nocode
qwery
A SQL-like language for performing ETL transformations.
Stars: ✭ 28 (-99.13%)
Mutual labels:  etl-framework
Budibase
Budibase is an open-source low-code platform for creating internal apps in minutes. Supports PostgreSQL, MySQL, MSSQL, MongoDB, Rest API, Docker, K8s 🚀
Stars: ✭ 8,071 (+152.06%)
Mutual labels:  nocode
Pythonocc-nodes-for-Ryven
Pythonocc nodes for Ryven
Stars: ✭ 14 (-99.56%)
Mutual labels:  flow-based-programming

NoFlo: Flow-based programming for JavaScript

NoFlo is an implementation of flow-based programming for JavaScript running on both Node.js and the browser. From WikiPedia:

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.

Developers used to the Unix philosophy should be immediately familiar with FBP:

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.

It also fits well in Alan Kay's original idea of object-oriented programming:

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).

NoFlo components can be written in any language that transpiles down to JavaScript, including ES6. The system is heavily inspired by J. Paul Morrison's book Flow-Based Programming.

Read more at https://noflojs.org/.

Suitability

NoFlo 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 and build tools, to coordinating events inside GUI applications, driving robots, or building Internet-connected art installations.

Tools and ecosystem

NoFlo itself is just a library for implementing flow-based programs in JavaScript. There is an ecosystem of tools around NoFlo and the fbp protocol that make it more powerful. Here are some of them:

  • Flowhub -- browser-based visual programming IDE for NoFlo and other flow-based systems
  • noflo-nodejs -- command-line interface for running NoFlo programs on Node.js
  • noflo-browser-app -- template for building NoFlo programs for the web
  • noflo-assembly -- industrial approach for designing NoFlo programs
  • fbp-spec -- data-driven tests for NoFlo and other FBP environments
  • flowtrace -- tool for retroactive debugging of NoFlo programs. Supports visual replay with Flowhub

See also the list of reusable NoFlo modules on NPM.

Requirements and installing

NoFlo is available for Node.js via NPM, so you can install it with:

$ npm install noflo --save

You can make a browser build of NoFlo using webpack. For webpack builds, you need configure the component loader statically with noflo-component-loader. For projects using Grunt, grunt-noflo-browser plugin makes this easy.

Installing from Git

NoFlo requires a reasonably recent version of Node.js, and some npm packages. Ensure that you have NoFlo checked out from Git, and all NPM dependencies installed. Build NoFlo with:

$ npm run build

Then you can install everything needed by a simple:

$ npm link

NoFlo is available from GitHub under the MIT license.

Changes

Please refer to the Release Notes and the CHANGES.md document.

Usage

Please refer to http://noflojs.org/documentation/. For visual programming with NoFlo, see https://docs.flowhub.io/.

Development

NoFlo development happens on GitHub. Just fork the main repository, make modifications and send a pull request.

We have an extensive suite of tests available for NoFlo. Run them with:

$ npm run build
$ npm test

Platform-specific tests

By default, the tests are run for both Node.js and the browser. You can also run only the tests for a particular target platform:

$ npm run test:node

or:

$ npm run test:browser

Discussion

There is a #noflo channel on the Flow-Based Programming Slack, and questions can be posted with the noflo tag on Stack Overflow. See http://noflojs.org/support/ for other ways to get in touch.

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].