@Minecrell After talking with @bloodmc he asked me to make an feature request to have the Redis java library Jedis added to Sponge.
Redis is a useful alternative to Bungeecord plugin messaging using publish/subscribe and is a powerful datastore already being used in several public Sponge plugins.
When I have some more time I intend to do a write-up on the sponge forums on how to use Jedis as an alternative to Bungeecord plugin messaging.
Some additional information here: Redis Wiki
You can easily include it in your plugin if you want to use it. Except for reducing plugin size slightly, what advantages do we have if we shade it in Sponge?
A lot of dependencies would be useful, but we cannot bundle them all because our Sponge JAR would explode. It's quite big already.
There aren't really any advantages of including Jedis in Sponge, especially with other Java libraries for Redis that are popular. As it is, including some of the dependencies we have (mariadb, etc) has caused issues in the past (plugins breaking because we bump a dependency version). If a plugin wants to use Redis, then they should shadow it into their JAR themselves.
馃憥
I agree with Kashike on this, Bukkit had the exact same issue where they bundled in a few dozen libraries all severely outdated to the point that it even caused issues for those who wanted to use newer versions where shading would break due to how the software worked.
The problem here is that you enter yourself into a trap:
You stick to upgrading only at major points (minor library version bumps are 'okay', so long as they don't break ABI on any of their public API), e.g. api 7 -> 8; causes issues with backwards compat, but atleast there is a notable point
you do the bukkit, and never update the library due to fears of breaking peoples plugins, and eventually pull it because it's several years outdated and causes conflict issues for anybody who wishes to shade in certain libraries into their own plugins.
as already noted, plugin developers can just shadow the library into their plugins, the only thing they really gain to save is a bit of space in their jar, beyond that there is no real advantage what-so-ever beyond laziness, which is complemented by passing all headaches up to the maintainers of the project.
Good points, I'll recommend to ShadowKitten to simply make a forum post on how to setup Jedis with Sponge for servers that want an alternative to Bungee chat.
Most helpful comment
There aren't really any advantages of including Jedis in Sponge, especially with other Java libraries for Redis that are popular. As it is, including some of the dependencies we have (mariadb, etc) has caused issues in the past (plugins breaking because we bump a dependency version). If a plugin wants to use Redis, then they should shadow it into their JAR themselves.
馃憥