eclipse-ecal / ecal

📦 eCAL - enhanced Communication Abstraction Layer. A high performance publish-subscribe, client-server cross-plattform middleware.
https://ecal.io
Apache License 2.0
841 stars 173 forks source link

Ftxui (console) based eCAL Mon CLI (htop for eCAL!) #494

Closed FlorianReimold closed 2 years ago

FlorianReimold commented 2 years ago

Is your feature request related to a problem? Please describe.

At the moment, have 2 eCAL Mon applications:

  1. The eCAL Mon GUI, which is feature rich and easy to use

  2. The eCAL Mon CLI, which has basically no features (at least it feels like that 😉), cannot be used from scripts (due to its blocking behaviour) and just overall feels unfinished and not well thought through.

So the latter one is the one we should improve. Especially if we more and more target headless machines and embedded systems, there really is a need for a proper eCAL monitor that can directly run on those systems.

Describe the solution you'd like

An eCAL Monitor that has 2 main modes:

brakmic-aleksandar commented 2 years ago

I would love to work on this issue! :)

bsirang commented 2 years ago

I like this!

brakmic-aleksandar commented 2 years ago

@Kerstin-Keller proposed to me that we could use ftxui for this task instead of ncurses. This seems like much better solution to me (especially if we are going to support Windows), this library supports Linux/macOS/Windows and is much higher level than ncurses/pdcurses which should make code much simpler, also its quite popular. I'll write sample app to investigate it a bit further.

FlorianReimold commented 2 years ago

I am open to anything, ncurses just happens to be the more popular library. The curses API has originated in the 80th though, so you probably can do much better nowadays.

brakmic-aleksandar commented 2 years ago

I've written small top clone which lists processes and shows RAM usage to test ftxui, so far I really like it, it's crossplatform, easily extensible, contains pretty much all components (such as tables, graphs etc.) we need, and if we need something specific it shouldn't be that hard to implement, it supports mouse input and (In my opinion) functional design of library is very elegant and intuitive to work with.

ArthurSonzogni commented 2 years ago

@brakmic-aleksandar I was spying on who is using FTXUI and how => Happy you like it!

If in the future, you need something to be developed or fixed, please don't hesitate to ask. There are WebAssembly examples that are worth looking to discover the existing elements. https://arthursonzogni.com/FTXUI/examples/?file=component/homescreen

FlorianReimold commented 2 years ago

It's merged!