mbachry/exxo

How is it different from pex?

Closed this issue · 3 comments

What differentiates exxo from pex? It is not clear from the README.

I think:
pex need env of python ,like pypy or cpython
exxo is single file , and only depand on libc, like golang.

Thanks for putting it in such simple words. :) That's basically it. One big difference is also investment in zipapps - they are something like "shadow jars" in Java world. PEX and various other similar tool take the road of unpacking zip contents to a temporary location, while exxo tries to run as much as possible straight from zip using zipimport. Pure zipapp approach is not only cleaner and more modern but allows faster program startup.

The big con is of course the fact that there are so many zip unsafe packages out there (eg. Django). Luckily, I can use pyrun to patch cpython with various harmless hacks to make most popular zip unsafe packages work out of the box. I'm in progress of doing it and things look good so far. I hope that over time zip problems will get fixed in Python ecosystem and I'll be able to remove hacks.

How does this explanation look? I'd like to put something to README.

Looks good to me, thank you V. much!