No Java required · Lightweight Go binary

gRPC Mock Server

Test microservices without the real backend

Native Protocol Buffers support. Reflection enabled. All streaming modes. Start mocking gRPC in seconds, not minutes.

Full gRPC Protocol Support

Everything you need to mock gRPC services for testing and development.

Proto File Support

Load your .proto files directly. Mockd parses service definitions and generates mock responses automatically.

gRPC Reflection Enabled

Discover services at runtime without proto files. Works with grpcurl, Evans, and other reflection-aware tools.

All Streaming Modes

Unary, server streaming, client streaming, and bidirectional streaming. Full gRPC protocol support.

Method-Level Configuration

Configure responses per method. Different delays, errors, and responses for each RPC.

Metadata Matching

Match requests based on gRPC metadata headers. Route to different responses based on auth tokens, trace IDs, etc.

Error Simulation

Return specific gRPC status codes: UNAVAILABLE, DEADLINE_EXCEEDED, PERMISSION_DENIED, and more.

Simple Configuration

Define your gRPC mock in YAML. Load proto files or use reflection.

# mockd.yaml - gRPC mock configuration
version: "1.0"
admins:
  - name: local
    port: 4290
engines:
  - name: default
    httpPort: 4280
    admin: local
workspaces:
  - name: default
    engines: [default]

mocks:
  - id: grpc-services
    workspace: default
    type: grpc
    grpc:
      port: 50051
      protoFiles:
        - ./protos/user_service.proto
        - ./protos/order_service.proto
      reflection: true
      services:
        user.UserService:
          methods:
            GetUser:
              response:
                id: "1"
                name: "John Doe"
                email: "john@example.com"
              delay: "50ms"
            GetUserError:
              match:
                metadata:
                  x-test-error: "true"
              error:
                code: NOT_FOUND
                message: "User not found"
        order.OrderService:
          methods:
            StreamOrders:
              responses:
                - order_id: "ORD-001"
                  status: "PENDING"
                - order_id: "ORD-002"
                  status: "SHIPPED"
              streamDelay: "100ms"

Why Mockd for gRPC?

See how Mockd compares to other gRPC mocking solutions.

vs WireMock

No Java runtime required. Mockd starts in <10ms vs WireMock's 5+ seconds.

  • Single binary, no JVM
  • <30MB vs 200MB+ memory
  • Native gRPC support

vs GripMock

Multi-protocol support. Mock your REST, GraphQL, and gRPC services with one tool.

  • 7 protocols in one binary
  • Record & replay traffic
  • CLI, MCP server, and HTTP admin API

vs Postman

Standalone server that works in CI/CD. No cloud dependency, no account required.

  • Runs locally, works offline
  • Docker & Kubernetes ready
  • No usage limits or quotas

Use Cases

How teams use Mockd for gRPC testing and development.

Microservices Integration Testing

Test your service in isolation without spinning up the entire dependency graph. Mock upstream gRPC services with realistic responses.

CI/CD Pipeline Testing

Fast, deterministic tests in your pipeline. No flaky network calls, no external service dependencies.

Local Development

Develop frontend or client code without waiting for backend services. Mock responses that match your proto contracts.

Contract Testing

Validate that your client code handles all expected response types, including error cases and edge conditions.

Start Mocking gRPC in Under a Minute

Single Go binary. No dependencies. No Java. No Docker required.

# Quick install and run
curl -sSL https://get.mockd.io | sh
mockd init && mockd up