<div dir="ltr"><div>Hi Andreas!<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Mar 22, 2022 at 9:49 AM Andreas Neumann <<a href="mailto:a.neumann@carto.net">a.neumann@carto.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-size:10pt;font-family:Verdana,Geneva,sans-serif"><br>Would any part of the current QGIS Desktop part be re-usable in a "web assembly" QGIS? Or would the GUI part have to be re-developed?
</div></blockquote><div><br></div><div>In theory, we could try to run QGIS Desktop as it is in WebAssembly environment in the browser, Qt generally supports that. There are many question marks though, among some I can think of:</div><div>- dealing with files / data sources - this would need many changes to accept the fact that we are not dealing with a local file system and that access to raw data over network will be generally much slower. Also persistence of data - you will probably want to have some server backend anyway to store the data.<br></div><div>- Qt Widgets-based apps can be run on WebAssembly, but I have a feeling that the performance would not be great, due to the way how the get rendered on screen (all work done on CPU) - I would expect that an optimized OpenGL / WebGL based GUI would have much better performance in browsers - probably based on Qt Quick module (like Input / QField)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="font-size:10pt;font-family:Verdana,Geneva,sans-serif"><p>I would also assume that access to local files would be very restricted - right? Network based resources (DB access and web services) would probably work fine?</p></div></blockquote><div>Indeed, access to local files from browser would not be possible at all - data would need to come from the server. Network based resources would work fine, but with various limitations - for example, you are normally not allowed to request resources from other servers unless the servers allow that [1], and you can't directly access services like PostgreSQL that are not HTTP servers (although of course this could be handled by tunneling through WebSockets, or using HTTP-based protocols like Postgrest).<br></div><div><br></div><div>Cheers</div><div>Martin<br></div><div><br></div><div>[1] <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS">https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS</a></div><div><br></div></div></div>