junixsocket
junixsocket is a Java/JNI library that allows the use of Unix Domain Sockets (AF_UNIX sockets) from Java.
Why it's cool
- junixsocket is a small, modular library. Install only what you need.
- In contrast to other implementations, junixsocket extends the Java Sockets API (
java.net.Socket
,java.net.SocketAddress
, etc.) - Supports RMI over AF_UNIX.
- Database support (connect to a local database server via Unix sockets and JDBC).
- MySQL (provides a custom AFUNIXDatabaseSocketFactory for Connector/J).
- PostgreSQL and others (provides a generic AFUNIXSocketFactory with a variety of configuration options).
- Supports peer credentials.
- Supports sending and receiving file descriptors.
- Supports the abstract namespace on Linux.
- Supports HTTP over unix socket (using NanoHTTPD)
- Supports Java 7*, 8, 9, 10, 11, 12, 13, 14, 15.
- Comes with pre-built native libraries for several operating systems and platforms, including
macOS, Linux, Solaris and Windows; custom libraries can be built using Maven. - Supports JPMS/Jigsaw modules.
- Apache 2.0 licensed.
*
(basic support for Java 7 only, no RMI, no Demos).
Quick links
-
- Sockets (
org.newsclub.net.unix.demo
) - RMI over Unix Sockets (
org.newsclub.net.unix.demo.rmi
andorg.newsclub.net.unix.demo.rmi.services
) - MySQL over Unix Sockets (
org.newsclub.net.mysql.demo
)
- Sockets (
-
API Javadocs
Feature Comparison Matrix, Project, License, Java Sockets API, Supports MySQL, Supports RMI, Comments, -------------, ---------, -------------, -------------, -------------, -------------, junixsocket, Apache 2.0, ✅ Yes, ✅ Yes, ✅ Yes, This project, netty, Apache 2.0, ✅ Yes, ❌ No, ❌ No, JUDS, LGPL, ❌ No, ❌ No, ❌ No, J-BUDS, LGPL, ❌ No, ❌ No, ❌ No, orphaned, gnu.net.local, GPL with Classpath exception, ❌ No, ❌ No, ❌ No, orphaned, ## Licensing
junixsocket is released under the Apache 2.0 License.
Commercial support is available through Kohlschütter Search Intelligence.
Self-test
To verify that the software works as expected on your platform, you can run the selftest program,
which is located in the "junixsocket-dist" distribution package:
java -jar junixsocket-selftest-VERSION-jar-with-dependencies.jar
(with VERSION being the corresponding junixsocket version).