Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extensibility, deployment and distribution, process connections #324

Open
ERnsTL opened this issue Apr 18, 2024 · 0 comments
Open

Extensibility, deployment and distribution, process connections #324

ERnsTL opened this issue Apr 18, 2024 · 0 comments

Comments

@ERnsTL
Copy link
Owner

ERnsTL commented Apr 18, 2024

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
  • 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant