junixsocket is a Java/JNI library that allows the use of Unix Domain Sockets (AF_UNIX sockets) from Java.
- 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, 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).
-
- 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
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 |
junixsocket is released under the Apache 2.0 License.
Commercial support is available through Kohlschütter Search Intelligence.
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).