Mirror von
https://github.com/PaperMC/Velocity.git
synchronisiert 2024-11-17 13:30:17 +01:00
b3bd773fea
libdeflate is significantly faster than vanilla zlib, zlib-ng, and Cloudflare zlib. It is also MIT-licensed (so no licensing concerns). In addition, it simplifies a lot of the native code (something that's been tricky to get right). While we're at it, I have also taken the time to fine-time compression in Velocity in general. Thanks to this work, native compression only requires one JNI call, an improvement from the more than 2 (sometimes up to 5) that were possible before. This optimization also extends to the existing Java compressors, though they require potentially two JNI calls.
21 Zeilen
809 B
Bash
Ausführbare Datei
21 Zeilen
809 B
Bash
Ausführbare Datei
#!/bin/bash
|
|
|
|
if [ ! -d libdeflate ]; then
|
|
echo "Cloning libdeflate..."
|
|
git clone https://github.com/ebiggers/libdeflate.git
|
|
fi
|
|
|
|
echo "Compiling libdeflate..."
|
|
cd libdeflate || exit
|
|
make
|
|
cd ..
|
|
|
|
# Modify as you need.
|
|
MBEDTLS_ROOT=mbedtls
|
|
CFLAGS="-O3 -I$JAVA_HOME/include/ -I$JAVA_HOME/include/linux/ -fPIC -shared -Wl,-z,noexecstack"
|
|
gcc $CFLAGS -Ilibdeflate src/main/c/jni_util.c src/main/c/jni_zlib_deflate.c src/main/c/jni_zlib_inflate.c \
|
|
libdeflate/libdeflate.a -o src/main/resources/linux_x64/velocity-compress.so
|
|
gcc $CFLAGS -I $MBEDTLS_ROOT/include -shared $MBEDTLS_ROOT/library/aes.c $MBEDTLS_ROOT/library/aesni.c \
|
|
$MBEDTLS_ROOT/library/platform.c $MBEDTLS_ROOT/library/platform_util.c src/main/c/jni_util.c src/main/c/jni_cipher.c \
|
|
-o src/main/resources/linux_x64/velocity-cipher.so
|