smallrye / smallrye-mutiny

An Intuitive Event-Driven Reactive Programming Library for Java
https://smallrye.io/smallrye-mutiny
Apache License 2.0
779 stars 124 forks source link

feat: produce a no-dependencies shaded Mutiny jar #1613

Open jponge opened 1 month ago

jponge commented 1 month ago

Ref: #1577

jponge commented 1 month ago

This shades and relocates JCTools and Smallrye Common Annotations. The JCTools .atomic. queue variants are removed as well as counters and maps.

On the sizes front the benefit isn't spectacular:

864K    implementation/target/mutiny-999-SNAPSHOT.jar
8.0K    /Users/jponge/.m2/repository/io/smallrye/common/smallrye-common-annotation/2.4.0/smallrye-common-annotation-2.4.0.jar
408K    /Users/jponge/.m2/repository/org/jctools/jctools-core/4.0.3/jctools-core-4.0.3.jar

1.1M    no-deps/target/mutiny-no-deps-999-SNAPSHOT.jar
jponge commented 1 month ago

I did a more agressive pruning:

972K    no-deps/target/mutiny-no-deps-999-SNAPSHOT.jar

The best we can do.

/cc @franz1981

cescoffier commented 1 month ago

So basically, we are taking 100K... Not great. However, the result is still less than the sum of the two jars.