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 details)
Built Distribution
File details
Details for the file aiodesktop-0.1.3.tar.gz
.
File metadata
- Download URL: aiodesktop-0.1.3.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.1.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35dd3b41762ef300c3b07a865d5c43f2adfb36c4484a9e9bc792d92f3611f8e2 |
|
MD5 | 6147829e340ca629f1816e488ee3e3dc |
|
BLAKE2b-256 | c0c9ae48412c708a4fdfd0b519e9fb55811558cf2a73c1bd56ab9e1b1edf625a |
File details
Details for the file aiodesktop-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: aiodesktop-0.1.3-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.1.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92811ab960cf6cdefd4a0c5a051a76734a436051568257272acefe4f1f9f197a |
|
MD5 | b6bfb31df0c6149241259f19f3afc2ca |
|
BLAKE2b-256 | 97c3b40e0bc30b743f9f44670c5c2438dcc428c12ce1c370a5ba017e4d2e1f41 |