Commit Graph

20 Commits

Author SHA1 Message Date
1bb84f81df Rewrite native crypto to use OpenSSL
OpenSSL is much more portable and optimized (important for aarch64) and most systems already have a version.

Unfortunately, OpenSSL likes to break their ABI. Thankfully, Velocity's natives system is very flexible largely, so we can provide multiple versions of this crypto.

Versions of the dynamically-linked crypto were compiled on CentOS 7 (still supported until 2024, uses OpenSSL 1.0.x) and Debian 9 (the oldest distro including OpenSSL 1.1.0, whose LTS supports ends in 2022). The choice of distros was intended to cover most modern distributions (2014 and afterwards).

An ARM compilation (using Debian 9) will be published soon.
2020-06-22 20:14:46 -04:00
b3bd773fea Switch out Cloudflare zlib for libdeflate.
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.
2020-05-24 10:56:26 -04:00
b3ac73a51e Use Cloudflare zlib for more aggressive optimizations 2020-02-18 01:34:39 -05:00
e191577afb Fix typo in gitignore 2019-09-29 22:07:49 +02:00
e21c33d435 Switch to zlib-ng
zlib-ng boasts higher throughput than regular zlib, by combining patches
from Cloudflare, zlib, and ARM's improvements to zlib along with a more
modern codebase.

Profiling consistently shows that compression is the largest CPU expense
by far, so even a minor speed-up here is significant.
2019-09-08 23:30:28 -04:00
72283af867 Ignore all out/ directories from IntelliJ. 2018-10-26 16:11:03 -04:00
86c1d42fa5 Fix/improve gitignore file to fully cover all IntelliJ IDEA files
Although the gitignore.io template does a decent job, it isn't broad enough to cover all of the files generated by IDEA. :(
2018-09-20 15:05:24 +01:00
508ba35697 Exclude plugins from Git. 2018-09-18 16:48:52 -04:00
a3c4522ca0 Allow to enable online mode for player connection (#51) 2018-08-24 20:55:15 -04:00
830b1d4798 Various improvements to plugin metadata
- Add plugin (display) name and plugin URL
 - Make everything except plugin ID optional (instead of empty string)
 - Exclude empty properties from generated velocity-plugin.json
 - Make plugin author list immutable
 - Other (minor) cleanup and refactoring
2018-08-21 20:37:10 +02:00
a028467e66 Plugin API (#34)
The Velocity API has had a lot of community input (special thanks to @hugmanrique who started the work, @lucko who contributed permissions support, and @Minecrell for providing initial feedback and an initial version of ServerListPlus).

While the API is far from complete, there is enough available for people to start doing useful stuff with Velocity.
2018-08-20 19:30:32 -04:00
6a2b945ed6 Do not handle scoreboards from backend
Changes in StateRegistry will allow to us skip packets decode which we don't want handle in BackendPlaySessionHandler for a specific versions
Also do not handle respawn packet
2018-08-12 13:35:13 +03:00
6bc5413038 Exclude all Gradle build folders 2018-08-08 05:59:26 -04:00
a261823302 Add favicon support 2018-08-08 04:44:27 -04:00
23a6488a39 Add default config again. Closes #12 2018-08-05 16:12:16 -04:00
f34e9b19c9 Add configuration stuff (this is not done yet) 2018-07-27 13:32:15 -04:00
c9af231c7e Switch to log4j2 logging 2018-07-27 01:54:40 -04:00
ab965108d6 Another file to exclude. 2018-07-26 00:00:59 -04:00
446f9acc45 Removed .idea folder 2018-07-25 23:58:18 -04:00
666d07e2a8 Initial commit. Very broken and only does Server List Ping! 2018-07-24 14:08:55 -04:00