Fork me on GitHub

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, 16.
  • Comes with pre-built native libraries for several operating systems and platforms, including macOS, Linux, FreeBSD, 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

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).