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

alex_medvedev | 328 points

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.

SquareWheel | 15 hours ago

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.

mobeigi | 19 hours ago

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)

Imustaskforhelp | 15 hours ago

Hello. I recently developed Pumpkin, Its a efficent and fast Minecraft server completely written in Rust from the ground up, Check it out :D

alex_medvedev | a day ago

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.

ramenlover | 18 hours ago

Just waiting for Minecraft to be so reverse engineered as to be its own protocol with multiple server and client implementations that just work.

dartos | 12 hours ago

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.

InMice | 15 hours ago

Impressive stuff, but I'll be more keen to see an high performance implementation that also supports the vast numbers of Minecraft mods. Forge servers are notoriously slow on bigger modpacks.

rumblefrog | 5 hours ago

What does "modern" mean in this context?

kgeist | 16 hours ago

It has now been 0 days since a new minecraft server was written in Rust https://dayssincelastrustmcserver.com/

bbno4 | 18 hours ago

It always fascinates me how people can do this!! Would there be any write ups about how this was made, I'd really appreciate this.

changexd | 6 hours ago

How does this compare to Dragonfly (IIUC, basically the same thing, but in Go)? https://github.com/df-mc/dragonfly

zellyn | 14 hours ago

See also https://github.com/valence-rs/valence A "clean room" implementation of the Minecraft server written in Rust

tomasff | 16 hours ago

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?

kamlaserbeam | 13 hours ago

This looks great! Can't wait to check out the code in detail.

saintradon | 18 hours ago

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?

FrustratedMonky | 19 hours ago

i wish minecraft was open source, i'd be able to fix their inefficient protocol

WhereIsTheTruth | 16 hours ago

looks good

superlucky84 | 17 hours ago

Reminded me of this existing https://dayssincelastrustmcserver.com/

icepat | 19 hours ago

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

pzmarzly | 19 hours ago

[dead]

paulinejq47 | 19 hours ago

this person is going gods work

dangoodmanUT | 19 hours ago

This weeks Minecraft server! Nice!

bradhe | 17 hours ago