Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there an Open Source framework for building desktop apps that run in the browser? [closed]

I'm interested in starting an Open Source project that could be packaged as a desktop application for non-technical end users, but would run in the browser - one existing model would be Google Refine. I'm looking for an existing, Open-Source framework that would support this - not the UI portion, but the lower-level application framework, including:

  • Data persistence (preferably via some sort of ORM)
  • Desktop-based webserver (I'm assuming this would be necessary to support a browser-based UI)
  • Filesystem access
  • Security/sandboxing (e.g. to address the XSS/CSRF issues of running your own webserver)
  • Support for basic web app elements (e.g. URL handling, templating) or for another web app framework that could handle this
  • Packaging the project for one-click installation (i.e. the user should not need to have Python, node, or other technologies installed)

I'm hoping to find a framework that sets up a significant amount of this for me, the way that Django sets up web applications - not just a technology that would support writing this framework myself.

My ideal framework would be cross-platform and cross-browser, and would be written in either Python, Java, or Javascript (running on node.js or something similar). Does a framework like this exist?

like image 322
nrabinowitz Avatar asked Jan 19 '23 16:01

nrabinowitz


2 Answers

You should be able to build a desktop app that runs in the browser using web2py. Web2py requires no installation or configuration, has no dependencies, and includes a built-in web server and the SQLite RDBMS (as well as a database abstraction layer). The Windows and Mac binaries even include the Python interpreter, so no need to install Python (you can even run it off a thumb drive). You can pack your application with a web2py distribution, and your users will simply have to unzip it, click a single file to start it, and your app will launch in their browser. You can even distribute your applications as binaries, as explained here.

The documentation is excellent, and if you have any questions, there's a very helpful and responsive mailing list.

If you want to start playing with it, just download it, unzip it, and click the web2py.exe (Windows) or web2py.app (Mac) file -- that will launch the "welcome" (scaffolding) app in your browser. If there's something it's lacking that would be helpful for your use case, ask on the list -- if the change is easy and useful, it will probably get added.

like image 142
Anthony Avatar answered Jan 22 '23 07:01

Anthony


Take a look at PyJavascriptCore and the PyGTK Webkit implementation which will let you make an application in HTML, CSS, and Javascript. For the backend you can either use Python since with PyJavascriptCore you can call Javascript functions from Python and vice versa, or you can combine with a WSGI framework like Flask to do Ajax calls to the app's local server.

like image 40
Alexander Kiselev Avatar answered Jan 22 '23 05:01

Alexander Kiselev