3
0
Mirror von https://github.com/PaperMC/Velocity.git synchronisiert 2024-12-24 15:20:35 +01:00

Update outdated readme for natives.

Dieser Commit ist enthalten in:
Andrew Steinborn 2020-06-23 09:57:04 -04:00
Ursprung 0684e08f67
Commit 43223548f4

Datei anzeigen

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