Singer target for Kafka, built with the Meltano Singer SDK.
Project description
target-kafka
target-kafka is a Singer target for Apache Kafka, built with the Meltano Singer SDK. It writes tap output to Kafka topics (one topic per stream) with configurable batching, compression, and message keys. Delivery is at-least-once: on failure, records may be retried and duplicates are possible.
Installation
Install from PyPI:
uv tool install target-kafka
Install from GitHub (replace your-org with your GitHub org or username):
uv tool install git+https://github.com/your-org/target-kafka.git@main
Publishing: To publish to PyPI and add this loader to Meltano Hub, see docs/PUBLISHING.md.
Configuration
Accepted config options
| Setting | Required | Default | Description |
|---|---|---|---|
| bootstrap_servers | Yes | — | Kafka bootstrap servers (comma-separated, e.g. localhost:9092,localhost:9093) |
| topic_prefix | No | "" |
Prefix to add to all topic names |
| key_properties | No | [] |
Record properties to use as Kafka message key (empty = round-robin partition) |
| batch_size | No | 100 |
Number of records to batch before sending to Kafka |
| compression_type | No | snappy |
Kafka message compression: none, gzip, snappy, lz4, zstd |
| include_sdc_properties | No | true |
Include Meltano metadata (_sdc_extracted_at, _sdc_received_at, etc.) |
A full list of supported settings and capabilities is available by running:
target-kafka --about
Configure using environment variables
With --config=ENV, the target reads configuration from environment variables (and from a .env file in the working directory if present). Use names like TARGET_KAFKA_BOOTSTRAP_SERVERS, TARGET_KAFKA_TOPIC_PREFIX, etc. See .env.example for a template.
Usage
Run with Meltano
You can run target-kafka in a pipeline using Meltano:
meltano run tap-smoke-test target-kafka
Run the target directly
target-kafka --version
target-kafka --help
# Example with config file
tap-smoke-test | target-kafka --config config.json
# Example with env config
tap-smoke-test | target-kafka --config ENV
This target works in any Singer environment and does not require Meltano.
Developer resources
Prerequisites
- Python 3.10+
- uv
Setup and tests
uv sync
uv run pytest
uv run target-kafka --help
Testing with Meltano
uv tool install meltano
meltano invoke target-kafka --version
meltano run tap-smoke-test target-kafka
SDK dev guide
See the Singer SDK dev guide for developing taps and targets.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file target_kafka-0.1.0.tar.gz.
File metadata
- Download URL: target_kafka-0.1.0.tar.gz
- Upload date:
- Size: 165.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d92cca2a5be13ae2b94729ebc4ca3e5d5dae4e63faf8cbcc4ed26ede430d7c42
|
|
| MD5 |
6804189ac453a2f97a548a8bb7b1bc9e
|
|
| BLAKE2b-256 |
ae81eb0818f94e42da1204de001f01629c6505be4218a1e2737c52cbf70283a8
|
Provenance
The following attestation bundles were made for target_kafka-0.1.0.tar.gz:
Publisher:
build.yml on rishipradeep-think41/target-kafka
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
target_kafka-0.1.0.tar.gz -
Subject digest:
d92cca2a5be13ae2b94729ebc4ca3e5d5dae4e63faf8cbcc4ed26ede430d7c42 - Sigstore transparency entry: 926796834
- Sigstore integration time:
-
Permalink:
rishipradeep-think41/target-kafka@b782048ff4aae9fa496d81ad17c2099fe2471d96 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/rishipradeep-think41
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@b782048ff4aae9fa496d81ad17c2099fe2471d96 -
Trigger Event:
push
-
Statement type:
File details
Details for the file target_kafka-0.1.0-py3-none-any.whl.
File metadata
- Download URL: target_kafka-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adef33d7bd3dc327071704ebd4e3f64f864d3f9404fd07ae697da213b66446b3
|
|
| MD5 |
da4582dd36f609231c99a52d5be56d08
|
|
| BLAKE2b-256 |
fc0c8d3a291e54babd6ec9cc03b13f4ac72c5c5a0cf65b65b235ec305ce9fe8d
|
Provenance
The following attestation bundles were made for target_kafka-0.1.0-py3-none-any.whl:
Publisher:
build.yml on rishipradeep-think41/target-kafka
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
target_kafka-0.1.0-py3-none-any.whl -
Subject digest:
adef33d7bd3dc327071704ebd4e3f64f864d3f9404fd07ae697da213b66446b3 - Sigstore transparency entry: 926796836
- Sigstore integration time:
-
Permalink:
rishipradeep-think41/target-kafka@b782048ff4aae9fa496d81ad17c2099fe2471d96 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/rishipradeep-think41
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@b782048ff4aae9fa496d81ad17c2099fe2471d96 -
Trigger Event:
push
-
Statement type: