A set of tools which simplify building cross-platform desktop apps with Python, JavaScript, HTML & CSS.
Project description
aiodesktop
A set of tools which simplify building cross-platform desktop apps with Python, JavaScript, HTML & CSS.
Features
In contrast to typical desktop GUI frameworks such as tkinter, wxPython, PyQt or Kivy:
- does not define own widgets/layout system (Kivy, Qt, wx), simply use a browser as a platform which already provides those things
- reuse time-saving libraries like React, Bootstrap or Highcharts
- reuse technologies like WebRTC, WebGL, WebAssembly
- access platform features such as cameras, geolocation and others
- your app is client-server and cross-platform by design, different devices may use it simultaneously
Compared to existing alternatives such as Eel, async-eel and guy:
- runs on asyncio instead of threads or gevent greenlets
- highly customizable aiohttp server
- no global state / singleton API
Install
Install from pypi with pip
:
pip install aiodesktop
Hello, World!
import aiodesktop class Server(aiodesktop.Server): async def on_startup(self): aiodesktop.launch_chrome(self.start_uri) # Use `expose` decorator to mark method as visible from JS @aiodesktop.expose async def get_string(self): # Use `await self.js.xxx()` to call JS functions from Python return 'Hello, ' + await self.js.getWorld() bundle = aiodesktop.Bundle() server = Server( bundle=bundle, init_js_function='onConnect', index_html='''<html><body><script> async function onConnect(server) { // Exposing JS function to python server.expose({ async getWorld() { return 'World!' } }); // Use `await server.py.xxx()` to call Python methods from JS document.body.innerHTML += await server.py.get_string(); }; </script></body></html>''', ) server.run()
See example/ for a slightly more complicated app with:
- static files
- pyinstaller executable
- JS & webpack
- https
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aiodesktop-0.1.3.tar.gz
(15.0 kB
view hashes)
Built Distribution
aiodesktop-0.1.3-py3-none-any.whl
(16.4 kB
view hashes)
Close
Hashes for aiodesktop-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92811ab960cf6cdefd4a0c5a051a76734a436051568257272acefe4f1f9f197a |
|
MD5 | b6bfb31df0c6149241259f19f3afc2ca |
|
BLAKE2-256 | 97c3b40e0bc30b743f9f44670c5c2438dcc428c12ce1c370a5ba017e4d2e1f41 |