Do you have any idea if performance is increased on a Streamlit desktop app? The only major drawback for using Streamlit for me personally is that it can’t display things quickly like PyQT might be able to.
Does the “performance” here means the frame rate?
If so, I think the answer is no, same as the answer at the linked thread. Even with stlite, both the server and the frontend app are the same to original Streamlit, so the situation does not change.
No, there is already Windows and Linux support, though personally I have not tested it on my local env.
As written in the README, this desktop app bundler is just using Electron and electron-builder that can create executables for Windows, macOS, and Linux.
Hi, Thank you for sharing. How to manage virtual environnement with Electron app please ?
I’m running on windows 11… I’m also interrested on linux @whitphx
@NotAfk Although I’m not sure about what you actually want,
with stlite, there is not virtual environment concept and we don’t need to consider about it anyway.
On stite (Pyodide), the Python runtime is sandboxed in the web browser’s JS environment and created every time the app launches.
Hi!
Thanks for sharing this awesome app!
Do these electron builds remain offline for the end user? Like - Can they use the Electron-built streamlit app with no internet connection and with no connection to a server on my end? If this is the case, you’ve solved a half-year struggle!
@whitphx wow, thanks for creating and sharing this.
I really hope to see further development, I don’t think native streamlit apps are part of the current roadmap.
Is it possible to change the python version ? Or is this utterly dependent on Pyodide and pure Python wheels for 3.10
Thank you for taking the time to create the app bundle.
With your instructions, I comfortably bundled my first Streamlit desktop app.
I am currently trying to persist an offline database - in my case a json file - and am following some instructions I found online: Stackoverflow Question.
The first step is to add an “extraResource” key to the package.json file and have the value be the resource location once bundled.
The next instruction is to add the following code into what is likely the main.js file (found in the “build / electron” directory) so that you can potentially reference the resource from within app once bundled.
I’m not much of a JS guy, and am wondering if you have any advise or experience setting up an offline database for an electron app? I’ve thought about adding the above code in to the main.js file but cannot logically understand where it would go.
It should be noted that I have managed to push the database file into the dist folder with the “npm run dist” command, but I am unable to locate it from within the bundled app.
Hi, thank you for trying it out.
Unfortunately it does not support persisting data or file changes now.
I have managed to push the database file into the dist folder with the “npm run dist” command, but I am unable to locate it from within the bundled app.
So this is an expected behavior that only the contents in the streamlit_app directory are loaded to the app, and changes on these files are never persisted.
I created an issue about this, so please track it:
Hi @whitphx this is awesome and I love the idea.
But unfortunately it’s not working good for me because there is a version incompatibility between Streamlit and Altair versions. Could someone help me?