Skip to content

docs: restructure README comparison table#19

Merged
zach-snell merged 2 commits intomainfrom
feat/readme-comparison-restructure
May 1, 2026
Merged

docs: restructure README comparison table#19
zach-snell merged 2 commits intomainfrom
feat/readme-comparison-restructure

Conversation

@zach-snell
Copy link
Copy Markdown
Contributor

@zach-snell zach-snell commented Apr 19, 2026

Summary

Restructures the README comparison table into a compact "at a glance" section (5 differentiators) plus an expandable full matrix covering Deployment, Protocol support, Capabilities, Import/export, and Free tier.

Supersedes #17. Credits @ankitjaininfo's contribution; his feedback on row splits (per-protocol breakout, chaos split, stateful split, separate export row, self-hosted row) is incorporated directly.

Why restructure rather than row-add

The previous table bundled categories that were doing different work per tool:

  • "HTTP + gRPC + GraphQL + WS" obscured WireMock's extension story and MockServer's gRPC gap.
  • "Chaos engineering" conflated fault-injection primitives (delay, errors) with chaos-engineering features (named profiles, circuit breakers, bandwidth throttling).
  • "Import OpenAPI/Postman/HAR" collapsed three separate formats into one, hiding per-tool differences.
  • OSS vs Cloud tier gating (big deal for WireMock and Beeceptor) wasn't visible at all.

Breaking the rows up makes every tool score honestly on what it actually ships, and keeps the table durable as new tools and tiers get added.

Per-cell sources

Every non-mockd cell was verified against primary-source docs. Two Beeceptor cells originally marked ⚠️ unverified were resolved by @ankitjaininfo's confirmations on this PR; see commit history.

mockd

All nine ✅ marks verified against the current codebase at bfd88c1:

  • Single binary: go.mod (Go 1.26.2, no runtime deps)
  • Protocols: pkg/grpc/server.go, pkg/graphql/handler.go, pkg/websocket/handler.go, pkg/mqtt/broker.go, pkg/sse/sse.go, pkg/soap/handler.go, pkg/oauth/handler.go
  • Stateful CRUD: pkg/stateful/bridge.go, pkg/store/file/stateful_resource_store.go
  • Chaos profiles: pkg/chaos/profiles.go (10 named profiles)
  • Circuit breakers: pkg/chaos/circuit_breaker.go
  • MCP server: pkg/mcp/ (18 tools in tool_defs.go)
  • Imports: pkg/portability/{openapi,postman,har,wsdl,wiremock,curl,mockoon}.go
  • Tunnel: pkg/tunnel/manager.go
  • Dashboard: pkg/admin/dashboard.go (build-tag gated, included in release binaries)

WireMock OSS

Mockoon

Prism

MockServer

Beeceptor

Beeceptor row resolution (per @ankitjaininfo confirmations):

  • WebSocket: ❌ (mocking not supported, only HTTP proxy)
  • Postman import: ❌ (not available)
  • Bandwidth throttling: marked roadmap (2026 roadmap item)
  • OAuth flows: stays ❌ (hosted oauth-mock is a template, not native OAuth flow infrastructure)
  • Chaos profiles: stays ❌ (weighted responses are credited under Fault injection; this row is for named pre-built profiles like mobile-3g, dns-flaky)

json-server

Test plan

  • Render README.md on GitHub and visually inspect at-a-glance table on desktop and mobile
  • Expand <details> block and verify all four sub-tables render correctly
  • Confirm emoji + unicode characters render consistently (no :white_check_mark: leftovers)
  • Verify no links in the comparison section are broken
  • @ankitjaininfo confirmations applied (WebSocket, Postman, Bandwidth throttling); editorial calls held on OAuth and Chaos profiles with rationale in commit history

Replaces the single bundled comparison table with a compact "at a glance"
table (5 differentiators) plus an expandable full matrix split into
Deployment, Protocol support, Capabilities, Import/export, and Free tier
sections.

Changes driven by feedback and verification from #17:
- Per-protocol rows instead of bundling (HTTP/gRPC/GraphQL/WS was hiding
  WireMock's extension story and MockServer's gRPC gap)
- Fault injection vs chaos profiles split so tools can't borrow credit
  for primitives they ship vs those they don't
- Import and export broken out; HAR export given its own row
- WireMock OSS vs WireMock Cloud gating made explicit (OpenAPI import,
  MCP, chaos modes, dashboard are all Cloud-only)
- Prism corrected from "Node" to binary (standalone releases exist)
- Beeceptor added as SaaS entry with tier-appropriate footnotes
- Mockoon dashboard corrected to "Cloud-only web UI" (desktop is Electron)
- MockServer gRPC/GraphQL downgraded to HTTP-only (not supported)
- json-server flagged REST-only and feature-frozen (v1 removed --delay)

Sources and per-cell verification notes provided in PR description.
@ankitjaininfo
Copy link
Copy Markdown

The new tables are very fair and detailed comparisions of available tooling stack. Great work @zach-snell in collecting all these.

w.r.t Beeceptor, here are the confirmations based on current capabilities.

  • Websockets ❌ - mocking not supported
  • Postman Import ❌ - not available.
  • OAuth flows ✅ - Fully supported with customizations. There is a free community mock server without any restriction. (ref: https://app.beeceptor.com/mock-server/oauth-mock )
  • Docker Image ✅ - available for Enterprise engagements only. (AWS, GCP, any cloud or local)
  • gRPC ✅ - fully supported - (ref: https://beeceptor.com/grpc-mock-server/ )
  • Chaos profiles ✅ - Available in Beeceptor. Users can define specific error rates (e.g., a 2% error rate, at API level) to test how cascading failures might impact system performance - (ref: https://beeceptor.com/docs/create-mocking-server/#weighted-response)
  • Bandwidth throttling roadmap: Not available yet in Beeceptor, it's a 2026 roadmap item. (I see some columns has roadmap for other tools)

Updates four cells based on @ankitjaininfo's confirmations on #19.

Confirmed and updated:
- WebSocket: unverified to no (mocking not supported, only HTTP proxy)
- Postman import: unverified to no (not available)
- Bandwidth throttling: no to roadmap (per maintainer, 2026 roadmap item)

Reviewed and held:
- OAuth flows: stays no. The hosted oauth-mock template is a pre-built
  HTTP mock template, not native OAuth flow infrastructure. Token
  endpoint returns faker placeholders, no JWT signing or refresh
  primitives. Any HTTP mocker can host the same kind of template;
  this row is reserved for tools that ship OAuth as a first-class
  protocol primitive.
- Chaos profiles: stays no. Weighted responses with custom error rates
  are credited under "Fault injection" where Beeceptor already scores
  yes. The Chaos profiles row is for named pre-built scenarios
  (slow-api, mobile-3g, dns-flaky, satellite, etc.) shipped with the
  tool, not for orchestrating profiles from primitives.

Legend updated: removes "unverified" key (no cells use it now), adds
"roadmap" key.
@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@zach-snell zach-snell merged commit af27abe into main May 1, 2026
12 checks passed
@zach-snell zach-snell deleted the feat/readme-comparison-restructure branch May 1, 2026 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants