diff --git a/.gitignore b/.gitignore
index dafb7b0..5b3d0a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,9 @@ cmake_install.cmake
# idea
.idea/
+
+.DS_Store
+*iml
+target/
+
+build/
diff --git a/java/pom.xml b/java/pom.xml
new file mode 100644
index 0000000..d1bfebf
--- /dev/null
+++ b/java/pom.xml
@@ -0,0 +1,40 @@
+
+
+ 4.0.0
+
+ org.restrpc
+ restrpc
+ 1.0-SNAPSHOT
+
+
+
+ commons-io
+ commons-io
+ 2.5
+
+
+ com.google.guava
+ guava
+ 29.0-jre
+
+
+ org.slf4j
+ slf4j-api
+ 1.7.21
+
+
+ org.testng
+ testng
+ 7.0.0
+
+
+
+
+
+ native_dependencies
+
+
+
+
diff --git a/java/src/main/java/org/restrpc/client/AsyncRpcFunction.java b/java/src/main/java/org/restrpc/client/AsyncRpcFunction.java
new file mode 100644
index 0000000..a771616
--- /dev/null
+++ b/java/src/main/java/org/restrpc/client/AsyncRpcFunction.java
@@ -0,0 +1,28 @@
+package org.restrpc.client;
+
+import java.util.concurrent.CompletableFuture;
+
+public interface AsyncRpcFunction {
+
+ CompletableFuture