{"repo":"a-scie/jump","free":true,"listed":false,"github":"https://github.com/a-scie/jump","clone":"git clone https://github.com/a-scie/jump.git","description":"A Self Contained Interpreted Executable Launcher","language":"Rust","stars":77,"topics":["rust","executable","cli","packaging-tool"],"license":"Apache-2.0","category":"cli-tools","readme_excerpt":"A scie-jump A Self Contained Interpreted Executable Launcher. The scie-jump is rooted in science, but loose pronunciation is encouraged. The pieces all fit together that way. More about that nce bit below. What is a scie-jump? A scie-jump is a dual-purpose native binary that can either create a scie (itself a native binary of a sort) or launch one. Best to start with two observations: 1. Executable binary formats for all major computer operating systems today accept arbitrary trailing content. ELF (Linux), Mach-O (MacOS) and PE32 (Windows) binaries all allow you to tack on extra data and the binaries still run. Try it! 2. Zip files allow arbitrary header content to be added and the zip still works. Try it! So if you write a binary that knows how zip works, you can concatenate a zip to that binary and do magic. This general idea is almost as old as the zip file format at least and has been put to use in one form or another in various ways. One prominent use of these properties that brought all this to my attention is in the setuptools implementation of Python console scripts for Windows. In that case, the console script executable is made up from the following sandwich: Since the sandwich is a Windows PE32 executable by dint of its launcher stub header, the launcher stub executes when the sandwich is run. It immediately searches for the shebang line in the middle of the sandwich. It then calculates the Python interpreter to use with the information in the shebang and finally r","default_branch":null,"files":null,"tree":[],"storefront":"/r/a-scie","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/a-scie/jump/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}