Esky - keep frozen apps fresh
Esky is an auto-update framework for frozen Python applications. It provides a simple API through which apps can find, fetch and install updates, and a bootstrapping mechanism that keeps the app safe in the face of failed or partial updates. Updates can also be sent as differential patches.
Esky is currently capable of freezing apps with py2exe, py2app, cxfreeze and bbfreeze. Adding support for other freezer programs should be easy; patches will be gratefully accepted.
We are tested and running on Python 2.7, 3.3 and 3.4
- Cannot sign the bootstrap executable
- Doesn't work with windows resources
- Python2.6 support may be depreciated (as moving codebase to python3)
- Bbfreeze will be depreciated
The simplest way to install esky is
pip install esky
To install the latest development branch you can install directly from github with
git clone firstname.lastname@example.org:cloudmatrix/esky.git
pip install -e esky
To uninstall the development version do
python setup.py develop --uninstall
Freezing your app with esky requires small some modification to a setup.py file and then adding the Esky class to your program.
When you are ready just run
python setup.py bdist_esky
This will produce a zip file which can automatically update as long as the structure is kept in tact.
The tutorial will guide you through setting up and freezing with esky. (get the files by cloning)
We have an F.A.Q as well as Documentation in our wiki
Ryan has done a talk at Pycon to help you get started: Keep your frozen app fresh
There is also a wrapper for esky in the gui library wxpthon, see blog post
Pull updates from a http server or amazon s3 bucket (easily extendable)
Bootstrap Executable to prevent corruption in failed updates (can be compiled to ~1mb using Rpython)
Differential Patching (minor updates and fixes can be < 10kb)
py2exe, py2app, cxfreeze
Getting in Contact
- Questions about usage can be posted on stackoverflow.
- Bugs and problems can be posted at our github issue tracker.
- Chats and so on can be done through gitter.
Development / Contributing
We welcome all contributors. See the Contributing Guide
The above list isn't complete, some people seem to be missing or contribute in other ways.