From 43223548f443c1d00c9cf4320d6083b717833f78 Mon Sep 17 00:00:00 2001 From: Andrew Steinborn Date: Tue, 23 Jun 2020 09:57:04 -0400 Subject: [PATCH] Update outdated readme for natives. --- native/README.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/native/README.md b/native/README.md index 737e7f271..90bfde15d 100644 --- a/native/README.md +++ b/native/README.md @@ -5,16 +5,28 @@ traditional Java fallbacks. ## Compression -* **Supported platforms**: macOS 10.13, Linux amd64 (precompiled binary is built on Debian 9 with JDK 8) +* **Supported platforms**: Linux x86_64 and aarch64, with Java 11 `ByteBuffer` API support as a fallback. + Compiled on CentOS 7. * **Rationale**: Using a native zlib wrapper, we can avoid multiple trips into Java just to copy memory around. ## Encryption -* **Supported platforms**: macOS 10.13, Linux amd64 +* **Supported platforms**: Linux x86_64 (OpenSSL 1.0.x and OpenSSL 1.1.x) and aarch64 (OpenSSL 1.1.x only) * **Rationale**: Using a C library for encryption means we can limit memory copies. Prior to Java 7, this was the only way to use AES-NI extensions on modern processors, but this is less important since JDK 8 has native support. -* **Note**: Due to U.S. restrictions on cryptography export, this native is provided in source code form only for now. +* OpenSSL is not included in Velocity. Every distribution provides it now. To deal with ABI incompatibilities, + the native library (which only calls into OpenSSL and contains no cryptographic code) are available for + CentOS 7 (OpenSSL 1.0.0-based) and Debian 9 (OpenSSL 1.1.0-based) to provide the widest, most reasonable + compatibility with most modern distributions. ## OS support -If you are on Alpine Linux, `apk add libc6-compat` will enable native support. \ No newline at end of file +The natives intend to have the widest possible range of compatibility with modern Linux distributions +(defined as those being released in or after 2014). + +In theory, these libraries can be compiled for any Unix-like system (in the past, we supported macOS), +but interest in other systems is minimal at best, thus we focus on Linux x86_64 and aarch64 as they +are commonly used platforms. + +There is no support for Alpine Linux, however using `apk add libc6-compat` may enable native support. +Alpine Linux support is on a "best-effort" basis only. \ No newline at end of file