mq-bridge-basic 1.0.0__tar.gz → 1.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/app.yml +70 -4
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/ci.yml +3 -3
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/examples.yml +12 -1
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/ibm-mq.yml +24 -21
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/CHANGELOG.md +109 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/Cargo.lock +52 -45
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/Cargo.toml +7 -6
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/PKG-INFO +1 -1
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/README.md +6 -1
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/docs/PLUGINS.md +6 -1
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/docs/REFERENCE.md +85 -34
- mq_bridge_basic-1.0.2/examples/llm-ticket-triage/README.md +50 -0
- mq_bridge_basic-1.0.2/examples/llm-ticket-triage/docker-compose.yml +33 -0
- mq_bridge_basic-1.0.2/examples/llm-ticket-triage/routes.yaml +33 -0
- mq_bridge_basic-1.0.2/examples/llm-ticket-triage/test.sh +44 -0
- mq_bridge_basic-1.0.2/examples/llm-ticket-triage/tickets.jsonl +6 -0
- mq_bridge_basic-1.0.2/examples/mongodb-to-meilisearch/README.md +45 -0
- mq_bridge_basic-1.0.2/examples/mongodb-to-meilisearch/docker-compose.yml +38 -0
- mq_bridge_basic-1.0.2/examples/mongodb-to-meilisearch/init.js +17 -0
- mq_bridge_basic-1.0.2/examples/mongodb-to-meilisearch/routes.yaml +24 -0
- mq_bridge_basic-1.0.2/examples/mongodb-to-meilisearch/search.sh +6 -0
- mq_bridge_basic-1.0.2/examples/mongodb-to-meilisearch/test.sh +40 -0
- mq_bridge_basic-1.0.2/examples/order-features/README.md +44 -0
- mq_bridge_basic-1.0.2/examples/order-features/docker-compose.yml +21 -0
- mq_bridge_basic-1.0.2/examples/order-features/init.sql +18 -0
- mq_bridge_basic-1.0.2/examples/order-features/routes.yaml +34 -0
- mq_bridge_basic-1.0.2/examples/order-features/test.sh +48 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/llms.txt +12 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/mq-bridge.schema.json +135 -9
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/mq_bridge/config.py +2 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/mq_bridge/config.pyi +16 -3
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/scripts/gen_config_types.py +3 -3
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/analysis/http/mq_bridge_http_profile.rs +199 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/http/mod.rs +1 -0
- mq_bridge_basic-1.0.2/src/endpoints/http/pool.rs +242 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/http/publisher.rs +22 -98
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/http/tests.rs +82 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/http_bulk/auth.rs +56 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/http_bulk/consumer.rs +249 -29
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/http_bulk/mod.rs +2 -2
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/http_bulk/presets.rs +37 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/http_bulk/publisher.rs +274 -54
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/kafka.rs +659 -47
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/nats.rs +63 -7
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/postgres/mod.rs +3 -1
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/sqlx/mod.rs +98 -4
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/aggregate/mod.rs +143 -47
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/aggregate/tests.rs +105 -2
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/filter.rs +15 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/lookup.rs +134 -59
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/mod.rs +1 -1
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/transform/mod.rs +16 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/models/serde_support.rs +67 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/models/tests.rs +51 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/models.rs +36 -2
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/plugin/endpoint.rs +46 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/plugin/middleware.rs +107 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/plugin/test_support.rs +21 -3
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/config_schema.rs +48 -7
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/amqp.rs +0 -27
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/aws.rs +2 -32
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/ibm_mq.rs +10 -4
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/kafka.rs +2 -30
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/mariadb.rs +2 -20
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/memory.rs +0 -9
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/mongodb.rs +0 -27
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/mqtt.rs +2 -30
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/mysql.rs +2 -20
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/nats.rs +2 -113
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/postgres.rs +2 -29
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/redis_streams.rs +2 -95
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration_test.rs +0 -75
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.cargo/config.toml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.coderabbit.yaml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.dockerignore +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.gitattributes +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/dependabot.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/benchmark.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/build-node.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/conda.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/docs.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/node.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/publish-node.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/publish-python.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/python.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/release.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.github/workflows/test-matrix.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.gitignore +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/.justfile +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/AGENTS.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/CLAUDE.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/CONTRIBUTING.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/LICENSE +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/LICENSE-APACHE +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/LICENSE-APACHE.python +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/LICENSE-MIT +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/LICENSE-MIT.python +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/LICENSE.python +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/SECURITY.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/THIRD_PARTY_LICENSES.txt +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/benches/csv_to_json_bench.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/benches/middleware_expr_bench.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/benches/pack_bench.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/benches/performance_bench.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/benches/router_bench.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/benches/zeromq_backends.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/bindings-common/Cargo.toml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/bindings-common/src/lib.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/bindings-common/src/logging.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/build.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/deny.toml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/docs/ARCHITECTURE.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/docs/CAPABILITIES.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/docs/CONFIGURATION.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/docs/DELIVERY.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/docs/EXTENDING.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/docs/GRPC.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/docs/THIRD_PARTY_LICENSES.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/docs/assets/copy-demo.png +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/c-library/publish.c +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/c-library/smoke.c +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/c-plugin/CMakeLists.txt +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/c-plugin/README.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/c-plugin/legacy_ledger.c +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/c-plugin/legacy_ledger.h +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/c-plugin/legacy_parser.c +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/c-plugin/legacy_parser.h +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/c-plugin/minimal.c +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/c-plugin/plugin.c +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/ipc_worker_queue.yaml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/postgres-cdc-to-qdrant/README.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/postgres-cdc-to-qdrant/docker-compose.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/postgres-cdc-to-qdrant/init.sql +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/postgres-cdc-to-qdrant/routes.yaml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/postgres-cdc-to-qdrant/search.sh +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/postgres-cdc-to-qdrant/test.sh +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/transactional-outbox/README.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/transactional-outbox/consume.sh +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/transactional-outbox/docker-compose.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/transactional-outbox/init.sql +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/transactional-outbox/routes.yaml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/examples/transactional-outbox/test.sh +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/include/cbindgen.toml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/include/mq_bridge.h +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/include/mq_bridge_plugin.h +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/include/mq_bridge_plugin_helpers.h +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/mq_bridge/__init__.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/mq_bridge/__init__.pyi +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/mq_bridge/plugin_packaging.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/mq_bridge/py.typed +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/package-lock.json +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/pyproject.toml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/Cargo.toml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/LICENSE-APACHE.python +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/LICENSE-MIT.python +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/LICENSE.python +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/README.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/THIRD_PARTY_LICENSES.txt +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/analysis/bench_http_native.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/example.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/examples/IBM_MQ.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/examples/bench_memory.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/examples/bench_memory.yaml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/examples/consume_pull.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/examples/dlt_source.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/examples/ibm-mq-input.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/examples/json_route.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/examples/memory.yaml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/examples/raw_route.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/pyproject-basic.toml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/pyproject-reduced.toml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/src/lib.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/tests/test_config_types.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/tests/test_custom_endpoint.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/tests/test_logging.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/tests/test_packaging.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/tests/test_performance_smoke.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/tests/test_plugin_package.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/tests/test_public_api.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/tests/test_routes.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/tests/test_shutdown.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/python/mq-bridge-py/uv.lock +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/rustfmt.toml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/analysis/benches/metadata_bench.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/analysis/debug_ibm_mq_tls.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/analysis/http/analyze_xctrace_time_profile.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/analysis/http/http_flamegraph.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/analysis/http/run_http_ladder.sh +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/ci/check_third_party_notices.sh +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/ci/format_bench_output.sh +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/httparena/README.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/httparena/frameworks/mq-bridge-py/Dockerfile +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/httparena/frameworks/mq-bridge-py/meta.json +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/httparena/frameworks/mq-bridge-py/server.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/httparena/frameworks/mq-bridge-py/templates/fortunes.html +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/mqb-agent.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/sync-version.mjs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/techempower/Python/mq-bridge-py/README.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/techempower/Python/mq-bridge-py/benchmark_config.json +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/techempower/Python/mq-bridge-py/mq-bridge-py.dockerfile +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/techempower/Python/mq-bridge-py/server.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/techempower/README.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/techempower/postgres.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/techempower/seed.sql +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/techempower/verify.sh +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/the-benchmarker/README.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/the-benchmarker/python/mq-bridge-py/config.yaml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/the-benchmarker/python/mq-bridge-py/pyproject.toml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/scripts/the-benchmarker/python/mq-bridge-py/server.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/canonical_message.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/checkpoint.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/command_handler.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/config_file.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/amqp.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/aws.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/capabilities.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/clickhouse.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/dir_spool/mod.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/dir_spool/tests.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/file/csv_dialect.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/file/mod.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/file/tests.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/grpc/consumer.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/grpc/dynamic.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/grpc/mod.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/grpc/proto/mqbridge/bridge.proto +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/grpc/publisher.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/grpc/server.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/grpc/tests.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/http/stream.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/http_bulk/query.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/ibm_mq.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/memory/endpoint.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/memory/framed.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/memory/ipc_unix.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/memory/ipc_windows.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/memory/memory_transport.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/memory/mod.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/memory/transport.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/mod.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/mongodb/aggregate.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/mongodb/consumer.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/mongodb/dedup.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/mongodb/mod.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/mongodb/publisher.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/mongodb/readers.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/mongodb/tests.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/mqtt.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/object_store.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/poll.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/postgres/VENDORED.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/postgres/pgoutput/decoder.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/postgres/pgoutput/messages.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/postgres/pgoutput/mod.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/postgres/pgoutput/registry.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/postgres/pgoutput/values.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/postgres/replication.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/postgres/state.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/redis_streams.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/sled.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/sqlx/aggregate.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/sqlx/columns.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/sqlx/dedup.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/sqlx/tests.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/structural/fanout.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/structural/mod.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/structural/null.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/structural/reader.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/structural/request.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/structural/response.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/structural/sequence.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/structural/static_endpoint.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/structural/stream_buffer.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/structural/switch.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/websocket.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/zeromq/codec.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/zeromq/mod.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/zeromq/omq.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/endpoints/zeromq/zmq.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/errors.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/event_handler.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/event_store.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/extensions.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/lib.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/aggregate/states.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/aggregate/store.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/aggregate/writer.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/buffer.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/compression.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/cookie_jar.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/deduplication/memory.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/deduplication.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/deferred_commit.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/delay.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/dlq.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/encryption.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/id.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/limiter.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/metrics.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/otel.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/pack.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/random_panic.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/raw_json.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/retry.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/timeout.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/transform/coerce.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/transform/compiled.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/transform/error.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/transform/path.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/transform/schema.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/transform/tests.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/middleware/weak_join.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/models/builders.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/models/defaults.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/models/secrets.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/outcomes.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/plugin/completion.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/plugin/conformance.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/plugin/crash.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/plugin/discovery.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/plugin/forward.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/plugin/host.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/plugin/message.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/plugin/mod.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/plugin/sdk.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/publisher.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/response.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/route.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/shutdown.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/base64_engine.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/change_op.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/compression.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/compression_pool.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/connection_registry.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/crypto.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/crypto_envelope.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/http_status.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/interpolation.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/lookup_batch.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/mod.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/ndjson.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/pack.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/parallel.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/parquet.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/plugin_abi.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/poll_job.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/redact.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/source_ranges.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/sse.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/stream_batch.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/tls.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/support/tls_check.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/test_utils.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/traits.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/src/type_handler.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/README.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/armature_integration.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/compat/python/bridge_client.py +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/dedup_store_bench.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/delivery_guarantee_test.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/full_plugin_fallback_test.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/clickhouse.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/config.toml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/contract.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/amqp.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/aws.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/clickhouse.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/ibm-mq-certs/client.crl +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/ibm-mq-certs/client.kdb +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/ibm-mq-certs/client.p12 +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/ibm-mq-certs/client.rdb +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/ibm-mq-certs/client.sth +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/ibm_mq.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/ibm_mq_tls.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/kafka-tls.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/kafka.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/mariadb.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/mongodb-replica.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/mongodb-tls.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/mongodb.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/mosquitto.conf +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/mosquitto_performance.conf +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/mosquitto_persistence.conf +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/mq_init.mqsc +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/mq_init_tls.mqsc +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/mqtt.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/mqtt_performance.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/mysql.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/nats.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/object_store.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/postgres.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/postgres_cdc.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/docker-compose/redis.yml +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/file.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/grpc.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/grpc_tls.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/http.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/http_tls.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/ibm_mq_tls.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/ipc.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/kafka_tls.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/logic_test.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/mod.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/mongodb_raw.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/mongodb_tls.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/object_store.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/performance_static.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/postgres_cdc.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/route.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/scripts/gen_certs.sh +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/sqlite.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/tls_helpers.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/websocket.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/integration/zeromq.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/memory_leak_test.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/otel_test.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/plugin_loading_latch_test.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/ref_test.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/reference_docs_test.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/sqlite_test.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/tls_example.rs +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/unit_tests.md +0 -0
- {mq_bridge_basic-1.0.0 → mq_bridge_basic-1.0.2}/tests/websocket_test.rs +0 -0
|
@@ -238,24 +238,29 @@ jobs:
|
|
|
238
238
|
# cargo reports the binary it just built; a restored cache can leave several
|
|
239
239
|
# older `cli_copy_docker_test-<hash>` files next to it, so globbing deps/
|
|
240
240
|
# would pick an arbitrary one.
|
|
241
|
-
- name: Build the docker test
|
|
241
|
+
- name: Build the docker test binaries
|
|
242
242
|
working-directory: apps/mq-bridge-app
|
|
243
243
|
shell: bash
|
|
244
244
|
run: |
|
|
245
|
-
cargo test -p mq-bridge-app --test cli_copy_docker_test
|
|
245
|
+
cargo test -p mq-bridge-app --test cli_copy_docker_test \
|
|
246
|
+
--test cli_scenario_docker_test --no-run \
|
|
246
247
|
--message-format=json > "$RUNNER_TEMP/build.json"
|
|
247
248
|
jq -r 'select(.target.name == "cli_copy_docker_test") | .executable // empty' \
|
|
248
249
|
"$RUNNER_TEMP/build.json" | tail -1 > "$RUNNER_TEMP/test-binary"
|
|
250
|
+
jq -r 'select(.target.name == "cli_scenario_docker_test") | .executable // empty' \
|
|
251
|
+
"$RUNNER_TEMP/build.json" | tail -1 > "$RUNNER_TEMP/scenario-binary"
|
|
249
252
|
jq -r 'select(.target.name == "mq-bridge-app"
|
|
250
253
|
and (.target.kind // [] | index("bin"))) | .executable // empty' \
|
|
251
254
|
"$RUNNER_TEMP/build.json" | tail -1 > "$RUNNER_TEMP/cli-binary"
|
|
252
|
-
test -s "$RUNNER_TEMP/test-binary" && test -s "$RUNNER_TEMP/
|
|
255
|
+
test -s "$RUNNER_TEMP/test-binary" && test -s "$RUNNER_TEMP/scenario-binary" \
|
|
256
|
+
&& test -s "$RUNNER_TEMP/cli-binary"
|
|
253
257
|
|
|
254
258
|
- name: Collect binaries
|
|
255
259
|
shell: bash
|
|
256
260
|
run: |
|
|
257
261
|
mkdir -p docker-suite
|
|
258
262
|
cp "$(cat "$RUNNER_TEMP/test-binary")" docker-suite/test-binary
|
|
263
|
+
cp "$(cat "$RUNNER_TEMP/scenario-binary")" docker-suite/scenario-binary
|
|
259
264
|
cp "$(cat "$RUNNER_TEMP/cli-binary")" docker-suite/mq-bridge-app
|
|
260
265
|
cp "$RUNNER_TEMP/cli-binary" docker-suite/cli-path
|
|
261
266
|
|
|
@@ -291,7 +296,7 @@ jobs:
|
|
|
291
296
|
cli="$(cat docker-suite/cli-path)"
|
|
292
297
|
mkdir -p "$(dirname "$cli")"
|
|
293
298
|
mv docker-suite/mq-bridge-app "$cli"
|
|
294
|
-
chmod +x "$cli" docker-suite/test-binary
|
|
299
|
+
chmod +x "$cli" docker-suite/test-binary docker-suite/scenario-binary
|
|
295
300
|
|
|
296
301
|
- name: Install runtime libraries
|
|
297
302
|
timeout-minutes: 5
|
|
@@ -335,3 +340,64 @@ jobs:
|
|
|
335
340
|
echo "::error::failed backends: ${failed[*]}"
|
|
336
341
|
exit 1
|
|
337
342
|
fi
|
|
343
|
+
|
|
344
|
+
# Route-level scenarios through the binary: broker restarts, SIGTERM and
|
|
345
|
+
# `kill -9` resumes. A job of its own so these slower runs never hold up the
|
|
346
|
+
# copy matrix above; same binaries, same one-backend-at-a-time loop.
|
|
347
|
+
docker-scenario:
|
|
348
|
+
name: App docker — Scenarios
|
|
349
|
+
runs-on: ubuntu-latest
|
|
350
|
+
needs: docker-build
|
|
351
|
+
steps:
|
|
352
|
+
- uses: actions/checkout@v7
|
|
353
|
+
|
|
354
|
+
- name: Download docker suite binaries
|
|
355
|
+
uses: actions/download-artifact@v8
|
|
356
|
+
with:
|
|
357
|
+
name: app-docker-suite
|
|
358
|
+
path: docker-suite
|
|
359
|
+
|
|
360
|
+
- name: Restore binaries
|
|
361
|
+
shell: bash
|
|
362
|
+
run: |
|
|
363
|
+
cli="$(cat docker-suite/cli-path)"
|
|
364
|
+
mkdir -p "$(dirname "$cli")"
|
|
365
|
+
mv docker-suite/mq-bridge-app "$cli"
|
|
366
|
+
chmod +x "$cli" docker-suite/scenario-binary
|
|
367
|
+
|
|
368
|
+
- name: Install runtime libraries
|
|
369
|
+
timeout-minutes: 5
|
|
370
|
+
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev libssl-dev zlib1g-dev
|
|
371
|
+
|
|
372
|
+
# Name filter plus MQB_TEST_BACKEND, and a zero-test run fails, for the
|
|
373
|
+
# reasons given on the copy loop above.
|
|
374
|
+
- name: Run the scenarios one backend after another
|
|
375
|
+
timeout-minutes: 30
|
|
376
|
+
shell: bash
|
|
377
|
+
run: |
|
|
378
|
+
failed=()
|
|
379
|
+
for backend in kafka postgres nats amqp mqtt mongodb mysql mariadb; do
|
|
380
|
+
stack="$backend"
|
|
381
|
+
# CDC needs logical replication; the cursor scenarios run on it too.
|
|
382
|
+
[ "$backend" = postgres ] && stack=postgres_cdc
|
|
383
|
+
compose="tests/integration/docker-compose/$stack.yml"
|
|
384
|
+
echo "::group::$backend"
|
|
385
|
+
ok=1
|
|
386
|
+
docker compose -f "$compose" up -d --wait --wait-timeout 300 || ok=0
|
|
387
|
+
if [ "$ok" = 1 ]; then
|
|
388
|
+
MQB_TEST_BACKEND="$backend" ./docker-suite/scenario-binary \
|
|
389
|
+
--ignored --test-threads=1 "$backend" 2>&1 | tee result.log || ok=0
|
|
390
|
+
grep -qE 'test result: ok\. [1-9]' result.log \
|
|
391
|
+
|| { echo "no $backend scenarios ran"; ok=0; }
|
|
392
|
+
fi
|
|
393
|
+
if [ "$ok" = 0 ]; then
|
|
394
|
+
failed+=("$backend")
|
|
395
|
+
docker compose -f "$compose" logs --tail 200 || true
|
|
396
|
+
fi
|
|
397
|
+
docker compose -f "$compose" down -v --remove-orphans || true
|
|
398
|
+
echo "::endgroup::"
|
|
399
|
+
done
|
|
400
|
+
if [ "${#failed[@]}" -gt 0 ]; then
|
|
401
|
+
echo "::error::failed backends: ${failed[*]}"
|
|
402
|
+
exit 1
|
|
403
|
+
fi
|
|
@@ -208,12 +208,10 @@ jobs:
|
|
|
208
208
|
include:
|
|
209
209
|
- name: Status
|
|
210
210
|
filter: 'binary(integration_test) & test(=test_all_status)'
|
|
211
|
-
- name: Chaos
|
|
212
|
-
filter: 'binary(integration_test) & test(=test_all_chaos)'
|
|
213
211
|
- name: Logic
|
|
214
212
|
filter: 'binary(integration_test) & (test(=test_all_request_reply) | test(=test_all_subscriber_logic))'
|
|
215
213
|
- name: Endpoints
|
|
216
|
-
filter: 'binary(integration_test) & not test(=test_all_status) & not test(=
|
|
214
|
+
filter: 'binary(integration_test) & not test(=test_all_status) & not test(=test_all_request_reply) & not test(=test_all_subscriber_logic) & not test(=test_all_performance_pipeline) & not test(=test_all_performance_direct)'
|
|
217
215
|
- name: Performance Pipeline
|
|
218
216
|
filter: 'binary(integration_test) & test(=test_all_performance_pipeline)'
|
|
219
217
|
- name: Performance Direct
|
|
@@ -270,9 +268,11 @@ jobs:
|
|
|
270
268
|
|
|
271
269
|
# Armature clones an external repo and runs its test suite: no docker stacks, no
|
|
272
270
|
# TLS certs, no keytool. It used to pay ~1.3m of setup for 1.7m of tests.
|
|
271
|
+
# Advisory: it builds armature's `develop` head unlocked, so their breakage shows here.
|
|
273
272
|
integration-armature:
|
|
274
273
|
name: Integration — Armature
|
|
275
274
|
runs-on: ubuntu-latest
|
|
275
|
+
continue-on-error: true
|
|
276
276
|
needs: integration-build
|
|
277
277
|
steps:
|
|
278
278
|
- uses: actions/checkout@v7
|
|
@@ -8,12 +8,18 @@ on:
|
|
|
8
8
|
- "examples/postgres-cdc-to-qdrant/**"
|
|
9
9
|
- "examples/transactional-outbox/**"
|
|
10
10
|
- "examples/test-without-a-broker/**"
|
|
11
|
+
- "examples/mongodb-to-meilisearch/**"
|
|
12
|
+
- "examples/llm-ticket-triage/**"
|
|
13
|
+
- "examples/order-features/**"
|
|
11
14
|
- ".github/workflows/examples.yml"
|
|
12
15
|
pull_request:
|
|
13
16
|
paths:
|
|
14
17
|
- "examples/postgres-cdc-to-qdrant/**"
|
|
15
18
|
- "examples/transactional-outbox/**"
|
|
16
19
|
- "examples/test-without-a-broker/**"
|
|
20
|
+
- "examples/mongodb-to-meilisearch/**"
|
|
21
|
+
- "examples/llm-ticket-triage/**"
|
|
22
|
+
- "examples/order-features/**"
|
|
17
23
|
- ".github/workflows/examples.yml"
|
|
18
24
|
workflow_dispatch:
|
|
19
25
|
|
|
@@ -32,7 +38,12 @@ jobs:
|
|
|
32
38
|
strategy:
|
|
33
39
|
fail-fast: false
|
|
34
40
|
matrix:
|
|
35
|
-
example:
|
|
41
|
+
example:
|
|
42
|
+
- postgres-cdc-to-qdrant
|
|
43
|
+
- transactional-outbox
|
|
44
|
+
- mongodb-to-meilisearch
|
|
45
|
+
- llm-ticket-triage
|
|
46
|
+
- order-features
|
|
36
47
|
steps:
|
|
37
48
|
- uses: actions/checkout@v7
|
|
38
49
|
with:
|
|
@@ -62,15 +62,23 @@ jobs:
|
|
|
62
62
|
${{ runner.os }}-cargo-ibmmq-
|
|
63
63
|
${{ runner.os }}-cargo-
|
|
64
64
|
|
|
65
|
+
# Only a cache miss reaches IBM's download host.
|
|
66
|
+
- name: Cache IBM MQ redist archive
|
|
67
|
+
uses: actions/cache@v6
|
|
68
|
+
with:
|
|
69
|
+
path: ~/ibm-mq-redist
|
|
70
|
+
key: ibm-mq-redist-${{ env.IBM_MQ_REDIST_SHA256 }}
|
|
71
|
+
|
|
65
72
|
- name: Install IBM MQ Client Libraries
|
|
66
73
|
id: mqclient
|
|
67
74
|
run: |
|
|
68
|
-
|
|
69
|
-
archive_name="$(basename "$archive_url")"
|
|
75
|
+
archive_name="$HOME/ibm-mq-redist/$(basename "$IBM_MQ_REDIST_URL")"
|
|
70
76
|
# IBM's download host is occasionally unreachable from runners. Treat a
|
|
71
77
|
# download failure as infrastructure flakiness and skip the rest of the
|
|
72
78
|
# job (see `if:` guards below). Checksum/extract failures still fail.
|
|
73
|
-
|
|
79
|
+
# Download outside the cached dir so a failure never caches an empty one.
|
|
80
|
+
tmp="$RUNNER_TEMP/$(basename "$archive_name")"
|
|
81
|
+
if [ ! -f "$archive_name" ] && ! { curl -fsSL --retry 5 --retry-all-errors --retry-delay 5 --connect-timeout 30 -o "$tmp" "$IBM_MQ_REDIST_URL" && mkdir -p "$(dirname "$archive_name")" && mv "$tmp" "$archive_name"; }; then
|
|
74
82
|
echo "::warning::IBM MQ redist download failed (host unreachable); skipping IBM MQ build."
|
|
75
83
|
echo "available=false" >> "$GITHUB_OUTPUT"
|
|
76
84
|
exit 0
|
|
@@ -131,15 +139,23 @@ jobs:
|
|
|
131
139
|
${{ runner.os }}-cargo-ibmmq-
|
|
132
140
|
${{ runner.os }}-cargo-
|
|
133
141
|
|
|
142
|
+
# Only a cache miss reaches IBM's download host.
|
|
143
|
+
- name: Cache IBM MQ redist archive
|
|
144
|
+
uses: actions/cache@v6
|
|
145
|
+
with:
|
|
146
|
+
path: ~/ibm-mq-redist
|
|
147
|
+
key: ibm-mq-redist-${{ env.IBM_MQ_REDIST_SHA256 }}
|
|
148
|
+
|
|
134
149
|
- name: Install IBM MQ Client Libraries
|
|
135
150
|
id: mqclient
|
|
136
151
|
run: |
|
|
137
|
-
|
|
138
|
-
archive_name="$(basename "$archive_url")"
|
|
152
|
+
archive_name="$HOME/ibm-mq-redist/$(basename "$IBM_MQ_REDIST_URL")"
|
|
139
153
|
# IBM's download host is occasionally unreachable from runners. Treat a
|
|
140
154
|
# download failure as infrastructure flakiness and skip the rest of the
|
|
141
155
|
# job (see `if:` guards below). Checksum/extract failures still fail.
|
|
142
|
-
|
|
156
|
+
# Download outside the cached dir so a failure never caches an empty one.
|
|
157
|
+
tmp="$RUNNER_TEMP/$(basename "$archive_name")"
|
|
158
|
+
if [ ! -f "$archive_name" ] && ! { curl -fsSL --retry 5 --retry-all-errors --retry-delay 5 --connect-timeout 30 -o "$tmp" "$IBM_MQ_REDIST_URL" && mkdir -p "$(dirname "$archive_name")" && mv "$tmp" "$archive_name"; }; then
|
|
143
159
|
echo "::warning::IBM MQ redist download failed (host unreachable); skipping IBM MQ integration tests."
|
|
144
160
|
echo "available=false" >> "$GITHUB_OUTPUT"
|
|
145
161
|
exit 0
|
|
@@ -188,7 +204,7 @@ jobs:
|
|
|
188
204
|
--ignored --nocapture --test-threads=1 \
|
|
189
205
|
test_all_subscriber_logic \
|
|
190
206
|
test_all_performance_pipeline \
|
|
191
|
-
|
|
207
|
+
test_ibm_mq_chaos \
|
|
192
208
|
test_all_status
|
|
193
209
|
|
|
194
210
|
- name: Run IBM MQ TLS tests
|
|
@@ -223,20 +239,7 @@ jobs:
|
|
|
223
239
|
restore-keys: |
|
|
224
240
|
${{ runner.os }}-cargo-ibmmq-
|
|
225
241
|
|
|
226
|
-
-
|
|
227
|
-
run: |
|
|
228
|
-
archive_url="$IBM_MQ_REDIST_URL"
|
|
229
|
-
archive_name="$(basename "$archive_url")"
|
|
230
|
-
curl -fsSLO --retry 5 --retry-all-errors --retry-delay 5 --connect-timeout 30 "$archive_url"
|
|
231
|
-
echo "${IBM_MQ_REDIST_SHA256} ${archive_name}" | sha256sum -c -
|
|
232
|
-
# The redist archive extracts a self-contained MQ install tree
|
|
233
|
-
# (bin/, lib64/, inc/, ...) with no top-level mqm/ dir, so unpack
|
|
234
|
-
# it directly into the installation path.
|
|
235
|
-
sudo mkdir -p /opt/mqm
|
|
236
|
-
sudo tar -xzf "$archive_name" -C /opt/mqm
|
|
237
|
-
echo "LD_LIBRARY_PATH=/opt/mqm/lib64:$LD_LIBRARY_PATH" >> $GITHUB_ENV
|
|
238
|
-
echo "MQ_INSTALLATION_PATH=/opt/mqm" >> $GITHUB_ENV
|
|
239
|
-
|
|
242
|
+
# `ibm-mq` loads the client at runtime, so rustdoc needs no IBM MQ SDK.
|
|
240
243
|
- name: Build documentation
|
|
241
244
|
run: cargo doc --features ibm-mq --no-deps
|
|
242
245
|
|
|
@@ -2,6 +2,115 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `mq-bridge`. Newest first.
|
|
4
4
|
|
|
5
|
+
## 1.0.2
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **A `kafka` source reads several topics.** `topic` takes a list (`[orders.eu, orders.us]`)
|
|
10
|
+
or a comma-separated string, and one consumer group shares the partitions of all of them;
|
|
11
|
+
`--drain` ends once every listed topic is read to its end. A name starting with `^` is a
|
|
12
|
+
librdkafka regex. It already reached librdkafka before, but a drain over it could not see
|
|
13
|
+
the partitions its peers held or a late group join, and could end early; a drain now
|
|
14
|
+
refuses a pattern. A `kafka` output with a list or a
|
|
15
|
+
pattern fails at startup instead of writing to a topic named after it. On the CLI the list
|
|
16
|
+
is `?topic=a,b`. Over several topics, a record without an mq-bridge id gets a fallback id
|
|
17
|
+
that includes its topic, so the same partition and offset in two topics stay apart.
|
|
18
|
+
- **An agent skill for the CLI.** `apps/mq-bridge-app/agent-skills` teaches Claude Code,
|
|
19
|
+
Codex and other agents that read `SKILL.md` to use `mqb list`, `describe`, `copy` and
|
|
20
|
+
config files. Install it with `npx skills add marcomq/mq-bridge`.
|
|
21
|
+
- **A `lookup` through a plugin is one call per batch.** A plugin with ABI 1.2 or newer
|
|
22
|
+
answers the whole batch in one `send_batch`, and each request fails on its own. An older
|
|
23
|
+
plugin, or a batch with repeated message ids, is still asked one request at a time.
|
|
24
|
+
- **`transform`, `filter` and plugin middlewares on a lookup's `from` keep it batched.**
|
|
25
|
+
They used to turn a batching `from` into one request per message. A request the middleware
|
|
26
|
+
drops fails as before; a plugin that fails the batch falls back to one request at a time.
|
|
27
|
+
- **`x-mqb-uri: filepath` for plugin schemas.** Like `path`, but the leading `/` stays, so
|
|
28
|
+
`x:///models/a.onnx` gives `/models/a.onnx`. A plugin that uses it needs this release:
|
|
29
|
+
1.0.1 refuses to load it.
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- **The JSON schema accepts the descriptive format names.** `format: envelope`, `payload`,
|
|
34
|
+
`envelope_json` and `envelope_text` no longer show as invalid in an editor that validates
|
|
35
|
+
against `mq-bridge.schema.json`, and `mqb describe` lists them. The UI keeps showing one
|
|
36
|
+
entry per format.
|
|
37
|
+
|
|
38
|
+
## 1.0.1
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
|
|
42
|
+
- **`mqb list` and `mqb describe <name>`** show the endpoints and middlewares this build
|
|
43
|
+
supports: URI form, an example and the typed parameters, as text or with `--json`. The MCP
|
|
44
|
+
server offers the same data as the `describe` tool.
|
|
45
|
+
- **`aggregate` `fields` take `decayed_count(half_life)` and `decayed_sum(path, half_life)`.**
|
|
46
|
+
Counts and totals that fade instead of dropping out of a window: at a steady rate they
|
|
47
|
+
settle at about the last 1.44 half-lives. A short and a long half-life side by side show
|
|
48
|
+
whether a key's activity rises above its own usual level.
|
|
49
|
+
- **`mqb.aggregate.overwrite: true` metadata folds a message as the newest one**, even if it is
|
|
50
|
+
older: `last` takes its value and the state's clock moves to its time. It repairs a state
|
|
51
|
+
that a wrong `time` pushed into the future.
|
|
52
|
+
- **`http_bulk` `delete.line` works in every shape.** It is a template per id
|
|
53
|
+
(`${payload:_rev}` works) and becomes an array entry with `envelope` or a list entry with
|
|
54
|
+
`{ids}` in the path, e.g. a quoted PostgREST `in.(…)` list or CouchDB `_deleted` documents.
|
|
55
|
+
A line that is no JSON fails only its message.
|
|
56
|
+
- **`http_bulk` `upsert.max_documents`** caps the documents per request.
|
|
57
|
+
- **`http_bulk` `result.items.index`** matches entries by the position they name, so a response
|
|
58
|
+
may list only the failures (BigQuery `insertErrors`).
|
|
59
|
+
- **`http_bulk` `result.items.success`** fails an entry whose status is not the given value,
|
|
60
|
+
even without an error text (SES `Status` other than `SUCCESS`).
|
|
61
|
+
- **`http_bulk` reads follow next-page URLs**: `read.cursor.next_url` (a URL in the body) or
|
|
62
|
+
`read.cursor.link` (the `Link` header's `rel="next"`). The next URL is checkpointed; one on
|
|
63
|
+
another host stops the read, so credentials stay with the configured host.
|
|
64
|
+
- **`openai_chat` and `openai_embeddings` take `auth`** (`oauth2` or `aws_sigv4`) as `http_bulk`
|
|
65
|
+
does, e.g. for Amazon Bedrock.
|
|
66
|
+
- `StubHttpServer::start_with_headers` in `plugin::test_support` adds response headers.
|
|
67
|
+
- **CLI URIs take `mongodb+srv://`, `redis+unix://`, `valkey://`, `valkeys://` and
|
|
68
|
+
`valkey+unix://`** directly, without the `url=` escape.
|
|
69
|
+
|
|
70
|
+
### Changed
|
|
71
|
+
|
|
72
|
+
- **A late message in `aggregate` `fields` now counts with the weight it would have had by
|
|
73
|
+
then**, 0.5 per half-life it is late, instead of fully. `ema`, `ema_stddev` and
|
|
74
|
+
`ema_variance` with a half-life now give the same result in any arrival order, across
|
|
75
|
+
batches and instances too. `ema(path, alpha)` is unchanged.
|
|
76
|
+
- **With `time` or a half-life field, `last` keeps the value of the newest message**; a late
|
|
77
|
+
message used to overwrite it.
|
|
78
|
+
|
|
79
|
+
### Fixed
|
|
80
|
+
|
|
81
|
+
- **A PostgreSQL `cursor_column` source no longer skips a row whose transaction commits
|
|
82
|
+
after a later row was read.** A `serial` id taken by a long transaction used to be passed
|
|
83
|
+
by the cursor and never read. Each page now stops before the first row written by a
|
|
84
|
+
transaction that is not older than every open one; a view, which has no `xmin`, keeps the
|
|
85
|
+
old behaviour and logs a warning. While a write transaction stays open on the server, newer
|
|
86
|
+
rows wait for it.
|
|
87
|
+
- **A Kafka drain restarted right after a crash no longer fails** with "was not assigned a
|
|
88
|
+
partition". The dead member holds the group for `session.timeout.ms` (45 s), longer than the
|
|
89
|
+
30 s the drain waited; the wait now outlasts the configured session timeout by 15 s.
|
|
90
|
+
`MQ_BRIDGE_DRAIN_JOIN_TIMEOUT_MS` still overrides it.
|
|
91
|
+
- **`postgres_cdc` no longer pins WAL while its published tables are quiet.** Writes to other
|
|
92
|
+
tables advanced the confirmed position in memory, but it reached the server only with the
|
|
93
|
+
next batch, so the slot stayed put and the server kept every WAL segment since. The position
|
|
94
|
+
is now reported as soon as the stream is idle.
|
|
95
|
+
- **A NATS JetStream drain started right after a crash no longer ends early.** What the crashed
|
|
96
|
+
run had pulled stays unacked until the consumer's `ack_wait` (30 s) runs out, so a drain
|
|
97
|
+
started sooner saw nothing, reported success and left those messages for the next run. An
|
|
98
|
+
idle drain now waits, at most `ack_wait`, while the consumer still has undelivered messages
|
|
99
|
+
or unacked ones this process does not hold.
|
|
100
|
+
- **A Kafka drain no longer ends while another member's partitions still lag.** A member that
|
|
101
|
+
finished its own partitions could report success just before the rebalance gave it those of
|
|
102
|
+
a member that had left, and the rows stayed for the next run. Before ending, a drain now
|
|
103
|
+
compares the group's committed offsets on the other partitions with their targets and waits
|
|
104
|
+
while any lag, at most the join wait (`session.timeout.ms` + 15 s); past that, a live member
|
|
105
|
+
owns them and the drain ends as before.
|
|
106
|
+
|
|
107
|
+
### Performance
|
|
108
|
+
|
|
109
|
+
- **The `http` output spends 1.5 to 2.4 µs less per request.** It keeps its own connection
|
|
110
|
+
pool instead of hyper's legacy client: idle HTTP/1 connections are reused most recently used
|
|
111
|
+
first, and an HTTP/2 connection negotiated by ALPN is shared by all requests.
|
|
112
|
+
`pool_idle_timeout_ms` (default 90 s) and `tcp_keepalive_ms` apply as before.
|
|
113
|
+
|
|
5
114
|
## 1.0.0
|
|
6
115
|
|
|
7
116
|
The first stable release. It follows a production-readiness review of the core engine, the
|
|
@@ -1071,25 +1071,29 @@ dependencies = [
|
|
|
1071
1071
|
|
|
1072
1072
|
[[package]]
|
|
1073
1073
|
name = "bit-set"
|
|
1074
|
-
version = "0.
|
|
1074
|
+
version = "0.11.1"
|
|
1075
1075
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1076
|
-
checksum = "
|
|
1076
|
+
checksum = "56d87354e4229f54a44f7bf2435906a4656dba36026ab6eaca629a2c436a691c"
|
|
1077
1077
|
dependencies = [
|
|
1078
|
-
"bit-vec 0.
|
|
1078
|
+
"bit-vec 0.10.1",
|
|
1079
1079
|
]
|
|
1080
1080
|
|
|
1081
1081
|
[[package]]
|
|
1082
1082
|
name = "bit-vec"
|
|
1083
|
-
version = "0.
|
|
1083
|
+
version = "0.9.1"
|
|
1084
1084
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1085
|
-
checksum = "
|
|
1085
|
+
checksum = "b71798fca2c1fe1086445a7258a4bc81e6e49dcd24c8d0dd9a1e57395b603f51"
|
|
1086
|
+
dependencies = [
|
|
1087
|
+
"serde",
|
|
1088
|
+
]
|
|
1086
1089
|
|
|
1087
1090
|
[[package]]
|
|
1088
1091
|
name = "bit-vec"
|
|
1089
|
-
version = "0.
|
|
1092
|
+
version = "0.10.1"
|
|
1090
1093
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1091
|
-
checksum = "
|
|
1094
|
+
checksum = "5727b15fa97d4f4fee0a3b7c3d550ed0269f54329207b86388de918604e31269"
|
|
1092
1095
|
dependencies = [
|
|
1096
|
+
"borsh",
|
|
1093
1097
|
"serde",
|
|
1094
1098
|
]
|
|
1095
1099
|
|
|
@@ -3222,9 +3226,9 @@ dependencies = [
|
|
|
3222
3226
|
|
|
3223
3227
|
[[package]]
|
|
3224
3228
|
name = "lapin"
|
|
3225
|
-
version = "4.12.
|
|
3229
|
+
version = "4.12.1"
|
|
3226
3230
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
3227
|
-
checksum = "
|
|
3231
|
+
checksum = "1f6674e18d68e810f66ea962f8080f1ded75f813c1cd3fae9ed53bab760dfcfd"
|
|
3228
3232
|
dependencies = [
|
|
3229
3233
|
"amq-protocol",
|
|
3230
3234
|
"async-rs",
|
|
@@ -3689,7 +3693,7 @@ dependencies = [
|
|
|
3689
3693
|
|
|
3690
3694
|
[[package]]
|
|
3691
3695
|
name = "mq-bridge"
|
|
3692
|
-
version = "1.0.
|
|
3696
|
+
version = "1.0.2"
|
|
3693
3697
|
dependencies = [
|
|
3694
3698
|
"aes-gcm",
|
|
3695
3699
|
"anyhow",
|
|
@@ -3779,6 +3783,7 @@ dependencies = [
|
|
|
3779
3783
|
"tonic-prost",
|
|
3780
3784
|
"tonic-prost-build",
|
|
3781
3785
|
"tonic-reflection",
|
|
3786
|
+
"tower-service",
|
|
3782
3787
|
"tracing",
|
|
3783
3788
|
"tracing-appender",
|
|
3784
3789
|
"tracing-subscriber",
|
|
@@ -3793,7 +3798,7 @@ dependencies = [
|
|
|
3793
3798
|
|
|
3794
3799
|
[[package]]
|
|
3795
3800
|
name = "mq-bridge-bindings-common"
|
|
3796
|
-
version = "1.0.
|
|
3801
|
+
version = "1.0.2"
|
|
3797
3802
|
dependencies = [
|
|
3798
3803
|
"anyhow",
|
|
3799
3804
|
"fast-uuid-v7",
|
|
@@ -3807,7 +3812,7 @@ dependencies = [
|
|
|
3807
3812
|
|
|
3808
3813
|
[[package]]
|
|
3809
3814
|
name = "mq-bridge-c"
|
|
3810
|
-
version = "1.0.
|
|
3815
|
+
version = "1.0.2"
|
|
3811
3816
|
dependencies = [
|
|
3812
3817
|
"anyhow",
|
|
3813
3818
|
"async-trait",
|
|
@@ -3824,7 +3829,7 @@ dependencies = [
|
|
|
3824
3829
|
|
|
3825
3830
|
[[package]]
|
|
3826
3831
|
name = "mq-bridge-full-plugin"
|
|
3827
|
-
version = "1.0.
|
|
3832
|
+
version = "1.0.2"
|
|
3828
3833
|
dependencies = [
|
|
3829
3834
|
"anyhow",
|
|
3830
3835
|
"async-trait",
|
|
@@ -3835,7 +3840,7 @@ dependencies = [
|
|
|
3835
3840
|
|
|
3836
3841
|
[[package]]
|
|
3837
3842
|
name = "mq-bridge-node"
|
|
3838
|
-
version = "1.0.
|
|
3843
|
+
version = "1.0.2"
|
|
3839
3844
|
dependencies = [
|
|
3840
3845
|
"anyhow",
|
|
3841
3846
|
"async-trait",
|
|
@@ -3890,7 +3895,7 @@ dependencies = [
|
|
|
3890
3895
|
|
|
3891
3896
|
[[package]]
|
|
3892
3897
|
name = "mq-bridge-py"
|
|
3893
|
-
version = "1.0.
|
|
3898
|
+
version = "1.0.2"
|
|
3894
3899
|
dependencies = [
|
|
3895
3900
|
"anyhow",
|
|
3896
3901
|
"async-trait",
|
|
@@ -4315,9 +4320,9 @@ dependencies = [
|
|
|
4315
4320
|
|
|
4316
4321
|
[[package]]
|
|
4317
4322
|
name = "opentelemetry"
|
|
4318
|
-
version = "0.33.
|
|
4323
|
+
version = "0.33.1"
|
|
4319
4324
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4320
|
-
checksum = "
|
|
4325
|
+
checksum = "8c1f1a6ac9c875a4941e4c7c085b61e8f4daa326de03b4701768c3491a6ad9ee"
|
|
4321
4326
|
dependencies = [
|
|
4322
4327
|
"futures-core",
|
|
4323
4328
|
"futures-sink",
|
|
@@ -4328,9 +4333,9 @@ dependencies = [
|
|
|
4328
4333
|
|
|
4329
4334
|
[[package]]
|
|
4330
4335
|
name = "opentelemetry_sdk"
|
|
4331
|
-
version = "0.33.
|
|
4336
|
+
version = "0.33.1"
|
|
4332
4337
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4333
|
-
checksum = "
|
|
4338
|
+
checksum = "372a912db2974d1990207006fd0e3aa0ef3fd4ad3be43c65cfaadf2206866061"
|
|
4334
4339
|
dependencies = [
|
|
4335
4340
|
"futures-channel",
|
|
4336
4341
|
"futures-executor",
|
|
@@ -4940,16 +4945,17 @@ dependencies = [
|
|
|
4940
4945
|
|
|
4941
4946
|
[[package]]
|
|
4942
4947
|
name = "proptest"
|
|
4943
|
-
version = "1.
|
|
4948
|
+
version = "1.12.0"
|
|
4944
4949
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4945
|
-
checksum = "
|
|
4950
|
+
checksum = "b8530004ccb15eae51c7e40009fbe317f341f804db54dc033eec1c50be28cfa0"
|
|
4946
4951
|
dependencies = [
|
|
4947
4952
|
"bit-set",
|
|
4948
|
-
"bit-vec 0.
|
|
4953
|
+
"bit-vec 0.10.1",
|
|
4949
4954
|
"bitflags 2.13.2",
|
|
4955
|
+
"chacha20",
|
|
4956
|
+
"core_detect",
|
|
4950
4957
|
"num-traits",
|
|
4951
|
-
"rand 0.
|
|
4952
|
-
"rand_chacha 0.9.0",
|
|
4958
|
+
"rand 0.10.3",
|
|
4953
4959
|
"rand_xorshift",
|
|
4954
4960
|
"regex-syntax",
|
|
4955
4961
|
"rusty-fork",
|
|
@@ -5370,11 +5376,11 @@ dependencies = [
|
|
|
5370
5376
|
|
|
5371
5377
|
[[package]]
|
|
5372
5378
|
name = "rand_xorshift"
|
|
5373
|
-
version = "0.
|
|
5379
|
+
version = "0.5.0"
|
|
5374
5380
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
5375
|
-
checksum = "
|
|
5381
|
+
checksum = "60aa6af80be32871323012e02e6e65f8a7cc7890931ae421d217ad8fe0df2ccf"
|
|
5376
5382
|
dependencies = [
|
|
5377
|
-
"rand_core 0.
|
|
5383
|
+
"rand_core 0.10.1",
|
|
5378
5384
|
]
|
|
5379
5385
|
|
|
5380
5386
|
[[package]]
|
|
@@ -6181,10 +6187,11 @@ dependencies = [
|
|
|
6181
6187
|
|
|
6182
6188
|
[[package]]
|
|
6183
6189
|
name = "serde_json"
|
|
6184
|
-
version = "1.0.
|
|
6190
|
+
version = "1.0.154"
|
|
6185
6191
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
6186
|
-
checksum = "
|
|
6192
|
+
checksum = "e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6"
|
|
6187
6193
|
dependencies = [
|
|
6194
|
+
"foldhash 0.2.0",
|
|
6188
6195
|
"indexmap",
|
|
6189
6196
|
"itoa",
|
|
6190
6197
|
"memchr",
|
|
@@ -7036,9 +7043,9 @@ dependencies = [
|
|
|
7036
7043
|
|
|
7037
7044
|
[[package]]
|
|
7038
7045
|
name = "tokio-util"
|
|
7039
|
-
version = "0.7.
|
|
7046
|
+
version = "0.7.20"
|
|
7040
7047
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7041
|
-
checksum = "
|
|
7048
|
+
checksum = "e464cf451ba96ebfc6f9b6542f17ee8b8956e33f1e40d9690624e59d7a7f8a4b"
|
|
7042
7049
|
dependencies = [
|
|
7043
7050
|
"bytes",
|
|
7044
7051
|
"futures-core",
|
|
@@ -7545,9 +7552,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
|
|
|
7545
7552
|
|
|
7546
7553
|
[[package]]
|
|
7547
7554
|
name = "uuid"
|
|
7548
|
-
version = "1.
|
|
7555
|
+
version = "1.28.0"
|
|
7549
7556
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
7550
|
-
checksum = "
|
|
7557
|
+
checksum = "7cc1186384beb7dd8eedea376413fd654937285ea6c9cfbb928dc3043ea4b606"
|
|
7551
7558
|
dependencies = [
|
|
7552
7559
|
"getrandom 0.4.3",
|
|
7553
7560
|
"js-sys",
|
|
@@ -8134,9 +8141,9 @@ dependencies = [
|
|
|
8134
8141
|
|
|
8135
8142
|
[[package]]
|
|
8136
8143
|
name = "zen-expression"
|
|
8137
|
-
version = "2.1.
|
|
8144
|
+
version = "2.1.3"
|
|
8138
8145
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
8139
|
-
checksum = "
|
|
8146
|
+
checksum = "d22b5e2c7e25613bebc4361fecbc89fb35eec8f6224565457cf0e4968ef24c79"
|
|
8140
8147
|
dependencies = [
|
|
8141
8148
|
"ahash",
|
|
8142
8149
|
"anyhow",
|
|
@@ -8165,9 +8172,9 @@ dependencies = [
|
|
|
8165
8172
|
|
|
8166
8173
|
[[package]]
|
|
8167
8174
|
name = "zen-macros"
|
|
8168
|
-
version = "2.1.
|
|
8175
|
+
version = "2.1.4"
|
|
8169
8176
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
8170
|
-
checksum = "
|
|
8177
|
+
checksum = "f79020ae3656eb3c6775843066246a403cf6edf020f54658ca665ecbb18e80ab"
|
|
8171
8178
|
dependencies = [
|
|
8172
8179
|
"proc-macro2",
|
|
8173
8180
|
"quote",
|
|
@@ -8177,9 +8184,9 @@ dependencies = [
|
|
|
8177
8184
|
|
|
8178
8185
|
[[package]]
|
|
8179
8186
|
name = "zen-types"
|
|
8180
|
-
version = "2.1.
|
|
8187
|
+
version = "2.1.4"
|
|
8181
8188
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
8182
|
-
checksum = "
|
|
8189
|
+
checksum = "3667fd4c7b01c20db9726cacad4cc77e967a39a07b2e39ccbf4eeebc86d636fd"
|
|
8183
8190
|
dependencies = [
|
|
8184
8191
|
"ahash",
|
|
8185
8192
|
"hipstr",
|
|
@@ -8311,27 +8318,27 @@ checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|
|
|
8311
8318
|
|
|
8312
8319
|
[[package]]
|
|
8313
8320
|
name = "zstd"
|
|
8314
|
-
version = "0.14.
|
|
8321
|
+
version = "0.14.2"
|
|
8315
8322
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
8316
|
-
checksum = "
|
|
8323
|
+
checksum = "057cfd910cfac363a0ada849592624b4c9ff2e10bef504c3433810d78ed96f93"
|
|
8317
8324
|
dependencies = [
|
|
8318
8325
|
"zstd-safe",
|
|
8319
8326
|
]
|
|
8320
8327
|
|
|
8321
8328
|
[[package]]
|
|
8322
8329
|
name = "zstd-safe"
|
|
8323
|
-
version = "8.
|
|
8330
|
+
version = "8.1.0"
|
|
8324
8331
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
8325
|
-
checksum = "
|
|
8332
|
+
checksum = "bdd44c6a7284e91f3717755b24315a302edd9153a01f753c3cba3d765e8eafac"
|
|
8326
8333
|
dependencies = [
|
|
8327
8334
|
"zstd-sys",
|
|
8328
8335
|
]
|
|
8329
8336
|
|
|
8330
8337
|
[[package]]
|
|
8331
8338
|
name = "zstd-sys"
|
|
8332
|
-
version = "2.1.
|
|
8339
|
+
version = "2.1.1+zstd.1.5.7"
|
|
8333
8340
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
8334
|
-
checksum = "
|
|
8341
|
+
checksum = "aeec9eaf2dffbbd09201e23bd0ffcbaa33bb8e9266a10734fd7ed90a85eca078"
|
|
8335
8342
|
dependencies = [
|
|
8336
8343
|
"cc",
|
|
8337
8344
|
"pkg-config",
|