Skip to main content

Modern Architecture, Modern Performance

Gate is built from the ground up as a modern, cloud-native Minecraft proxy designed for today’s infrastructure and tomorrow’s scale.

Minimal Resource Footprint

Gate uses approximately 10MB of RAM in typical operation - that’s 5-10x less than traditional Java-based proxies.
# Typical memory usage
Gate:        ~10 MB
BungeeCord:  ~50-100 MB
Velocity:    ~50-100 MB
Lower memory usage means you can run more services on the same hardware, reduce cloud costs, and deploy efficiently even on resource-constrained environments.

Single Binary Distribution

No runtime dependencies. No version conflicts. Just download and run:
# Install Gate
curl -fsSL https://gate.minekube.com/install | bash

# Run it
gate
No Java required. Gate is a standalone binary compiled from Go - just copy and run.

Key Advantages

Cloud-Native Design

Built for modern infrastructure:
  • Native Kubernetes support
  • Health checks and readiness probes
  • Prometheus metrics
  • Graceful shutdown
  • Configuration hot-reload

Built-in Bedrock Support

Zero-plugin cross-play:
  • Integrated Geyser & Floodgate
  • Managed or manual modes
  • No backend plugins needed
  • Java + Bedrock on same network

Broad Version Support

Support for Minecraft versions:
  • 1.7.2 to latest (1.21+)
  • Forge mod support
  • BungeeCord compatibility
  • Velocity forwarding

Lite Mode

Lightweight reverse proxy:
  • Route by hostname/domain
  • Minimal overhead
  • Multiple load balancing strategies
  • Proxy-behind-proxy setups

Performance & Efficiency

Powered by Go

Gate is written in Go, Google’s modern systems programming language that powers infrastructure at the world’s largest companies:

Fast Compilation

Build and deploy in seconds, not minutes

Excellent Concurrency

Handle thousands of connections efficiently with goroutines

Modern Tooling

Simple dependency management with Go modules
Go is used by Google, Microsoft, Meta, Amazon, Netflix, Uber, Twitch, Dropbox, Docker, Kubernetes, and thousands of other companies for production infrastructure.

Real-World Performance

From pkg/gate/gate.go:1-407, Gate’s core architecture is designed for efficiency:
Gate's Core Design
// Gate runs multiple proxy editions in parallel
type Gate struct {
    javaProxy    *jproxy.Proxy      // Java edition proxy
    bedrockProxy *bproxy.Proxy      // Bedrock edition proxy  
    proc         process.Collection // Parallel running processes
}

// Efficient event system
eventMgr := event.New(event.WithLogger(log.WithName("event")))

// Context-based lifecycle management
func (g *Gate) Start(ctx context.Context) error {
    return g.proc.Start(ctx)
}
This architecture enables:
  • Parallel processing of Java and Bedrock connections
  • Event-driven plugins with minimal overhead
  • Graceful shutdown via context cancellation
  • Hot configuration reload without downtime

Deployment Flexibility

Gate runs anywhere:
Perfect for testing:
# Download and run
gate

# Or with Go
go run go.minekube.com/gate@latest

Feature Comparison

This comparison is objective and based on design differences between the projects.
FeatureGateBungeeCordVelocity
LanguageGoJavaJava
Memory Usage~10MB~50-100MB~50-100MB
Startup TimeLess than 1s2-5s2-5s
Single Binary✅ Yes❌ Requires Java❌ Requires Java
Version Support1.7 - Latest1.7 - Latest1.7 - Latest
Forge Support✅ Yes✅ Yes✅ Yes
Plugin SystemGo SDKJava PluginsJava Plugins
Bedrock Built-in✅ Yes❌ No❌ No
Lite Mode✅ Yes❌ No❌ No
Kubernetes Ready✅ YesManualManual
Config Hot-Reload✅ Yes❌ NoPartial
Metrics/Observability✅ Built-inPluginPlugin
Cloud Deployment✅ NativeManualManual

Built-in Cross-Play

Gate includes integrated Geyser and Floodgate for Bedrock Edition support:
1

Enable in Config

config.yml
config:
  bedrock:
    enabled: true
    managed: true  # Gate manages Geyser for you
2

Start Gate

gate
Gate automatically:
  • Downloads Geyser Standalone
  • Generates Floodgate encryption keys
  • Configures Geyser to connect to Gate
  • Starts Geyser process
3

Players Connect

  • Java players: Connect to port 25565
  • Bedrock players: Connect to port 19132
Both play together on the same backend servers!
No plugins needed on backend servers. Gate handles all Bedrock protocol translation at the proxy layer.
See the Bedrock Guide for more details.

Lite Mode - Unique to Gate

Gate Lite Mode is a lightweight reverse proxy that routes connections based on the hostname players connect with:
config.yml
config:
  lite:
    enabled: true
    routes:
      - host: "survival.example.com"
        backend: "10.0.0.10:25565"
      
      - host: "creative.example.com"
        backend: "10.0.0.11:25565"
      
      - host: "*.minigames.example.com"
        backend: "$1.k8s.svc:25565"  # Dynamic routing
        strategy: least-connections    # Load balancing
Perfect for:
  • Simple reverse proxy setups
  • Proxy-behind-proxy architectures
  • Minimal overhead routing
  • Dynamic Kubernetes service routing
See the Lite Mode Guide for more information.

Developer Experience

Gate is designed for developers who want to extend and customize their proxy:

Go SDK

Build plugins in Go with a clean, documented API:
example-plugin.go
package main

import (
    "go.minekube.com/gate/pkg/edition/java/proxy"
    "go.minekube.com/gate/pkg/gate"
)

func main() {
    proxy.Plugins = append(proxy.Plugins, proxy.Plugin{
        Name: "MyPlugin",
        Init: func(ctx context.Context, proxy *proxy.Proxy) error {
            // Listen for player join events
            proxy.Event().Subscribe(&PlayerJoinEvent{}, func(e *PlayerJoinEvent) {
                e.Player().SendMessage("Welcome to the server!")
            })
            return nil
        },
    })
    
    gate.Execute()
}

Type Safety

Compile-time checks catch errors before deployment

Fast Iteration

Rebuild and test in seconds

Rich Ecosystem

Access Go’s vast library ecosystem

Easy Debugging

Use standard Go debugging tools
See the Developer Guide to get started.

Who Should Use Gate?

✅ Great For

  • New networks starting fresh
  • Go developers wanting to use Go
  • Cloud deployments on Kubernetes/Docker
  • Resource-constrained environments
  • Cross-play networks (Java + Bedrock)
  • Networks needing custom proxy logic
  • High-performance requirements

⚠️ Consider Alternatives If

  • You have existing Java plugins you depend on
  • Your team only knows Java (not Go)
  • You need SpigotMC plugins at proxy level
  • You require specific BungeeCord plugins
Gate doesn’t support Java plugins from BungeeCord or Velocity.

Security & Stability

Modern Forwarding

Support for:
  • Velocity Modern forwarding (recommended)
  • BungeeCord Legacy forwarding
  • BungeeGuard secret protection
  • Proxy Protocol (HAProxy)

Rate Limiting

Built-in protection:
  • Connection rate limiting
  • Login attempt throttling
  • IP-based quota system
  • Configurable thresholds

Active Development

  • Regular updates and releases
  • Active community on Discord
  • Responsive issue tracking
  • Open source (Apache 2.0)

Production Ready

  • Used by servers worldwide
  • Extensive testing
  • Graceful error handling
  • Comprehensive logging

Community & Support

Get Help

Join our community:

Getting Started

Ready to try Gate?
1

Install Gate

curl -fsSL https://gate.minekube.com/install | bash
2

Create Config

gate config -t simple -w
3

Start Gate

gate

Quick Start Guide

Complete setup walkthrough

Configuration Reference

All configuration options

Developer Guide

Build custom plugins

Example Projects

Starter template repository

Build docs developers (and LLMs) love