Minestom is an open-source library that enables developers to create their own Minecraft server software, without any code from Mojang.
The main difference between Mojang's vanilla server and a minestom-based server, is that ours does not contain any features by default! However, we have a complete API which is designed to allow you to make anything possible, with ease.
This is a developer API not meant to be used by end-users.
---
I believe the target audience is people developing non-vanilla/survival multiplayer servers, like minigames, PvP duels, etc.
I know this is a matter of taste and therefore controversial, but I really hoped this was going to be written in Rust or Golang, rather than Java. It does look really nice though, and I was pleased to see an example demo in the code and pro/cons of this directly on the readme.
I don't know of any active implementation in Go, but there is actually a nice parallel in Rust: Valence [0]. It follows the same framework approach as opposed to a plug-and-play package, like Glowstone (now abandoned).
You also have Pumpkin [1] and Ferrum [2] that are trying to implement a vanilla-like server, but are a little ways off still. The former has an interesting plugin system already; works with shared libraries.
One of the neat things of these Rust implementations, apart from good base performance (though Java's JIT can be pretty good on this type of software), is the memory footprint, one of the main painpoints of hosting large server networks. The official server implementation is extremely memory hungry, with lots of allocations everywhere; even with optimization forks like Paper, you can't really run away from it too much. Minestom is also nicer in that regard, but not on the same level as Pumpkin or Ferrum. The Minestom people are also waiting on Project Valhalla to unlock some optimizations on that front.
Another interesting approach would be Erlang or some other BEAM language, but there isn't much activity on that front either, as far as I know. McEx [3] was pretty neat, but it has long since been quiet.
The title is a bit misleading, but I opted to keep it since it's their wording.
Minestom isn't a plug-and-play server, but rather a framework for building custom servers. It's geared towards cases where performance is important (think big servers) and implementing your features is faster than pruning an existing implementation. There are several libraries that implement vanilla behaviour and that you can just plug onto your server, but the main idea is that you tailor the server to your specific needs.
From their README:
Minestom is an open-source library that enables developers to create their own Minecraft server software, without any code from Mojang.
The main difference between Mojang's vanilla server and a minestom-based server, is that ours does not contain any features by default! However, we have a complete API which is designed to allow you to make anything possible, with ease.
This is a developer API not meant to be used by end-users.
---
I believe the target audience is people developing non-vanilla/survival multiplayer servers, like minigames, PvP duels, etc.
I know this is a matter of taste and therefore controversial, but I really hoped this was going to be written in Rust or Golang, rather than Java. It does look really nice though, and I was pleased to see an example demo in the code and pro/cons of this directly on the readme.
I don't know of any active implementation in Go, but there is actually a nice parallel in Rust: Valence [0]. It follows the same framework approach as opposed to a plug-and-play package, like Glowstone (now abandoned).
You also have Pumpkin [1] and Ferrum [2] that are trying to implement a vanilla-like server, but are a little ways off still. The former has an interesting plugin system already; works with shared libraries.
One of the neat things of these Rust implementations, apart from good base performance (though Java's JIT can be pretty good on this type of software), is the memory footprint, one of the main painpoints of hosting large server networks. The official server implementation is extremely memory hungry, with lots of allocations everywhere; even with optimization forks like Paper, you can't really run away from it too much. Minestom is also nicer in that regard, but not on the same level as Pumpkin or Ferrum. The Minestom people are also waiting on Project Valhalla to unlock some optimizations on that front.
Another interesting approach would be Erlang or some other BEAM language, but there isn't much activity on that front either, as far as I know. McEx [3] was pretty neat, but it has long since been quiet.
[0]: https://valence.rs [1]: https://pumpkinmc.org [2]: https://github.com/ferrumc-rs/ferrumc [3]: https://github.com/McEx/McEx
https://minecraft.wiki/w/Minecraft_Wiki:Projects/wiki.vg_mer... No rust on this list, but there is an actively developed Go project!
Edit: whoops, above link is for classic servers, this link is for modern servers. Includes the thread-titular Minestom as well as an actively developed rust impl! https://minecraft.wiki/w/Minecraft_Wiki:Projects/wiki.vg_mer...
When am I meant to reach for this over Fabric or Paper? Does redstone operate like vanilla?
The title is a bit misleading, but I opted to keep it since it's their wording.
Minestom isn't a plug-and-play server, but rather a framework for building custom servers. It's geared towards cases where performance is important (think big servers) and implementing your features is faster than pruning an existing implementation. There are several libraries that implement vanilla behaviour and that you can just plug onto your server, but the main idea is that you tailor the server to your specific needs.