-
-
Notifications
You must be signed in to change notification settings - Fork 260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document proguard rules #1210
Comments
The eawt stuff is obsolete now. |
So this is purely for purposes of minification, not obfuscation, right? What I mean is, vlcj is Open Source so there's no point to obfuscate the source code as such. Making a small bundle size is fair enough I suppose. |
Thanks for the super quick reply! Yes the main point is the bundle size. Secondary reason is performance gain. My jars (also open source) are about 157MB before shrinking and obfuscation, and about 78MB afterwards (I documented a bit of it here on this article). |
Just to clarify: we are using obfuscation, only because it further shrinks the bundle size and should improve performance of remaining code. I find without obfuscation enabled, my jars are about 12MB bigger. |
Sure, that's what I suspected. I am happy to add something to document this. But in the immediate term I need to think about a bit more because the upcoming version of vlcj has some more stuff that will need to be excluded. |
Adding docs would be great, thanks! On Android, libraries can publish proguard rules that are consumed automatically. Unfortunately, that hasn't hit the JVM world yet. |
is there any value just putting a proguard config file (or partial config file) in the main repo itself I wonder? |
I think putting in the repo (convention is META-INF/library-name.pro e.g. META-INF/vlcj.pro) would make sense. I think it would still need mentioned somewhere in the docs. On Android, those rules can be consumed automatically. On JVM, they need to be copy/pasted in manually. |
Hi,
When I use Proguard on my project (I'm using VLCJ in a Compose/Desktop JVM application), the discovery providers (which are loaded via Java SPI) are removed.
I think the following rules are needed:
The keep rule specified here https://www.guardsquare.com/manual/configuration/examples#native is also required. I think most Proguard setups have that, but might be good to mention.
The text was updated successfully, but these errors were encountered: