issues
search
ERnsTL
/
flowd
An inter-language runtime for flow-based programming (FBP)
Other
24
stars
2
forks
source link
Extensibility, deployment and distribution, process connections
#324
Open
ERnsTL
opened
3 months ago
ERnsTL
commented
3 months ago
Problem:
Multiple processes are slow:
full process switches (not just green thread or native thread switch)
and have to communicate via kernel = ring switch and syscall ... super slow
but need better way to allow separate development of components and extensibility and the source-level built-in compilation is not the solution
also leads to LGPL license to apply to components
and thus to the custom-made and per-project components
not desired
Evaluate:
microVMs:
unikraft / kraftkit is fastest according to microVM benchmarks:
Rust examples:
https://github.com/unikraft/catalog/tree/main/examples
and they say "just communicate via TCP, it is so fast"
probably because of virtio or vmnet, which is basically shared memory between host and guest
Running in UEFI
example:
https://github.com/codyd51/uefirc
very bare metal, but not sure if tha TCP facilities on that level are made for performance
loading of rlib's which can be found in the target/ directory in every Rust project using Cargo.
does that exist?
Connections:
TCP (?)
named pipes: flowd-go uses that
shared memory: rtrb ringbuffer, currently in use
Problem:
Evaluate:
Connections: