Actualmente estamos trabajando en un proyecto que intenta migrar una aplicación de escritorio a Blazor para que sea multiplataforma. Nos gustaría usar bibliotecas como OpenCV, OpenTK y WebAudio.
Creemos que podemos compilar cada una de estas bibliotecas en WASM e, ingenuamente, pensamos que habríamos podido usar estas bibliotecas compiladas en una aplicación Blazor. Sin embargo, hasta ahora no hemos podido hacer esto, experimentando errores/problemas similares a estos... Ejemplo 1
Ejemplo 2
Hasta ahora, hemos tenido éxito si, en cambio, utilizamos la interoperabilidad JS para OpenCV (por ejemplo, usando openCV.js, que creo que si OpenCV se compilara en WASM con enlaces JS) y para OpenGL . Esta no es una buena solución debido al impacto en el rendimiento que impone, especialmente si comenzamos a pasar argumentos grandes, que deben serializarse y luego deserializarse.
Mi pregunta
¿Cómo puedo usar paquetes escritos en C++, C, Rust... en Blazor sin tener que pasar por la interoperabilidad de JS? Si lo hay, ¿podría indicarme un ejemplo de trabajo mínimo, o tal vez alguna documentación? No estamos en contra del uso de JS para otras partes del sitio web, pero usarlo como pegamento para unir los fragmentos de código para los que el rendimiento es más importante no es una opción viable para nosotros.
Creo que algo similar a esto es lo que necesitamos, pero no puedo encontrar ningún ejemplo de este uso.
Nota
Si es posible combinar todos estos idiomas y bibliotecas en un gran ejecutable WASM y ejecutarlo como un sitio web, pero sin usar Blazor, entonces esa también es una opción viable. Por favor, hágamelo saber si esa es una posibilidad.