-- Read in Russian / Прочитать на русском
The download button is below the changelog.
This update brings many changes to Keiko's concept and capabilities. Please see the updated Wiki and the updated overview page on SpigotMC to get started with the new Keiko. Below is a quick summary of what's changed in 4.0.0.
Keiko is no longer a plugin
Keiko is now a launcher, or a proxy for your server JAR. This ensures Keiko will load before any plugins or modules, and significantly increases the number of possibilities by removing the limits Keiko previously had as a plugin. For example, Keiko can now inject/modify particular code in your server JAR and/or in your plugins and modules, thus enabling the development of more advanced and deep protection techniques. For details, see these Wiki pages:
Keiko is now interactive
Keiko will now ask you about certain stuff right at run-time (before starting your server), making it much easier to use and understand. For example, if you're running a non-release (experimental) version of Keiko, you will be explicitly asked something like "Do you want to continue anyway? [y/n]". And, of course, you can still make the process of responding to Keiko's "questions" automatic using startup properties (use with caution, though).
Plugins integrity check
The idea of ensuring the integrity of plugins before letting them load seems nice, but the old implementation was terrible. This update brings a completely different way of checking plugins for integrity violation: instead of manually specifying all hashes in a configuration file, Keiko will now be doing everything automatically, and will be asking you explicitly about any changes it detects (like "Did you update plugin X? If you answer 'no' I'm gonna panic!"). See Wiki for details.
Static inspections
Several new static inspections have been added, and some of the old ones have been renovated. The exclusions system now allows excluding plugins by file name, plugin name, class name, and class name + method name. See Wiki for details.
Domain Access Control
Several new checks have been added to Keiko's DAC, including some Minecraft-specific operations (such as "set op" and "execute Minecraft server command"). The rules system has been improved: there are no more default rules, but rules are now prioritized by order, making the system much more flexible than before. You can now also configure the exact log level for each particular operation. See Wiki for details.
Keiko Megane: run-time heuristics
This update introduces Keiko Megane, a run-time background plugin behavior analysis system. It can detect suspicious activity of certain plugins while your server is running, and sometimes even remediate the damage malicious plugins have done (for example, it can de-op players that have been Force-OP'ped). See Wiki for details.
Localizations
Keiko now supports localization! Almost everything that Keiko prints is now read from file instead of being hardcoded. This makes it possible to translate Keiko in many languages so that it's easier to use and understand. Currently, there are three built-in languages — English, Russian, and Simplified Chinese. By default, Keiko uses your system (machine) language, but this behavior is configurable. See Wiki for details.
Improved logging
My sight of logging changed dramatically. Keiko will no longer flood your console with unnecessary (for most users) debug information. Instead, Keiko will attempt to have all its messages as clean and concise as possible, and will generally emit much less information in console than before. Log levels are now configurable separately for files and for console/display. Finally, console logging is now colorized, so that it's easier to understand the priority ("importance") of the messages Keiko shows you. Logged messages are now much easier to understand and are much more comfortable to read.
Optimized disk usage
Keiko now stores most its files in compressed form, resulting in much smaller disk usage. See Wiki for details.
Keiko Tools
Keiko Tools are no longer running in interactive mode. It's now even simpler: just provide the necessary arguments to Keiko when executing its JAR! Some old tools have been removed, and some new have been added (such as a built-in JAR-file disassembler). See Wiki for details.
Maintainability
(Did I spell this right?)
Keiko's code has been almost entirely renovated. Most things are now implemented better: more stable, reliable, and easier to maintain (fix and expand). Although there are still some parts that need to be done better, I'd say the new Keiko's code is better than that of the old versions. This is going to be one of the reasons Keiko will be updated more regularly since now.
New license
Keiko changed its license from Apache License 2.0 to GNU GPLv3.
Final words
I enjoyed working on Keiko 4.0.0, and really hope you'll enjoy using it! But please note that this build is still pre-release, and may not be 100% ready for use in production, although I did a lot of testing myself. If there's anything you'd like to be fixed or improved, please join Keiko's Discord server or open an issue on GitHub. Any feedback is welcome!
So this wraps up the short summary of the update :)
If you'd like to learn more, make sure to visit the Wiki!