ignytis / send2kafka

A HTTP interface for sending messages to Kafka

Repository from Github https://github.comignytis/send2kafkaRepository from Github https://github.comignytis/send2kafka

send2kafka

Status: WIP

Configuration

General

Config could be provided in two ways:

  • Environment variables e.g. SEND2KAFKA__HTTP__HOST=localhost
  • YAML file, see the example in the next section
    • By default: a config.yaml file in current working directory
    • Could be overridden using SEND2KAFKA__CONFIG environment variable

NB: for Kafka attributes you need to use single _ instead of .: SEND2KAFKA__KAFKA__BOOTSTRAP_SERVERS=localhost:1234. Single underscores will be replaced with dots automatically. The configuration library uses dots as separators which conflicts with Kafka property format. In addition, environment variable names are not supposed to have dots.

Parameters

There are default values provided in the snippet below:

http:
  host: 0.0.0.0
  port: 8080
  # num_workers: 0  # Optional. If not specified, it will be calculated automatically: https://actix.rs/docs/server/#multi-threading
kafka:
  bootstrap_servers: localhost:9092
  # Here you can provide additional Kafka parameters, for example:
  # sasl_mechanism: SCRAM-SHA-256
  # security_protocol: SASL_PLAINTEXT
  # sasl_username: me
  # sasl_password: mypassword

API

POST /topics/<topic_name>

Sends a message to Kafka topic. Message payload should be provided as a message body. The message key could be specified using the optional X-Key HTTP header

About

A HTTP interface for sending messages to Kafka

License:GNU General Public License v3.0


Languages

Language:Rust 96.5%Language:Shell 3.5%