Comments (5)
Or more specifically, where is zip used/distributed, if at all?
It isn't - it's just a test I did to just include the exe in a zip file or a 7z vs one file (made with --onefile
) that extracts to a temp directory. I found it interesting that zip was that much more in testing though haha
from vanilla-installer-python.
This is unfortunately just the state of Python compiling. We have solutions that bundle the entire Python interpreter (PyInstaller
, cx_Freeze
, etc), or compiling it to C(++) and then compiling it to DLLs that way (nuitka
). Both take up quite a lot of space; I think what's most at fault is the fact that we have to bundle Qt/PySide. In theory I could delete all the Qt DLLs that we don't use however I'm not sure how much that would help and if it would break anything.
The only other solution is a rewrite in another language that has a native compiler with a better solution - I think I was going to try to rewrite this in Rust to learn it and basically for fun; however if it ever is any better then we could consider using it. That's not in the scope of this for now though; not to mention I'm a terrible UI designer lol
from vanilla-installer-python.
We have solutions that bundle the entire Python interpreter (PyInstaller, cx_Freeze, etc), or compiling it to C(++) and then compiling it to DLLs that way (nuitka). Both take up quite a lot of space; I think what's most at fault is the fact that we have to bundle Qt/PySide. In theory I could delete all the Qt DLLs that we don't use
Do test these options then.
Don't the style effects play any role in this? As in, using a system font/background and icons as normal buttons maybe could reduce the size.
from vanilla-installer-python.
Done some experimenting here - it turns out that when compiling we were including the PySide6.examples
module, which is not used (as you could guess). Removing that brings it down to 31MB as a .zip
, 21MB as a .7z
, and 23MB as a onefile compressed exe. To say the least, that's progress.
from vanilla-installer-python.
Could be even smaller but I'd say it is okay for the first release.
Does zip really have to be 31 MB or can it be compressed more? Or more specifically, where is zip used/distributed, if at all?
from vanilla-installer-python.
Related Issues (20)
- [Feature Request]: Pojav Launcher support HOT 10
- [Feature Request]: Translation support HOT 2
- [Bug]: Font won't apply immediately HOT 5
- [Bug]: GUI takes too long to open HOT 2
- [Bug]: Minecraft won't launch (1.19.2/1.16.5) HOT 5
- [Bug]: Blank terminal window pops up on install HOT 7
- [Bug]: Install button can be clicked during the install HOT 1
- [Feature Request]: Rename/simplify "data" folder HOT 4
- [Feature Request]: Separate instance HOT 6
- [Bug]: Long versions are unreadable HOT 2
- [Bug]: FO won't install (1.19.3) HOT 6
- [Feature Request]: Prevent "Modpack is already up to date!" HOT 6
- [Bug]: Logs save to the parent directory
- [Feature Request]: Warn on downgrades HOT 3
- [Feature Request]: Allow advanced cmdlines in installer. HOT 1
- [Bug]: Separate instance Fabric installation
- [Feature Request]: Explanatory tooltip next to versions HOT 2
- [Feature Request]: Scripts for *nix HOT 1
- [Feature Request]: macOS 13 support for Vanilla Installer itself HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vanilla-installer-python.