Apicurio Registry vs BBC Consumer Contracts
Apicurio Registry
apicur.ioBBC Consumer Contracts
github.comSide by side
| Figure | Apicurio Registry | BBC Consumer Contracts |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | — |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 0 | 1 |
| Spec score · Contract Testing Tools | 8.0 (#10) | 8.1 (#8) |
| Command line | A native Apicurio Registry CLI is available for Linux x86_64, macOS Apple Silicon, and Windows x86_64, and is marked dev-preview and unstable. | The consumer-contracts run command validates contracts recursively in a contracts directory or can run a specified contract file. |
| Integrations | The documentation describes Kafka client serializers and deserializers for Avro, Protobuf, and JSON Schema, and integration with Kafka Connect. | The project uses the request HTTP client and Joi for response validation. |
| Purpose | Apicurio Registry is a runtime server that stores artifacts and lets users add, update, and remove them through a remote REST API. | Consumer Contracts lets API consumers define executable JavaScript contracts describing the responses they expect from services. |
Plans
In their own words
Apicurio Registry
Apicurio Registry is an open-source runtime server for storing API designs and schemas as artifacts. Users can add, update, and remove artifacts through a remote REST API. For API discovery, teams can register designs such as OpenAPI, AsyncAPI, and GraphQL so consumers can search and browse APIs, see details, and read generated documentation. For messaging and event streaming, it provides a central place to track schemas and manage data-format evolution. Supported artifact types include OpenAPI, AsyncAPI, GraphQL, Apache Avro, Protocol Buffers, JSON Schema, Kafka Connect schema, WSDL, XML Schema, and ODCS v3.1. Configurable rules can check validity, compatibility, and integrity as artifacts change. Listed storage backends include Apache Kafka, PostgreSQL, and Microsoft SQL Server. Management options include a web console, REST API, command line, Maven plug-in, and Java client. Kafka serializers and deserializers can enforce schemas in producer and consumer applications. The documentation covers self-hosted deployment, including Kubernetes. The quick-start in-memory server is non-persistent and is not intended for production.
BBC Consumer Contracts
BBC Consumer Contracts is a free JavaScript package for executable consumer-driven API contracts. It describes the requests a consumer makes and the responses expected in return. Every contract requires consumer, name, request, and response properties. The package uses the request HTTP client and Joi schemas to check response status codes, headers, and JSON bodies. Optional before and after functions support setup and cleanup, using callbacks or asynchronous functions. Retry behavior accepts numeric or custom settings; the documented default maximum is zero. The consumer-contracts run command validates contracts recursively in a contracts directory or runs one named file. Programmatic callers can pass an array to validateContracts, which runs every contract instead of stopping at the first failure. Installation instructions cover global CLI use and local pnpm development dependencies. It requires Node.js 18 or later and pnpm 10 or later, and supports API and self-hosted use under Apache License 2.0.