Velocity/native
Andrew Steinborn d73496e8df Introduce zero memory-copy compression for regular Java native
The compression itself is zero-copy in most cases. However, the overhead
needed to copy a direct buffer into a heap buffer (and back) is still
present. If possible, use Linux for best performance.
2019-11-09 17:39:47 -05:00
..
src Introduce zero memory-copy compression for regular Java native 2019-11-09 17:39:47 -05:00
build.gradle
compile-linux.sh Switch to zlib-ng 2019-09-08 23:30:28 -04:00
compile-osx.sh Switch to zlib-ng 2019-09-08 23:30:28 -04:00
README.md

velocity-natives

This directory contains native acceleration code for Velocity, along with traditional Java fallbacks.

Compression

  • Supported platforms: macOS 10.13, Linux amd64 (precompiled binary is built on Debian 9 with JDK 8)
  • 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
  • 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.

OS support

If you are on Alpine Linux, apk add libc6-compat will enable native support.