Zero Java. Zero Garbage Collection.

Minecraft server
software for
potato machines

PotatoMC is a radically stripped-down, violently fast open-source Minecraft server written in Rust. Run a 20 TPS survival world on a $3 VPS.

Brute Force
Efficiency.

We replaced bloated JVM heaps and garbage collectors with manual memory management and jemalloc. The result is a server that runs on hardware meant for calculators.

Memory (Idle)
114 MB
PaperMC ~1.6 GB
Tick Rate
20.0
Locked solid
Startup Time
0.4s
PaperMC ~15s
GC Pauses
Zero
Native Memory

The Pipeline.

How does PotatoMC achieve a locked 20 TPS on a single gigabyte of RAM? By completely rethinking the server architecture around an Entity Component System (ECS) and parallel processing.

1. Epoll / Kqueue Ingress

Raw TCP (Java) and UDP RakNet (Bedrock) packets hit the asynchronous network loop. Connections are handled with zero-cost abstractions.

2. Zero-Copy Decoder

Incoming bytes are mapped directly to packet structs using unsafe Rust. No memory allocation occurs during packet deserialization.

3. Rayon Work-Stealing

Tick logic (entities, block updates, physics) is broken down into parallel jobs. Idle cores steal work from busy cores to ensure 100% utilization.

4. Async Region I/O

Modified Anvil chunk data is buffered and flushed to disk on a dedicated background thread, preventing any block on the main server tick loop.

Head-to-Head.

How does PotatoMC compare to the industry standard Java servers? We put it against Paper, Spigot, and Mojang's Vanilla server across key performance and architectural metrics.

MetricPotatoMCPaperMCSpigotVanilla
Startup Time~0.4s~15s~20s~25s+
Idle RAM (RSS)~114 MB~1.5 GB~1.2 GB~2.0 GB
CPU Usage (Idle)< 2%~10-15%~10%~5%
Capacity (1GB RAM)30+ Players5-10 Players (OOM Risk)10-15 Players1-5 Players
Plugin SupportPotato API (WASM)Bukkit / Paper APIBukkit / Spigot APIData Packs Only
LanguageRust (Native)Java (JVM)Java (JVM)Java (JVM)
GC PausesZERO (RAII)ZGC/G1GC SpikesHeavy GC StopsHeavy GC Stops
Chunk GenerationRayon ParallelMostly Single-ThreadSingle-ThreadSingle-Thread

Under the Hood

01

Rayon Parallel Pipeline

Chunk generation and entity ticking are aggressively parallelized across all available cores using Rayon's work-stealing thread pool.

02

Zero-Copy Networking

Network packets are serialized directly into buffers without intermediate allocations. No wasted memory bandwidth.

03

Bedrock Native Bridge

Integrated RakNet protocol handler allows Bedrock players to join without heavy middleware like Geyser. It just works.

04

Aggressive Pruning

Unused chunks are rapidly unloaded to disk, keeping the RSS footprint firmly under 150MB for small servers.

The End of
GC Spikes.

Watch what happens to a Java server's heap when players load chunks. The Garbage Collector struggles, causing massive TPS drops. PotatoMC uses manual memory management—meaning zero pauses and a perfectly locked memory footprint.

Memory Leaks Solved By Design

Memory Architecture

LIVE SIMULATION
JVM HEAP (UP TO 2GB)
POTATOMC (114MB)
PotatoMC (RAII)
Legacy Java (GC Spikes)

Development Roadmap

The path to replacing the JVM

v0.4.x

The Core Engine

CURRENT
  • Native Rust memory management
  • Rayon parallel chunk generation
  • Cross-play: Java & Bedrock (RakNet)
  • Zero-copy packet serialization
  • Basic entity physics & movement
v0.6.x

The Potato API

IN DEVELOPMENT
  • WebAssembly (WASM) plugin support
  • Dynamic registry injection
  • Custom blocks & items API
  • Event listener hooks
  • Hot-reloading for scripts
v0.8.x

Redstone & AI

PLANNED
  • Deterministic redstone graph
  • A* Pathfinding navmeshes
  • Advanced mob behaviors
  • Complex world-gen structures
v1.0.0

Production Ready

STABLE
  • 100% Vanilla parity (Mechanics)
  • Enterprise proxy forwarding
  • High-availability clustering
  • Long-term API stability guarantees

Intel.

Frequently Asked Questions & Technical Specifications

Can I run Bukkit / Spigot / Paper plugins?

No. JVM bytecode cannot execute within a native Rust binary. PotatoMC will utilize its own ultra-fast extension system known as the Potato API, which will support WebAssembly (WASM) based plugins.

Does it support Geyser for Bedrock players?

You don't need Geyser. PotatoMC has a built-in RakNet network bridge that natively translates and supports Bedrock connections at the protocol level without any external middleware.

What dimensions are supported?

Currently, the Overworld, Nether, and The End are fully supported. World generation uses deterministic Rust noise algorithms to closely match vanilla seed generation.

Can I use BungeeCord or Velocity?

Yes. PotatoMC supports standard proxy forwarding protocols (including Velocity modern forwarding and BungeeCord IP forwarding) so it can seamlessly drop into your existing proxy networks.

Why is it called PotatoMC?

Because it is so violently optimized and lightweight that it could theoretically run a stable server on a literal potato. Or a Raspberry Pi 2. Same thing.

Is it production ready?

Not yet. While it boasts a 0.4s startup time and a tiny memory footprint, complex redstone mechanics and advanced mob AI are still under active development.

Get Running.

No JRE. No configurations.
One native binary.

Download PotatoMC for Linux

Run this command to fetch and execute the setup script. It downloads the static binary directly.

curl -sSL https://potatomc.flaxa.in/install.sh | bash
cd potato-server
./potato-server run