Hacker News new | past | comments | ask | show | jobs | submit

Show HN: Pumpkin – A Modern Minecraft server written in Rust

https://github.com/Snowiiii/Pumpkin
The performance differences look pretty impressive from the benchmarks. I do notice that world generation and saving features are missing though, and these tend to be pretty expensive operations. Chunk gen especially can bring a weaker VPS to its knees. I'm sure the benchmarks were taken at an idle state, but I'd be curious to see how it compares once those features are included and being used.

I don't see it listed, but is there support for block breaking/placing yet? Presumably this would require light recalculation and a chunk update on the server.

Finally, do you plan to add advanced features like scoreboard, teams, or command block parsing in general? Mojang has at least open-sourced Brigadier for that.

Cool project. Hope to see it mature to the point of making servers easier to run on low-end hardware.

Hey. Im impressed with the benchmarks myself tbh.

Yep block placing and breaking is already supported, but light currently don't so everything is dark :/, We are working on it. Yep, We want to add all cool features like scoreboards, teams and we already have a API which is similar to use to Brigadier for our Commands.

Thanks, I would love to give players on low-end hardware the possibility to host servers. I think i may test Pumpkin on a raspberry PI or something one day

loading story #41851335
Are there any benchmarks for it? How much faster is it than a vanilla server?

I know Minecraft servers tend to get extremely resource intensive as the player count creep and people run extremely beefy servers to handle the load and still offer poor TPS.

Hey, Your lucky, i just made benchmarks all this time :D. Check them out https://snowiiii.github.io/Pumpkin/about/benchmarks.html
loading story #41851461
loading story #41850648
loading story #41850872
As someone who knew about this project from earlier (I had even joined their discord) (currently have just deleted my discord account for better state of mind) Its really made me happy that hackernews really liked this project (140 upvotes is pretty good in my opinion)

From what I remember , there was one other server as well which also was written in rust but I am not exactly sure

Also , the last time I was at it , it was really really alpha software but it was getting developed at good rate , so I am not sure about its current state (I was there when the author had gone to take his exams IIRC)

Hi. Im so happy there are so many people liking the project, The Project is still pretty WIP but im really working hard on this, i finished my exmans last week and currently in holidays so commits are again back to normal :D
loading story #41851038
Hello. I recently developed Pumpkin, Its a efficent and fast Minecraft server completely written in Rust from the ground up, Check it out :D
loading story #41848102
loading story #41848101
Are you sharding the main thread into regions (ie. Like paper folia) or is this just breaking of non block-entities to their own threads.
loading story #41852437
I will give it a try, Thanks for this project. The performance of pure vanilla server jar is so bad. Thats one thing I wish mojang would improve. I know new chunk generation is multithread at least. I also wish they'd officially support some basic control for SMP servers. Something as basic as areas defined by two corner coordinates and basic permissions like place, break, interact. Just a basic config file is fine I can manage the requests/updates ot it using other tools - or a simple commandline utilities in game to ops. Something that lets me not have to always only use an excluse whitelist. I know Paper/waterfall and the others have plugsins for this but theres just something nice about staying pure vanilla. Ive been keep servers alive for a long time now.
Hey, Im happy you want to try it out just keep in mind its not done yet many features are missing, We want to have all the things you listed be configurable in a config file, so i think you will like it. If you have any problems may worth to take a look at https://snowiiii.github.io/Pumpkin/troubleshooting/common_is... or just ask for help on our discord, Have fun :D
loading story #41851025
loading story #41855146
What does "modern" mean in this context?
loading story #41850030
Its written from the ground up and has a clean foundation (which is not the case in vanilla minecraft server code). We also want to use cool modern features like multi-threading or the rust language which is a modern language designed to fix mistakes from older languages
loading story #41850348
loading story #41849990
It has now been 0 days since a new minecraft server was written in Rust https://dayssincelastrustmcserver.com/
loading story #41849656
loading story #41848772
loading story #41850282
loading story #41850253
loading story #41851482
loading story #41850418
loading story #41854920
How does this compare to Dragonfly (IIUC, basically the same thing, but in Go)? https://github.com/df-mc/dragonfly
loading story #41851647
See also https://github.com/valence-rs/valence A "clean room" implementation of the Minecraft server written in Rust
Hi, Valence is a framework (similar to Minestom in Java). You have to build everything you self. Pumpkin is not a framework :D. Also Valence is bit unactive (look commits)
loading story #41853477
loading story #41850398
Just to be clear this sever only works with the current vanilla version of Minecraft? I've been interested in playing again, but on the older Beta builds (1.7.3) prior to the full release versions. These versions aren't supported are they?
This looks great! Can't wait to check out the code in detail.
I would love to hear some feedback, tried my best so code is clean :D
Love the idea. Especially as a learning example. Always fun to learn a language by implementing a popular game.

Am confused by these two lines. Maybe it is just difference between the 'goal' and the 'current state'.

Goal:

"Compatibility: Supports the latest Minecraft server version and adheres to vanilla game mechanics. "

But NOT:

"Be a drop-in replacement for vanilla or other servers "

Will it be a replacement for Vanilla or not?

loading story #41848490
Hey, With Compatibility i mean be compatible with existing Minecraft vanilla client's and also use vanilla logic. With "Be a drop-in replacement for vanilla or other servers" i mean that if you just replace the existing server file with pumpkin, pumpkin will not load configs/plugins from vanilla/other servers
loading story #41850736
i wish minecraft was open source, i'd be able to fix their inefficient protocol
loading story #41850000
Reminded me of this existing https://dayssincelastrustmcserver.com/
loading story #41848481
loading story #41848401
Similar projects:

- Feather (Rust, abandoned) https://github.com/feather-rs/feather

- Valence (Rust) https://github.com/valence-rs/valence

- Cuberite (C++) https://github.com/cuberite/cuberite

loading story #41850427
loading story #41848486
this person is going gods work
This weeks Minecraft server! Nice!