Giter VIP home page Giter VIP logo

node-red-runner's Introduction

Node-Red-Runner

Status

This is still a Work-In-Progress, as such any APIs or files are highly likely to be modified at anytime.

HTTP-IN - RESPONSE is currently brokken because of the use of hyper-express.

Goals

The goal of this repository is to provide a fast and lightweight implementation of node-red-test-helper and node-red runtime.

To achieve this goal, here are the main differences :

  1. This is not Node-Red, and the goal is not to be identical to it, as such we drop everything that is UI related, instead this aims to provide a Read-Only execution context
  2. This repository is recent and does not have to bear with years of technical debts, recent nodejs APIs are used.
  3. Fancy things such as "not loading all nodes" into the runtime are done to reduce memory usage and startup time, at the cost of risking some incompatibilities.
  4. Events in the runtime are greatly modified, there is no plan here to have things such as hooks for whenever messages are being handled, we want to keep the flow execution simple, external tools are to be used for profiling / debuging.

Some additionnal optimisation are planned like the usage of "compiled" node.send functions, simplified context management ...

Some numbers

As of now (2024/02/23), a small flow with mostly only node-red nodes perform better in several metrics :

  1. Startup time is slightly improved
  2. Memory consumption is improved in the case of small flows (NR uses around ~50-75MB whereas this use only ~25-30MB)
  3. CPU usage overhead is reduced as well due to the simplification of the runtime

node-red-runner's People

Contributors

fadoli avatar

Stargazers

BarbareCode avatar  avatar

Watchers

 avatar  avatar

node-red-runner's Issues

[Runtime] Optimise node.send function

As of right now node.send dynamicly get nodes from within the runtime each times it sends a message, whereas it could be pre-backed because this runtime is read-only.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.