Sponge: Add Jedis To Sponge

Created on 27 Sep 2017  路  4Comments  路  Source: SpongePowered/Sponge

@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

input wanted

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.

馃憥

All 4 comments

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 either update the libraries and accept that stuff might break; which hurts developers ability to work over multiple versions easily and gives server owners headaches.
  • 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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ImMorpheus picture ImMorpheus  路  4Comments

gabizou picture gabizou  路  5Comments

SjsolisZXA picture SjsolisZXA  路  3Comments

Eufranio picture Eufranio  路  4Comments

XakepSDK picture XakepSDK  路  4Comments