General Info
Nodos is a very large developing platform, so we use several 3rd-party libraries and built some standards on top of them. These are important for developers that'll use C/C++ APIs of Nodos.
Flatbuffers
Our cross-process communication is based on Google's gRPC and flatbuffers. We represent nodes, pins and their data types with flatbuffers. So you should use flatbuffers to create your own data types. For this purpose, you're gonna use built-in flatbuffers types.
Built-in data types
Flatbuffers already has built-in types (such as float
, uint
etc), but we define the types below on top of them because they're used frequently by developers:
flatbuffers type | C++ type |
---|---|
float | float |
double | double |
ubyte | uint8_t |
ushort | uint16_t |
uint | uint32_t |
ulong | uint64_t |
byte | int8_t |
short | int16_t |
int | int32_t |
long | int64_t |
vec2 | {float x,y;} |
vec2d | {double x,y;} |
vec2i | {int x,y;} |
vec2u | {uint32_t x,y;} |
vec3 | {float x,y,z;} |
vec3d | {double x,y,z;} |
vec3i | {int x,y,z;} |
vec3u | {uint32_t x,y,z;} |
vec4 | {float x,y,z,w;} |
vec4d | {double x,y,z,w;} |
vec4i | {int x,y,z,w;} |
vec4u | {uint32_t x,y,z,w;} |
vec4u8 | {uint8_t x,y,z,w;} |
void | void |
StringList | {string name; vector<string> list;} |
There are many more built-in types but they're mostly built on top these with some enums so we recommend you to investigate it yourself in SDK/types/Builtins.fbs
file.