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