diff --git a/pom.xml b/pom.xml
index c4ef13f..2f1e60f 100755
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
4.0.0
net.airvantage
- proxysocket-java
+ proxy-socket-java
1.0.0-SNAPSHOT
pom
@@ -16,11 +16,13 @@
5.10.3
+ 33.5.0-jre
proxy-socket-core
+ proxy-socket-guava
diff --git a/proxy-socket-core/pom.xml b/proxy-socket-core/pom.xml
index c4c601f..ccee5d6 100644
--- a/proxy-socket-core/pom.xml
+++ b/proxy-socket-core/pom.xml
@@ -5,7 +5,7 @@
4.0.0
net.airvantage
- proxysocket-java
+ proxy-socket-java
1.0.0-SNAPSHOT
proxy-socket-core
diff --git a/proxy-socket-guava/pom.xml b/proxy-socket-guava/pom.xml
new file mode 100644
index 0000000..ec11468
--- /dev/null
+++ b/proxy-socket-guava/pom.xml
@@ -0,0 +1,42 @@
+
+
+ 4.0.0
+
+ net.airvantage
+ proxy-socket-java
+ 1.0.0-SNAPSHOT
+
+ proxy-socket-guava
+ Proxy Protocol - Guava Cache
+ jar
+
+
+
+ net.airvantage
+ proxy-socket-core
+ ${project.version}
+
+
+ com.google.guava
+ guava
+ ${guava.version}
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit.version}
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ ${junit.version}
+ test
+
+
+
+
+
+
diff --git a/proxy-socket-guava/src/main/java/net/airvantage/proxysocket/guava/GuavaProxyAddressCache.java b/proxy-socket-guava/src/main/java/net/airvantage/proxysocket/guava/GuavaProxyAddressCache.java
new file mode 100644
index 0000000..b8f93c6
--- /dev/null
+++ b/proxy-socket-guava/src/main/java/net/airvantage/proxysocket/guava/GuavaProxyAddressCache.java
@@ -0,0 +1,43 @@
+package net.airvantage.proxysocket.guava;
+
+import net.airvantage.proxysocket.core.ProxyAddressCache;
+import com.google.common.cache.Cache;
+import com.google.common.cache.CacheBuilder;
+import java.net.InetSocketAddress;
+import java.time.Duration;
+
+public final class GuavaProxyAddressCache implements ProxyAddressCache {
+ private final Cache cache;
+
+ public GuavaProxyAddressCache(long maxSize, Duration ttl) {
+ CacheBuilder