# Pumpkin ![CI](https://github.com/Snowiiii/Pumpkin/actions/workflows/rust.yml/badge.svg) [![Discord](https://img.shields.io/discord/1268592337445978193.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/wT8XjrjKkf) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) ![Current version)](https://img.shields.io/badge/current_version-1.21.1-blue)
Pumpkin is a Minecraft server built entirely in Rust, offering a fast, efficient, and customizable experience. It prioritizes performance and player enjoyment while adhering to the core mechanics of the game. ![image](https://github.com/user-attachments/assets/7e2e865e-b150-4675-a2d5-b52f9900378e) ## What Pumpkin wants to achieve - **Performance**: Leveraging multi-threading for maximum speed and efficiency. - **Compatibility**: Supports the latest Minecraft server version and adheres to vanilla game mechanics. - **Security**: Prioritizes security by preventing known exploits. - **Flexibility**: Highly configurable with the ability to disable unnecessary features. - **Extensibility**: Provides a foundation for plugin development. ## What Pumpkin will not - Provide compatibility with Vanilla or Bukkit servers (including configs and plugins). - Function as a framework for building a server from scratch. > [!IMPORTANT] > Pumpkin is currently under heavy development. ## Features (WIP) - [x] Configuration (toml) - [x] Server Status/Ping - [x] Login - Player Configuration - [x] Registries (biome types, paintings, dimensions) - [x] Server Brand - [ ] Server Links - [x] Set Resource Pack - [ ] Cookies - World - [x] World Joining - [x] Player Tab-list - [x] World Loading - [x] Entity Spawning - [x] Chunk Loading - [ ] World Generation - [x] Chunk Generation - [ ] World Borders - [ ] World Saving - Player - [x] Player Skins - [x] Player Client brand - [x] Player Teleport - [x] Player Movement - [x] Player Animation - [x] Player Inventory - [x] Player Combat - Server - [ ] Query - [x] RCON - [x] Inventories - [x] Particles - [x] Chat - [x] Commands - Proxy - [ ] Velocity Check out our [Github Project](https://github.com/users/Snowiiii/projects/12/views/3) to see current progress ## How to run There are currently no release builds, because there was no release :D. To get Pumpkin running you first have to clone it: ```shell git clone https://github.com/Snowiiii/Pumpkin.git cd Pumpkin ``` You also may have to [install rust](https://www.rust-lang.org/tools/install) when you don't already have. You can place a vanilla world into the Pumpkin/ directory when you want. Just name the World to `world` Then run: > [!NOTE] > This can take a while. Because we enabled heavy optimizations for release builds > > To apply further optimizations specfic to your CPU and use your CPU features. You should set the target-cpu=native > Rust flag. ```shell cargo run --release ``` ### Docker Experimental Docker support is available. The image is currently not published anywhere, but you can use the following command to build it: ```shell docker build . -t pumpkin ``` To run it use the following command: ```shell docker run --rm -v "./world:/pumpkin/world" pumpkin ``` ## Contributions Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) ## Communication Consider joining our [discord](https://discord.gg/wT8XjrjKkf) to stay up-to-date on events, updates, and connect with other members. ## Thanks A big thanks to [wiki.vg](https://wiki.vg/) for providing valuable information used in the development of this project.