# BabelQueue > BabelQueue is an open-source, broker-agnostic standard and set of SDKs that let PHP/Laravel, Symfony, Python, Go, Node.js, Java and .NET exchange queue messages over a single frozen strict-JSON envelope (`schema_version: 1`) whose job identity is a URN — no PHP `serialize()` anywhere on the wire. BabelQueue is a specification first and a set of libraries second. Six SDK cores implement it — PHP (with Laravel and Symfony adapters), Python, Go, Node.js, Java and .NET — and every one emits byte-compatible envelopes, so a job produced in one language is consumed natively in another. Seven brokers are GA and locked by a shared cross-SDK conformance suite: Redis, RabbitMQ, Amazon SQS, Azure Service Bus, Apache Pulsar, Apache Kafka and Apache ActiveMQ/Artemis. The envelope is frozen at `schema_version: 1`; identity is the URN in the `job` field, never a class name; `data` is pure JSON; and `trace_id` is preserved and forwarded unchanged across every hop, so one correlation id ties a whole chain of work together across languages. BabelQueue is MIT licensed and developed in the open at https://github.com/BabelQueue. ## Specification - [Wire Contract](https://babelqueue.com/docs/spec/1.x/introduction/): The frozen, language-neutral contract every BabelQueue SDK speaks — the envelope, the URN identity, and the rules that keep all six languages byte-compatible. - [The Envelope](https://babelqueue.com/docs/spec/1.x/envelope/): The frozen BabelQueue message envelope (schema_version 1): every field, the meta block, cross-language data rules, producer/consumer rules, and forbidden fields. - [URN Naming](https://babelqueue.com/docs/spec/1.x/urn/): How every BabelQueue message is identified — a stable urn:babel:: string instead of a class name, so any language can route on it. - [Broker bindings](https://babelqueue.com/docs/spec/1.x/broker-bindings/): How each broker carries the canonical envelope natively — the Redis, RabbitMQ, Amazon SQS, Azure Service Bus, Pulsar, Kafka and Artemis bindings. The body is identical everywhere; a binding maps the contract onto each broker's native metadata so consumers route and trace without decoding the body. - [Broker setup recipes](https://babelqueue.com/docs/spec/1.x/broker-recipes/): Quick-start recipes for pointing each BabelQueue SDK at a broker — worked examples for Redis and RabbitMQ, plus where to find the other five (SQS, Azure SB, Pulsar, Kafka, Artemis). The exact connection, runtime, transport or DSN per language, all producing and consuming the one canonical envelope. - [Dead-letter & tracing](https://babelqueue.com/docs/spec/1.x/dead-letter-and-tracing/): How a failed message lands on .dlq with the additive dead_letter block, and how trace_id is preserved and forwarded unchanged across every hop — both cross-language, both keeping the envelope frozen at schema_version 1. - [Idempotency](https://babelqueue.com/docs/spec/1.x/idempotency/): The meta.id consumption contract and the optional dedupe helper every SDK ships (ADR-0022) — a seen-set Store keyed on meta.id, wrapped around a handler so an already-processed message is skipped, not run twice. Single-process InMemory store for tests; a shared store for production fleets. The wire envelope is untouched at schema_version 1. - [Idempotency Stores & the Effect Guarantee](https://babelqueue.com/docs/spec/1.x/idempotency-stores/): How the seen-set Store turns at-least-once delivery into an exactly-once effect (ADR-0022): the three-method seen / remember / forget contract every SDK's idempotency helper keys on meta.id, the in-memory reference store that ships in every core, and how to back it with a shared persistent store (Redis, a database table, a cache) for a fleet. The dedupe-key contract and the broker-free cross-SDK conformance fixtures that lock it. The wire envelope is untouched at schema_version 1. - [Transactional Outbox](https://babelqueue.com/docs/spec/1.x/outbox/): The optional producer-side outbox helper every SDK ships (ADR-0029): a caller-owned DB transaction writes the business row and the encoded envelope together, then a separate relay publishes the stored bytes verbatim — removing the producer dual write with no envelope change and no DB driver in the core. The OutboxStore save / fetchUnpublished / markPublished / markFailed contract, the Outbox writer, the OutboxRelay flush/drain at-least-once handoff, and the in-memory reference store. The consumer-side mirror of idempotency. The wire envelope stays frozen at schema_version 1. - [Observability (OpenTelemetry)](https://babelqueue.com/docs/spec/1.x/observability/): How every SDK maps the envelope's trace_id to an OpenTelemetry TraceID (ADR-0025) — UUID to 16 bytes, else SHA-256 — and emits a CONSUMER 'process ' span and PRODUCER 'publish ' span with messaging-semconv attributes, so a trace_id shared across hops becomes one OTel trace. The v0.2 W3C traceparent transport header (ADR-0028) adds true cross-hop span parent-child linkage, now in all six SDK cores. Retry and DLQ are visible via attempts and error status. An opt-in module; the wire envelope stays frozen at schema_version 1. - [Per-URN Schema Validation](https://babelqueue.com/docs/spec/1.x/schema-validation/): Optional, opt-in validation of a message's data block against a JSON Schema registered for its URN (ADR-0024), plus the broker-free babelqueue-registry / bqschema tooling that governs those schemas in git and CI. A Provider supplies the schema; Check validates producer-side (preferred) and Wrap validates consumer-side. The wire envelope stays frozen at schema_version 1. - [GDPR Field Encryption](https://babelqueue.com/docs/spec/1.x/gdpr-field-encryption/): How every SDK encrypts the PII leaves of a message's data in place (ADR-0030): the validation-neutral x-gdpr-sensitive schema keyword declares which fields carry personal data; a caller-bound Cipher seam (so the core pulls no crypto dependency) plus opt-in protect / unprotect helpers walk the schema's sensitive paths and rewrite only the marked values, leaving data pure JSON and the envelope frozen. The registry's bqschema gdpr declares and audits the same keyword. Validate cleartext, before protect and after unprotect. The wire envelope stays frozen at schema_version 1. - [DLQ Redrive & Replay-Bypass](https://babelqueue.com/docs/spec/1.x/redrive-and-replay/): Operator tooling to move dead-lettered messages back onto a queue (ADR-0026) — Redrive resets the dead_letter block and attempts to 0 while preserving job, trace_id, data and meta verbatim, with dry-run, sandbox-routing and select filters — plus the Replay-Bypass guard (ADR-0027) that lets a deliberate replay skip external side-effects that already fired, via the out-of-band bq-replay-bypass transport header. The wire envelope stays frozen at schema_version 1. ## PHP - [Introduction](https://babelqueue.com/docs/php-sdk/1.x/introduction/): Introduction — the framework-agnostic PHP core (babelqueue/php-sdk): the canonical envelope codec, contracts and dead-letter helpers. - [Installation](https://babelqueue.com/docs/php-sdk/1.x/installation/): Installation — the framework-agnostic PHP core babelqueue/php-sdk. - [Producing messages](https://babelqueue.com/docs/php-sdk/1.x/producing-messages/): Producing messages with the PHP core — build the canonical envelope with EnvelopeCodec, encode it, and publish through any transport. - [Consuming messages](https://babelqueue.com/docs/php-sdk/1.x/consuming-messages/): Consuming with the PHP core — decode the envelope, validate it (quarantine unsupported versions), route by URN, and (for Kafka/Pulsar) drive the framework-less consumers and consume runtime. - [Transports](https://babelqueue.com/docs/php-sdk/1.x/transports/): Optional framework-less reference transports for the PHP core — RedisTransport, AmqpTransport, SqsTransport, KafkaTransport, PulsarTransport and StompTransport (Artemis) — plus the one-method Transport seam. - [Reliability & governance helpers](https://babelqueue.com/docs/php-sdk/1.x/reliability-and-governance/): The optional, dependency-free reliability and governance helpers in the PHP core — idempotency (seen-set + persistent PdoStore/RedisStore with the claim contract), the transactional outbox, DLQ redrive + replay-bypass, GDPR field encryption, and OpenTelemetry traceparent. Each composes with the core codec, adds nothing to the frozen envelope, and mirrors the cross-SDK spec. ## PHP / Laravel - [Introduction](https://babelqueue.com/docs/laravel/1.x/introduction/): Introduction — PHP / Laravel BabelQueue driver (1.x). - [Installation](https://babelqueue.com/docs/laravel/1.x/installation/): Installation — PHP / Laravel BabelQueue driver (1.x). - [Configuration](https://babelqueue.com/docs/laravel/1.x/configuration/): Configuration — PHP / Laravel BabelQueue driver (1.x). - [Producing messages](https://babelqueue.com/docs/laravel/1.x/producing-messages/): Producing messages — PHP / Laravel BabelQueue driver (1.x). - [Consuming messages](https://babelqueue.com/docs/laravel/1.x/consuming-messages/): Consuming messages — PHP / Laravel BabelQueue driver (1.x). - [Amazon SQS driver](https://babelqueue.com/docs/laravel/1.x/amazon-sqs/): The babelqueue-sqs drop-in driver — a polyglot Amazon SQS queue on Laravel's native sqs connection. Polyglot jobs are sent as the canonical envelope with the §3 MessageAttributes; standard Laravel jobs pass straight through. - [Apache ActiveMQ Artemis driver](https://babelqueue.com/docs/laravel/1.x/apache-activemq-artemis/): The babelqueue-artemis drop-in driver — a polyglot Apache ActiveMQ Artemis queue on Laravel over STOMP. Produces and consumes the canonical envelope; Artemis bridges STOMP ↔ AMQP 1.0 ↔ JMS, so Java/.NET/Node/Python/Go SDKs interop natively. - [Reliability & governance helpers](https://babelqueue.com/docs/laravel/1.x/reliability-and-governance/): Using the PHP core's reliability and governance helpers from the Laravel driver — idempotency (seen-set + persistent PdoStore/RedisStore), the transactional outbox, DLQ redrive + replay-bypass, GDPR field encryption, and OpenTelemetry traceparent. The standard worker stays untouched; the helpers compose with your handlers and add nothing to the frozen envelope. ## PHP / Symfony - [Introduction](https://babelqueue.com/docs/symfony/1.x/introduction/): Introduction — Symfony Messenger BabelQueue adapter (1.x). - [Installation](https://babelqueue.com/docs/symfony/1.x/installation/): Installation — Symfony Messenger BabelQueue adapter (1.x). - [Configuration](https://babelqueue.com/docs/symfony/1.x/configuration/): Configuration — point a Symfony Messenger transport at the BabelQueue serializer and map URNs to message classes. - [Producing messages](https://babelqueue.com/docs/symfony/1.x/producing-messages/): Producing messages — implement PolyglotMessage and dispatch through Symfony Messenger; BabelQueue encodes the canonical envelope. - [Consuming messages](https://babelqueue.com/docs/symfony/1.x/consuming-messages/): Consuming messages — a normal Symfony Messenger handler, routed by message class; BabelQueue decodes the envelope and bridges retry + trace. - [Broker transports](https://babelqueue.com/docs/symfony/1.x/broker-transports/): Run BabelQueue over any Symfony Messenger transport — built-in (AMQP, Redis) or third-party (Kafka, AMQP 1.0) — with the babelqueue.messenger.serializer. Interop is body-authoritative, so no broker-specific BabelQueue transport is needed. - [Reliability & governance helpers](https://babelqueue.com/docs/symfony/1.x/reliability-and-governance/): Using BabelQueue's reliability and governance helpers from the Symfony Messenger adapter — the native IdempotencyMiddleware (seen-set or ClaimingStore), TracePropagationMiddleware, plus the php-sdk core helpers the adapter re-exposes: the transactional outbox, DLQ redrive + replay-bypass, and GDPR field encryption. Messenger's worker, retry and failure transport stay untouched; nothing is added to the frozen envelope. ## Python - [Introduction](https://babelqueue.com/docs/babelqueue-python/1.x/introduction/): Introduction — Python BabelQueue SDK (1.x). - [Installation](https://babelqueue.com/docs/babelqueue-python/1.x/installation/): Installation — Python BabelQueue SDK (1.x). - [Configuration](https://babelqueue.com/docs/babelqueue-python/1.x/configuration/): Configuration — Python BabelQueue SDK (1.x). - [Producing messages](https://babelqueue.com/docs/babelqueue-python/1.x/producing-messages/): Producing messages — Python BabelQueue SDK (1.x). - [Consuming messages](https://babelqueue.com/docs/babelqueue-python/1.x/consuming-messages/): Consuming messages — Python BabelQueue SDK (1.x). - [Celery adapter](https://babelqueue.com/docs/babelqueue-python/1.x/celery/): Run the BabelQueue runtime on your existing Celery broker — from_celery(app) and install_worker(app) drain canonical envelopes alongside your Celery tasks. - [Django adapter](https://babelqueue.com/docs/babelqueue-python/1.x/django/): Settings-driven BabelQueue for Django — a BABELQUEUE config, get_app()/publish() helpers, and a manage.py babelqueue_worker command. - [Reliability & governance helpers](https://babelqueue.com/docs/babelqueue-python/1.x/reliability-and-governance/): The optional, stdlib-only reliability and governance helpers in the Python core — idempotency (wrap + seen-set store), the transactional outbox, DLQ redrive + replay-bypass, GDPR field encryption (with the [gdpr] extra for the reference cipher), and OpenTelemetry traceparent (the [otel] extra). Each composes with the runtime, adds nothing to the frozen envelope, and mirrors the cross-SDK spec. ## Go - [Introduction](https://babelqueue.com/docs/babelqueue-go/1.x/introduction/): Introduction — Go BabelQueue SDK (1.x). - [Installation](https://babelqueue.com/docs/babelqueue-go/1.x/installation/): Installation — Go BabelQueue SDK (1.x). - [Configuration](https://babelqueue.com/docs/babelqueue-go/1.x/configuration/): Configuration — Go BabelQueue SDK (1.x). - [Producing messages](https://babelqueue.com/docs/babelqueue-go/1.x/producing-messages/): Producing messages — Go BabelQueue SDK (1.x). - [Consuming messages](https://babelqueue.com/docs/babelqueue-go/1.x/consuming-messages/): Consuming messages — Go BabelQueue SDK (1.x). - [Runtime & transports](https://babelqueue.com/docs/babelqueue-go/1.x/runtime-and-transports/): The optional zero-dependency App runtime (publish/consume/worker loop) and the Redis, RabbitMQ, Amazon SQS, Azure Service Bus, Apache Pulsar, Apache Kafka & Apache ActiveMQ Artemis transport modules for the Go SDK. - [Reliability & governance helpers](https://babelqueue.com/docs/babelqueue-go/1.x/reliability-and-governance/): The optional, stdlib-only reliability and governance subpackages of the Go core — idempotency (seen-set Wrap + persistent idempotency-postgres / idempotency-redis submodules with Claim), the transactional outbox, DLQ redrive + replay-bypass, GDPR field encryption, and OpenTelemetry traceparent. Each composes with the core, adds nothing to the frozen envelope, and mirrors the cross-SDK spec. ## Node.js - [Introduction](https://babelqueue.com/docs/babelqueue-node/1.x/introduction/): Introduction — Node.js BabelQueue SDK (1.x). - [Installation](https://babelqueue.com/docs/babelqueue-node/1.x/installation/): Installation — Node.js BabelQueue SDK (1.x). - [Configuration](https://babelqueue.com/docs/babelqueue-node/1.x/configuration/): Configuration — Node.js BabelQueue SDK (1.x). - [Producing messages](https://babelqueue.com/docs/babelqueue-node/1.x/producing-messages/): Producing messages — Node.js BabelQueue SDK (1.x). - [Consuming messages](https://babelqueue.com/docs/babelqueue-node/1.x/consuming-messages/): Consuming messages — Node.js BabelQueue SDK (1.x). - [Adapters & transports](https://babelqueue.com/docs/babelqueue-node/1.x/adapters/): The npm packages beyond core: the BullMQ and NestJS framework adapters and the Amazon SQS transport — canonical-envelope jobs/messages, URN routing, and an injectable publisher. - [Reliability & governance helpers](https://babelqueue.com/docs/babelqueue-node/1.x/reliability-and-governance/): The optional, zero-dependency reliability and governance helpers in @babelqueue/core — idempotency (Wrap + seen-set Store), the transactional outbox, DLQ redrive + replay-bypass, GDPR field encryption, and OpenTelemetry traceparent via the /otel subpath. Each composes with the core codec, adds nothing to the frozen envelope, and mirrors the cross-SDK spec. ## Java - [Introduction](https://babelqueue.com/docs/babelqueue-java/1.x/introduction/): Introduction — Java BabelQueue SDK (1.x). - [Installation](https://babelqueue.com/docs/babelqueue-java/1.x/installation/): Installation — Java BabelQueue SDK (1.x). - [Configuration](https://babelqueue.com/docs/babelqueue-java/1.x/configuration/): Configuration — Java BabelQueue SDK (1.x). - [Producing messages](https://babelqueue.com/docs/babelqueue-java/1.x/producing-messages/): Producing messages — Java BabelQueue SDK (1.x). - [Consuming messages](https://babelqueue.com/docs/babelqueue-java/1.x/consuming-messages/): Consuming messages — Java BabelQueue SDK (1.x). - [Reliability & governance helpers](https://babelqueue.com/docs/babelqueue-java/1.x/reliability-and-governance/): The optional, zero-dependency reliability and governance helpers in the Java core — idempotency (Idempotent.wrap + seen-set Store), the transactional outbox (com.babelqueue.outbox), DLQ redrive + replay-bypass, GDPR field encryption (com.babelqueue.gdpr, AesGcmCipher), and OpenTelemetry traceparent. Each composes with the core, adds nothing to the frozen envelope, and mirrors the cross-SDK spec. - [Spring Boot adapter](https://babelqueue.com/docs/babelqueue-java/1.x/spring/): The Spring Boot adapter (babelqueue-spring) — a Spring AMQP MessageConverter, an injectable publisher, and auto-configuration that wires the canonical envelope into RabbitTemplate and @RabbitListener. - [Redis transport](https://babelqueue.com/docs/babelqueue-java/1.x/redis/): The babelqueue-redis transport — a canonical-envelope publisher and a URN-routed consumer over the §1 reliable-queue list pattern, built on Lettuce, on the framework-agnostic core. - [Amazon SQS transport](https://babelqueue.com/docs/babelqueue-java/1.x/amazon-sqs/): The babelqueue-sqs transport — a canonical-envelope publisher and a URN-routed consumer over the AWS SDK for Java v2, on the framework-agnostic core. - [Azure Service Bus transport](https://babelqueue.com/docs/babelqueue-java/1.x/azure-service-bus/): The babelqueue-azure-servicebus transport — a canonical-envelope publisher and a URN-routed consumer over azure-messaging-servicebus, on the framework-agnostic core. - [Apache Pulsar transport](https://babelqueue.com/docs/babelqueue-java/1.x/apache-pulsar/): The babelqueue-pulsar transport — a canonical-envelope publisher and a URN-routed consumer over pulsar-client, on the framework-agnostic core. - [Apache Kafka transport](https://babelqueue.com/docs/babelqueue-java/1.x/apache-kafka/): The babelqueue-kafka transport — a canonical-envelope publisher and a URN-routed, process-then-commit consumer over kafka-clients, on the framework-agnostic core. - [Apache ActiveMQ Artemis transport](https://babelqueue.com/docs/babelqueue-java/1.x/apache-activemq-artemis/): The babelqueue-artemis transport — a canonical-envelope publisher and a URN-routed AMQP 1.0 consumer over JMS (Jakarta Messaging), on the framework-agnostic core. ## .NET - [Introduction](https://babelqueue.com/docs/babelqueue-dotnet/1.x/introduction/): Introduction — .NET BabelQueue SDK (1.x). - [Installation](https://babelqueue.com/docs/babelqueue-dotnet/1.x/installation/): Installation — .NET BabelQueue SDK (1.x). - [Configuration](https://babelqueue.com/docs/babelqueue-dotnet/1.x/configuration/): Configuration — .NET BabelQueue SDK (1.x). - [Producing messages](https://babelqueue.com/docs/babelqueue-dotnet/1.x/producing-messages/): Producing messages — .NET BabelQueue SDK (1.x). - [Consuming messages](https://babelqueue.com/docs/babelqueue-dotnet/1.x/consuming-messages/): Consuming messages — .NET BabelQueue SDK (1.x). - [Reliability & governance helpers](https://babelqueue.com/docs/babelqueue-dotnet/1.x/reliability-and-governance/): The optional, zero-dependency reliability and governance helpers in BabelQueue.Core — idempotency (Idempotency.Wrap + seen-set IIdempotencyStore), the transactional outbox (BabelQueue.Outbox, async), DLQ redrive + replay-bypass, GDPR field encryption (BabelQueue.Gdpr, AesGcmCipher), and OpenTelemetry traceparent (BabelQueue.Tracing, on System.Diagnostics.Activity). Each composes with the core, adds nothing to the frozen envelope, and mirrors the cross-SDK spec. - [MassTransit adapter](https://babelqueue.com/docs/babelqueue-dotnet/1.x/masstransit/): The MassTransit adapter (BabelQueue.MassTransit) — a System.Text.Json converter, an injectable publisher, and bus configuration so MassTransit speaks the canonical envelope. - [Redis transport](https://babelqueue.com/docs/babelqueue-dotnet/1.x/redis/): The BabelQueue.Redis transport — a canonical-envelope publisher and a URN-routed consumer over the §1 reliable-queue list pattern, built on StackExchange.Redis, on the framework-agnostic core. - [Amazon SQS transport](https://babelqueue.com/docs/babelqueue-dotnet/1.x/amazon-sqs/): The BabelQueue.Sqs transport — a canonical-envelope publisher and a URN-routed consumer over the AWS SDK for .NET, on the framework-agnostic core. - [Azure Service Bus transport](https://babelqueue.com/docs/babelqueue-dotnet/1.x/azure-service-bus/): The BabelQueue.AzureServiceBus transport — a canonical-envelope publisher and a URN-routed consumer over Azure.Messaging.ServiceBus, on the framework-agnostic core. - [Apache Pulsar transport](https://babelqueue.com/docs/babelqueue-dotnet/1.x/apache-pulsar/): The BabelQueue.Pulsar transport — a canonical-envelope publisher and a URN-routed consumer over DotPulsar, on the framework-agnostic core. - [Apache Kafka transport](https://babelqueue.com/docs/babelqueue-dotnet/1.x/apache-kafka/): The BabelQueue.Kafka transport — a canonical-envelope publisher and a URN-routed, process-then-commit consumer over Confluent.Kafka, on the framework-agnostic core. - [Apache ActiveMQ Artemis transport](https://babelqueue.com/docs/babelqueue-dotnet/1.x/apache-activemq-artemis/): The BabelQueue.Artemis transport — a canonical-envelope publisher and a URN-routed AMQP 1.0 consumer over AMQPNetLite, on the framework-agnostic core. ## Cross-language examples - [Cross-language: Python → Go over Redis](https://babelqueue.com/docs/examples/1.x/cross-language-redis/): A runnable demo — a Python service produces the canonical BabelQueue envelope and a Go service consumes it from the same Redis queue. ## Blog - [BabelQueue vs CloudEvents: two envelopes, different problems](https://babelqueue.com/blog/babelqueue-vs-cloudevents/): CloudEvents standardizes how an event describes itself across protocols; BabelQueue freezes what a queue job looks like so six languages run it. An honest comparison — the real overlap, the real differences, and where CloudEvents is the better choice. - [What is a polyglot queue?](https://babelqueue.com/blog/what-is-a-polyglot-queue/): A polyglot queue is a message queue whose jobs are produced in one language and consumed natively in another. Why language-native serialization blocks that, the failure modes teams actually hit, and what a working solution has to provide. - [Why the envelope is frozen at schema_version 1](https://babelqueue.com/blog/why-the-envelope-is-frozen/): Freezing the wire envelope is the whole product. Here's what 'frozen' means, what can still change, and how versioning keeps a v1 producer readable by every v1 consumer. - [Publishing polyglot jobs from Laravel](https://babelqueue.com/blog/publishing-polyglot-jobs-from-laravel/): Add BabelQueue to a Laravel app and publish jobs that Go, Python, Node, Java and .NET services consume natively — without changing your broker. - [PHP produces, Go consumes — over Redis](https://babelqueue.com/blog/php-produces-go-consumes-redis/): A PHP producer and a Go worker share one Redis queue, exchanging the identical JSON envelope — no shared class, and no PHP runtime on the Go side. - [BabelQueue 1.0 is here — polyglot queues, simplified](https://babelqueue.com/blog/babelqueue-1-0/): All six SDKs — PHP, Python, Go, Node.js, Java and .NET — are now published at 1.0.0, with a SemVer-stable API and one frozen wire envelope. ## Optional - [llms-full.txt](https://babelqueue.com/llms-full.txt): every page listed above concatenated into one plain-markdown document - [RSS feed](https://babelqueue.com/rss.xml): releases, guides and updates - [GitHub organisation](https://github.com/BabelQueue): the standard, all six SDKs, the schema-governance CLI and the cross-SDK conformance suite - [PHP SDK on Packagist](https://packagist.org/packages/babelqueue/php-sdk): install with `composer require babelqueue/php-sdk` - [Python SDK on PyPI](https://pypi.org/project/babelqueue/): install with `pip install babelqueue` - [Go SDK on pkg.go.dev](https://pkg.go.dev/github.com/babelqueue/babelqueue-go): install with `go get github.com/babelqueue/babelqueue-go` - [Node.js SDK on npm](https://www.npmjs.com/package/@babelqueue/core): install with `npm install @babelqueue/core` - [Java SDK on Maven Central](https://central.sonatype.com/artifact/com.babelqueue/babelqueue-core): install with `implementation("com.babelqueue:babelqueue-core:1.0.0")` - [.NET SDK on NuGet](https://www.nuget.org/packages/BabelQueue.Core): install with `dotnet add package BabelQueue.Core`