# pumpkin-mc/pumpkin

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/pumpkin-mc-pumpkin).**

6,975 stars · 445 forks · Rust · gpl-3.0

## Links

- GitHub: https://github.com/Pumpkin-MC/Pumpkin
- Homepage: https://pumpkinmc.org/
- awesome-repositories: https://awesome-repositories.com/repository/pumpkin-mc-pumpkin.md

## Topics

`docker` `game-server` `gamedev` `minecraft` `minecraft-bedrock-edition` `minecraft-protocol` `minecraft-server` `networking` `rust` `server`

## Description

Pumpkin is a high-performance Minecraft game server implementation designed to host shared virtual worlds. It is specifically built to support multiple client editions, allowing different game versions to interact within a single world.

The project distinguishes itself through a flexible plugin architecture that supports extensions written in Go and Python. These extensions are loaded as portable binary modules, enabling developers to implement custom game logic and modify server behavior without altering the core codebase.

The server covers a broad range of operational capabilities, including procedural terrain generation, chunk-based world management, and network protocol implementation. It includes systems for packet compression and encryption, proxy integration for distributed networks, and a comprehensive command system with permission management and autocompletion. Administrative tools provide remote server management and account authenticity verification.

The server can be deployed within containerized environments using Docker to simplify hosting across different platforms.

## Tags

### Game Development

- [Game Servers](https://awesome-repositories.com/f/game-development/online-multiplayer/game-servers.md) — Implements a high-performance server capable of supporting multiple client editions in a shared world. ([source](https://cdn.jsdelivr.net/gh/pumpkin-mc/pumpkin@master/README.md))
- [Player State Synchronization](https://awesome-repositories.com/f/game-development/player-state-synchronization.md) — Processes movement, animations, and inventories to synchronize user actions across the network. ([source](https://cdn.jsdelivr.net/gh/pumpkin-mc/pumpkin@master/README.md))
- [Procedural World Building](https://awesome-repositories.com/f/game-development/procedural-world-building.md) — Manages the generation of procedural terrain and the persistence of game world files and entities.
- [Python Plugin Development](https://awesome-repositories.com/f/game-development/python-plugin-development.md) — Supports writing server extensions in Python and compiling them into portable binary components. ([source](https://docs.pumpkinmc.org/plugin-dev/python/quick-start))
- [World File Loading](https://awesome-repositories.com/f/game-development/simulation-engines/simulation-worlds/voxel-world-generation/world-seed-configuration/world-file-loading.md) — Reads environment data from multiple disk formats to populate the active game world. ([source](https://docs.pumpkinmc.org/developer/world))
- [Infinite Terrain Generators](https://awesome-repositories.com/f/game-development/tooling-asset-pipeline/procedural-generation/infinite-terrain-generators.md) — Generates deterministic and endless landscapes using procedural noise, biome heights, and block distributions. ([source](https://docs.pumpkinmc.org/developer/world))
- [Containerized Deployments](https://awesome-repositories.com/f/game-development/online-multiplayer/game-servers/containerized-deployments.md) — Supports deployment within containerized environments using Docker to simplify hosting across platforms.

### Networking & Communication

- [Minecraft Server Hosting](https://awesome-repositories.com/f/networking-communication/real-time-communication/multiplayer-game-servers/minecraft-server-hosting.md) — High-performance Minecraft game server implementation supporting multiple client versions and shared worlds.
- [Multi-Protocol Network Gateways](https://awesome-repositories.com/f/networking-communication/multi-protocol-network-gateways.md) — Supports multiple client communication protocols to enable different game versions to interact in a single world.
- [Network Data Compression](https://awesome-repositories.com/f/networking-communication/network-data-compression.md) — Reduces the size of data packets sent between the server and clients to lower bandwidth usage. ([source](https://docs.pumpkinmc.org/config/compression))
- [Network Protocol Implementations](https://awesome-repositories.com/f/networking-communication/network-protocol-implementations.md) — Implements the network protocol, managing structured data packets and encryption for client-server communication.
- [Packet Serialization Frameworks](https://awesome-repositories.com/f/networking-communication/packet-engines/packet-serialization-frameworks.md) — Implements a system for creating structured data formats for bidirectional communication using automatic mapping and serialization. ([source](https://docs.pumpkinmc.org/developer/networking/networking))
- [Game Server Implementations](https://awesome-repositories.com/f/networking-communication/real-time-communication/multiplayer-game-servers/minecraft-server-hosting/game-server-implementations.md) — Implements a high-performance Minecraft game server that supports multiple client editions.
- [Connection State Management](https://awesome-repositories.com/f/networking-communication/tcp-connection-lifecycles/connection-state-management.md) — Tracks the connection lifecycle from initial handshake through authentication and configuration to active gameplay. ([source](https://docs.pumpkinmc.org/developer/networking/networking))
- [Proxy Connection Controllers](https://awesome-repositories.com/f/networking-communication/proxy-connection-controllers.md) — Integrates with proxy protocols to distribute users and manage connections across multiple backend servers. ([source](https://docs.pumpkinmc.org/config/proxy))
- [Proxy Protocols](https://awesome-repositories.com/f/networking-communication/proxy-protocols.md) — Implements specific handshaking and identity forwarding to support connectivity via external proxy servers.
- [Game Proxy Integrations](https://awesome-repositories.com/f/networking-communication/proxy-servers/game-proxy-integrations.md) — Supports proxy protocols to distribute users across a larger network of linked servers.

### Part of an Awesome List

- [Minecraft Plugin Development](https://awesome-repositories.com/f/awesome-lists/devtools/game-development-plugins/minecraft-plugin-development.md) — Supports the creation of server extensions using Go and Python to add custom game mechanics.

### Development Tools & Productivity

- [Binary Plugin Hosts](https://awesome-repositories.com/f/development-tools-productivity/python-development-tools/script-execution-engines/python-scripting-environments/binary-plugin-hosts.md) — Provides a server environment that allows developers to execute custom game logic using Python extensions.
- [Command Hierarchies](https://awesome-repositories.com/f/development-tools-productivity/cli-command-frameworks/custom-command-definitions/command-hierarchies.md) — Defines a command tree with names and arguments to handle user actions and enforce access permissions. ([source](https://docs.pumpkinmc.org/plugin-dev/rust/command/rock-paper-scissors))

### DevOps & Infrastructure

- [Go Implementations](https://awesome-repositories.com/f/devops-infrastructure/release-automation/plugin-extensibility/plugin-extensible-runtimes/go-implementations.md) — Supports writing server extensions using the Go language and compiling them to portable binaries. ([source](https://docs.pumpkinmc.org/plugin-dev/go/quick-start))

### Operating Systems & Systems Programming

- [World Chunking](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/buffer-and-cache-management/chunked-memory-management/world-chunking.md) — Uses spatial partitioning to load and persist game environment data in discrete chunks for memory optimization.

### Programming Languages & Runtimes

- [Binary Plugin Hosts](https://awesome-repositories.com/f/programming-languages-runtimes/language-ecosystems-tooling/programming-environments-tooling/go-environments/binary-plugin-hosts.md) — Provides a server environment that allows developers to execute custom game logic using Go binaries.

### Security & Cryptography

- [Game World State Management](https://awesome-repositories.com/f/security-cryptography/identity-access-management/session-management/stateful-session-persistence/external-database-persistence/game-world-state-management.md) — Handles chunk loading, lighting, and entity spawning to maintain a persistent game environment. ([source](https://cdn.jsdelivr.net/gh/pumpkin-mc/pumpkin@master/README.md))
- [Traffic Encryption](https://awesome-repositories.com/f/security-cryptography/traffic-encryption.md) — Implements packet encryption to ensure secure communication between clients and the server. ([source](https://cdn.jsdelivr.net/gh/pumpkin-mc/pumpkin@master/README.md))
- [Session Authenticity Verification](https://awesome-repositories.com/f/security-cryptography/account-verification-services/session-authenticity-verification.md) — Validates client sessions against remote authentication servers to ensure users possess legitimate accounts. ([source](https://docs.pumpkinmc.org/config/authentication))
- [Identity Validation](https://awesome-repositories.com/f/security-cryptography/identity-validation.md) — Verifies user accounts against a remote server to prevent unauthorized access or enables offline mode. ([source](https://docs.pumpkinmc.org/developer/networking/authentication))
- [Command Access Rules](https://awesome-repositories.com/f/security-cryptography/permission-systems/command-access-rules.md) — Defines custom text commands and assigns specific permissions required for users to execute them. ([source](https://docs.pumpkinmc.org/plugin-dev/rust/basic-logic))

### Software Engineering & Architecture

- [Event-Driven Plugin Registries](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/hook-event-orchestration/event-driven-plugin-registries.md) — Provides a system to bind custom plugin logic to game events using configurable priorities.
- [Plugin Architectures](https://awesome-repositories.com/f/software-engineering-architecture/plugin-architectures.md) — Ships a flexible plugin architecture allowing core functionality to be extended via modular components. ([source](https://docs.pumpkinmc.org/developer/introduction))
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures.md) — Implements a modular architecture that allows extending server logic via externally compiled binary modules.
- [Bidirectional Serialization Mappings](https://awesome-repositories.com/f/software-engineering-architecture/bidirectional-serialization-mappings.md) — Maps structured data formats to bidirectional network packets for efficient client-server communication.
- [Lifecycle Plugin Systems](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/extensible-server-architectures/lifecycle-plugin-systems.md) — Provides a framework for managing plugin initialization, event registration, and lifecycle cleanup. ([source](https://docs.pumpkinmc.org/plugin-dev/c/quick-start))

### System Administration & Monitoring

- [Game Server Administration Interfaces](https://awesome-repositories.com/f/system-administration-monitoring/game-server-managers/game-server-administration-interfaces.md) — Provides tools for managing user permissions, remote console access, and server configurations.
- [Remote Server Management Tools](https://awesome-repositories.com/f/system-administration-monitoring/remote-server-management-tools.md) — Enables execution of administrative commands from a remote client using a password-protected protocol. ([source](https://docs.pumpkinmc.org/developer/networking/rcon))

### Data & Databases

- [Game Server Settings](https://awesome-repositories.com/f/data-databases/server-configuration/game-server-settings.md) — Provides configuration files to adjust operational parameters and engine behavior without requiring plugins. ([source](https://docs.pumpkinmc.org/config/introduction))

### User Interface & Experience

- [Game Event Listeners](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/event-handling-systems/game-event-listeners.md) — Implements a system to bind custom logic to game events with configurable priorities. ([source](https://docs.pumpkinmc.org/plugin-dev/rust/basic-logic))
