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.rmiandorg.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 | This project | |||
| netty | Apache 2.0 | ||||
| JUDS | LGPL | ||||
| J-BUDS | LGPL | orphaned | |||
| gnu.net.local | GPL with Classpath exception | 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).