hoprd is implemented in Typescript and runs using Nodejs. The choice of Typescript and Nodejs was made to be as flexible as possible in the future in terms of running hopr on mobile devices, embedded devices or a web browser.
However, the platform choice can be problematic for system server software like hoprd because of the constraints of both Typescript and Nodejs.
In comes WebAssembly which has become a widely supported standard, can be run in web browsers and Nodejs alike. That also means software which can be compiled into WebAssembly can be integrated with existing Typescript/Nodejs software. This opens up the opportunity to use other programming languages which might lend itself more towards implementing concurrent system software while retaining the ability to run within web browsers.
Such an integration can be a step-by-step process where parts of hoprd are gradually implemented in some other language while still running on Nodejs. Only at the end the whole of hoprd could then be switched off Typescript and Nodejs if desired.
Thus, I would like to open up a discussion for suggestions of programming languages, including pros and cons of their use for hoprd.
The main requirement is the ability to target WebAssembly.
Here is a good list of options: I want to… - WebAssembly
For suggestions please include specific pros/cons so we can compare suggestions appropriately.
Thank you