diff --git a/no-deps/pom.xml b/no-deps/pom.xml
new file mode 100644
index 000000000..39816dd46
--- /dev/null
+++ b/no-deps/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+
+ io.smallrye.reactive
+ mutiny-project
+ 999-SNAPSHOT
+
+
+ mutiny-no-deps
+ SmallRye Mutiny - Shaded library
+ Variant of Mutiny with shaded dependencies
+
+
+ true
+
+
+
+
+ io.smallrye.reactive
+ mutiny
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ ${maven-shade-plugin.version}
+
+ true
+ true
+
+
+ *:*
+
+ module-info.class
+ META-INF/jandex.idx
+ META-INF/MANIFEST.MF
+
+
+
+ org.jctools:jctools-core
+
+ org/jctools/counters/**
+ org/jctools/maps/**
+ org/jctools/queues/atomic/**
+
+
+
+
+
+
+
+
+
+
+
+ org.jctools
+ io.smallrye.mutiny.shaded.org.jctools
+
+
+ io.smallrye.common
+ io.smallrye.mutiny.shaded.io.smallrye.common
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
+
+ io.smallrye
+ jandex-maven-plugin
+
+ ${project.build.directory}/${project.build.finalName}.jar
+
+ io/smallrye/mutiny/**/*.class
+
+
+ io/smallrye/mutiny/shaded/**/*.class
+
+
+
+
+ package
+
+ jandex-jar
+
+
+
+
+
+ org.cyclonedx
+ cyclonedx-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+ ${maven-failsafe-plugin.version}
+
+
+
+ integration-test
+ verify
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/no-deps/src/main/java/io/smallrye/mutiny/nodeps/Empty.java b/no-deps/src/main/java/io/smallrye/mutiny/nodeps/Empty.java
new file mode 100644
index 000000000..0966c32e8
--- /dev/null
+++ b/no-deps/src/main/java/io/smallrye/mutiny/nodeps/Empty.java
@@ -0,0 +1,8 @@
+package io.smallrye.mutiny.nodeps;
+
+/**
+ * This is used as a placeholder to force the maven-javadoc-plugin to create a javadoc jar.
+ * Yes, you read it right :-)
+ */
+public interface Empty {
+}
diff --git a/no-deps/src/test/java/io/smallrye/mutiny/nodeps/ShadingIT.java b/no-deps/src/test/java/io/smallrye/mutiny/nodeps/ShadingIT.java
new file mode 100644
index 000000000..dc27544bd
--- /dev/null
+++ b/no-deps/src/test/java/io/smallrye/mutiny/nodeps/ShadingIT.java
@@ -0,0 +1,64 @@
+package io.smallrye.mutiny.nodeps;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+import java.time.Duration;
+import java.util.List;
+import java.util.Queue;
+
+import org.junit.jupiter.api.Test;
+
+import io.smallrye.mutiny.Multi;
+import io.smallrye.mutiny.helpers.queues.Queues;
+import io.smallrye.mutiny.subscription.BackPressureStrategy;
+
+public class ShadingIT {
+
+ @Test
+ public void check_shaded_classes() throws ClassNotFoundException {
+ Class.forName("io.smallrye.mutiny.shaded.org.jctools.queues.BaseLinkedQueue");
+ Class.forName("io.smallrye.mutiny.shaded.org.jctools.queues.unpadded.BaseLinkedUnpaddedQueue");
+ Class.forName("io.smallrye.mutiny.shaded.io.smallrye.common.annotation.CheckReturnValue");
+ }
+
+ @Test
+ public void mpsc_queue_factory() {
+ Queue queue = Queues.createMpscArrayQueue(256);
+
+ queue.add("foo");
+ queue.add("bar");
+ assertEquals("foo", queue.poll());
+ assertEquals("bar", queue.poll());
+ assertNull(queue.poll());
+
+ assertTrue(queue.getClass().getCanonicalName().contains("shaded"));
+ }
+
+ @Test
+ public void spsc_queue_factory() {
+ Queue queue = Queues.createSpscArrayQueue(256);
+
+ queue.add("foo");
+ queue.add("bar");
+ assertEquals("foo", queue.poll());
+ assertEquals("bar", queue.poll());
+ assertNull(queue.poll());
+
+ assertTrue(queue.getClass().getCanonicalName().contains("shaded"));
+ }
+
+ @Test
+ public void multi_emitter() {
+ Multi multi = Multi.createFrom().emitter(emitter -> {
+ for (int i = 0; i < 100; i++) {
+ emitter.emit(i);
+ }
+ emitter.complete();
+ }, BackPressureStrategy.BUFFER);
+
+ List suite = multi.collect().asList().await().atMost(Duration.ofSeconds(5));
+ assertEquals(100, suite.size());
+ assertEquals(0, suite.get(0));
+ assertEquals(99, suite.get(99));
+ }
+}
diff --git a/pom.xml b/pom.xml
index 2e55b7956..ce4625fff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -74,6 +74,7 @@
bom
math
workshop-examples
+ no-deps
@@ -124,6 +125,8 @@
1.1.0
1.12.0
2.8.0
+ 3.5.3
+ 3.2.5