Rust-Red: learnings from Erlang-Red

A recipe for creating Rust-Red

Learnings from creating Erlang-Red and how these could be applied to creating a Rust-Red. Rust-Red is a Rust backend for the Node-RED flow editor, to be able to create flow-based code visually in Rust.

The following is a list ordered by how I did this for Erlang-Red. There might be a better approach in re-implementing Node-RED for another programming language, this approach worked for me implementing Erlang-Red - your mileage will vary.

Steps

One final remark would be that using existing libraries to implement functionality is important. For many requirements there will be a library that implements said feature. Being able to stand on the shoulders of giants makes for a better view from the top.

Why Node-RED?

For me this question does not exist - I have been working with Node-RED for a long time and have come to understand its workings. I believe that Node-RED provides the best trade-off between granularity and features for a programmer visually developing flow-based code.

As I wrote, using Node-RED has a number of advantages:

I see Node-RED as providing a good user experience and user interface for presenting the ideas of flow based programming visually.

Usage?

I personally use Node-RED for my blogging software (this page is hosted on a Node-RED server), as an API backend for an application (FlowHub.org is implemented in Node-RED) and as a mind-map tool (I created this document in my mind map and then transferred it to my blogging tool - all via the export functionality of Node-RED).

My interesting is developing Erlang-Red and using Node-RED is communication amongst folks. Having worked in the IT industry for much of my life, and having been confronted with folks not understanding what I do, I was looking for a better representation of the code I create. This makes communicating with stakeholders simpler. Being able to convey understanding using pictures versus text has been clear since the thousand word picture.

Being able to design my flows in one “programming language” but having that flow code being executed in another “programming language” is another step. I doubt it will get anywhere near to that goal, Artificial Intelligence “seems” to provide the same functionality textually and far faster and today, not tomorrow.

One of the main consequences of the lack of understanding between techies who code the solution and folks who sell that solution is Artificial Intelligence - it is a search for understanding where communication has failed.

Postscriptum

This recipe was created while describing the start up phase of flows in Erlang-Red. That description provides more technical details of Erlang-Red. It highlighted for me the importance of a proper software architecture for such a comprehensive project.

Last updated: 2025-06-21T13:26:41.206Z

Comments powered by giscus

The author is available for Node-RED development and consultancy.