Hi Christopher,
I’ve worked in the past on an Scala on Android project, so have had the
“pleasure” of battling proguard for similar reasons.
In general I guess the “core stuff” needs to be kept, which would mostly be
the akka.actor and dungeon things.

AFAIR proguard is ale to understand references via “classOf” etc, so user
land actors should be fine. Typed actors also should be nicer to proguard.
The only things we’d need to specifically exclude from removal is things
that have classnames defined in configuration,
that’ll mostly e mailoxes, perhaps the remoting infra etc.

I guess it can be useful to have a config that is “known to work”, but I
don’t think it is realistic to fully know that “this will work for
everyone”, after all, you’re removing code.
If you want to provide the core set of excludes, that sounds useful. We in
the time are unlikely to have the time to maintain or help much with this
though.

-- 
Cheers,
Konrad 'ktoso <http://kto.so>' Malawski
Akka <http://akka.io/> @ Lightbend <http://lightbend.com/>

On February 3, 2018 at 13:31:35, Christopher Hunt (hunt...@gmail.com) wrote:

Hi everyone,

I’ve got a requirement to run services on machines with limited resources,
memory in particular, but also disk (disk == memory for my use case!) In
addition, I wish to reduce the attack surface area of a service by
eliminating code that isn’t used.

I’d therefore like to take a unikernal-style of approach to my services
which, of course, use Akka. Using Proguard on my service very quickly
revealed problems relating to Akka. From looking through past posts, it
seems that the use of Proguard has been a discussion relating to Android
(which also hasn’t helped me around the issues I’ve been having).

Would there be any interest in seeing Akka become more suitable for dead
code elimination, particularly with the advent of Akka Typed? (reflection
and dead code elimination are at odds with each other)

Having an official project declaration of what classes should be kept for
dead code elimination, and an integration build verifying this to a degree
is what I’m thinking. I’d be happy contribute a PR with a little help.

Cheers
C

-- 
>>>>>>>>>> Read the docs: http://akka.io/docs/
>>>>>>>>>> Check the FAQ:
http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user
---
You received this message because you are subscribed to the Google Groups
"Akka User List" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to