Use C Code directly as Vuo Nodes

It would be great to use C or C++ plugins directly as VuoNodes. Currently we need to compile each, and while I understand why- I am aware that Vuo already has the ability to auto compile nodes (for example nodes that have generic port types are able to compile themselves on the fly).

This feature would be in addition to currently using compiled nodes as compiled nodes allows developers to sell closed nodes.

However if a developer wants to keep their code opensource, then it would make it easier to test and distribute if Vuo were to take the raw node.c or node.cpp source.

it would make it easier to test and distribute if Vuo were to take the raw node.c or node.cpp source

Agreed. I envision implementing Edit node C code in the Vuo Editor to work like that, so I’m merging these 2 feature requests.

Would we still need to build a node set for generic port types for node.c nodes?

@alexmitchellmus, we haven’t yet determined the scope of Edit node C code in the Vuo Editor have it do all the QT wrangling for the node, but there are several things beyond beyond very basic node editing to consider. Generic port types, as you said. Libraries. Custom types. Example compositions. Whatever “extras” are most important to you, you might want to mention on that feature request.

1 Like

@jstrecker I just thought it may be useful to have custom nodes that are implemented as c classes (natively without building) also be native (without bundling) as well. Is that possible? As I believe the only reason packaging node sets exists is due to trying to protect the node source? Which would not be important if you simply want to distribute your node as a node.c file.

Packaging of node sets exists so that Vuo knows where to look for additional resources beyond the compiled node class, such as source code for generic node classes, and types and libraries that are shared across multiple node classes in the node set.

(Packaging doesn’t offer any protection to the node source code. The .vuonode package file is just a zip file. Compiling doesn’t offer much protection either. The compiled file, which also has extension .vuonode, can be disassembled into the fairly readable LLVM instruction format.)

If Vuo could recognize C files placed in the Modules folder (as planned for Edit node C code in the Vuo Editor), then yes, for node classes that don’t need additional resources such as types and libraries, it would be possible to distribute just the C file.