4 ms·
I saw "Python" and was going to comment a completely stand-alone* executable would be simpler, and then I scrolled and holy moly, there are a lot of features th
by aredox 1y ago
I saw "Python" and was going to comment a completely stand-alone* executable would be simpler, and then I scrolled and holy moly, there are a lot of features there! It would be quite some work to redo it in another lang.
*It already has no deps
Great job there. A nice tool you've made.
Edit: already adressed: https://github.com/9001/copyparty?tab=readme-ov-file#copypartyexe https://github.com/9001/copyparty?tab=readme-ov-file#copypar...
- 9029 1y agoI wonder if cosmopolitan libc[0] could be leveraged to create an actually portable executable™ without a rewrite, looks like someone has figured out compiling python 3.11.4 with it[1] [0] https://github.com/jart/cosmopolitan https://github.com/jart/cosmopolitan [1] https://ahgamut.github.io/2021/07/13/ape-python/ https://ahgamut.github.io/2021/07/13/ape-python/
- leobuskin 1y agoI have a small/insane project of mine, I wrote a compiler for Python (strict and static subset only) to WebAssembly (bc-to-bc approach, 1:1 CPython compat due to walking internals), than I do wasm2c to sandbox it + pledge and compiling with cosmopolitan into a miniature standalone thing (fast as hell). Just because you have zero dependencies and it's a pure Python and properly typed, lemme try next weekend as PoC. No promises, but this message clicked in my heart
- noman-land 1y ago<subscribe>
- sull 1y agoon it
- collinmanderson 1y ago> It already has no deps Yes when I heard it was python I immediately checked the dependencies expecting a ginormous list and found basically nothing. Incredibly impressive, just a few "stolen" libs here: https://github.com/9001/copyparty/tree/hovudstraum/copyparty/stolen https://github.com/9001/copyparty/tree/hovudstraum/copyparty... Worth scrolling through util.py to see lots of hand-implemented code: MultipartParser, read_header(), read_socket_chunked(), html_escape(), atomic_move(), killtree ("still racy but i tried"), termsize(), etc https://github.com/9001/copyparty/blob/hovudstraum/copyparty/util.py https://github.com/9001/copyparty/blob/hovudstraum/copyparty... 6k loc for http server/client handling transferring files, rss feed, etc. See `def run(self)` for main request parsing. https://github.com/9001/copyparty/blob/hovudstraum/copyparty/httpcli.py https://github.com/9001/copyparty/blob/hovudstraum/copyparty...