Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

confluent_kafka (Rust-core Python client)

The Python client built on the Rust core's C FFI. Its surface is the Java Kafka client (Apache Kafka 4.4.0) mapped to idiomatic Python, ruled by the ## Python Binding Conventions section of the repository's CLAUDE.md. The package sits over a hand-written CPython extension, _confluentkafka, which links the Rust library's C API (../rust, feature ffi).

Status

Preview: the Python client is in preview and not yet recommended for production use. The public API is not stable before the GA release and may change. We welcome your feedback while the design is still open.

Windows is not supported yet.

Known issue on Python 3.14: a Ctrl+C (KeyboardInterrupt) can, rarely, leave a client call counted, so that a later close() waits forever, or leave a mock client's lock held. It happens when the Ctrl+C arrives right after a with block takes its lock and before the block starts. The bug is in CPython 3.14 and affects every with block (python/cpython#148874); Python 3.15 has the fix.

Import paths

The package mirrors Java's package tree with the clients segment dropped (CLAUDE.md, Python Binding Conventions, Modules). Import each name from its own module — the package root does not re-export the everyday client names; it exports only Duration and the Java built-in exception classes:

from confluent_kafka.producer import (
    KafkaProducer, MockProducer, AsyncKafkaProducer, AsyncMockProducer,
    ProducerRecord, RecordMetadata, Callback,
)
from confluent_kafka.admin import Admin, AsyncAdmin, NewTopic
from confluent_kafka.consumer import (
    KafkaConsumer, MockConsumer, AsyncKafkaConsumer, AsyncMockConsumer,
    ConsumerRebalanceListener, OffsetAndMetadata, CloseOptions,
    SubscriptionPattern,
)
from confluent_kafka.common import (
    TopicPartition, TopicIdPartition, Node, PartitionInfo, Uuid,
    MetricName, Metric,
    KafkaError,  # Java's org.apache.kafka.common.KafkaException
    KafkaFuture, AsyncKafkaFuture,  # every future the package hands out
)
# Every type lives in the module of its Java package, `clients` dropped:
from confluent_kafka.common.header import Header, Headers  # common.header
from confluent_kafka.common.metrics import KafkaMetric  # common.metrics
from confluent_kafka.common.record import TimestampType  # common.record
from confluent_kafka.common.errors import RetriableError  # typed hierarchy
from confluent_kafka.common.serialization import (
    bytes_serializer, string_serializer, int_serializer, json_serializer,  # etc.
)

# The Java built-in exception classes and the Duration alias live at the
# package root:
from confluent_kafka import (
    IllegalArgumentError, IllegalStateError, ConcurrentModificationError,
    TimeoutError, NoSuchElementError, ExecutionError, UnsupportedOperationError,
    IndexOutOfBoundsError, Duration,
)

The native extension is _confluentkafka (private): the package imports it; it is never a public import path.

None is Java's null

Every keyword-only parameter mirrors a Java argument, and None is Java's null, never "not given": leaving a parameter out is the only way to choose the Java overload without it (CLAUDE.md, Python Binding Conventions, Signatures). consumer.close() is Java's close(), while consumer.close(option=None) is close(null) and raises TypeError("option must not be None"), as Java's NullPointerException; producer.send(record=r, callback=None) is Java's send(record, null). Where Java gives null a meaning, None keeps it (ProducerRecord(topic=…, partition=None, key=None, value=…), an Optional parameter's Optional.empty()). Code written against kafka-python or confluent-kafka-python that passes None to skip an argument must leave the argument out instead; its positional callbacks and serdes take the keyword form (Serdes and callbacks), and an except UnsupportedVersionError meant for a mock's unimplemented method becomes except UnsupportedOperationError (Errors). The signatures show the private default MISSING (help(), inspect.signature): it only marks a parameter some overload omits and is never a value to pass.

Headers

A record's headers are Java's: record.headers() returns a Headers (confluent_kafka.common.header), never None and empty when there are none, holding Header objects with key() and value(), a memoryview or None (for a fetched record, a view into the fetch batch, never a copy). Headers has Java's add(header=…) / add(key=…, value=…), remove(key=…), last_header(key=…), headers(key=…) and to_array(), and iterates with for h in record.headers(). A record's headers can be changed until it is sent (by KafkaProducer.send, once the serializers ran); then add and remove raise IllegalStateError("RecordHeaders has been closed."), as Java's KafkaProducer seals them. A polled record's headers stay writable, as Java's CompletedFetch leaves them. Where headers are taken (ProducerRecord(headers=…), ConsumerRecord(headers=…)), each element is a Header(key=…, value=…) or a (key, value) pair. Code that read headers as (key, value) tuples (for k, v in record.headers()) reads h.key(), h.value() instead.

Async peers

Each async client lives in the same module as its sync peer, Async-prefixed (AsyncKafkaProducer, AsyncKafkaConsumer). A method is async def on the async class iff Java waits in it (on the background thread, the network, or a rebalance listener it runs); the others (assignment(), subscription(), metrics(), group_metadata(), wakeup()) stay plain def on both. commit_nowait() is async def on the async consumers, as every method whose entry point has a _cb twin: _nowait means the call does not wait for the broker's answer, so await consumer.commit_nowait(callback=cb) returns once the commit is sent (raising the call's own failure) and cb gets the result later.

Futures

One future type for every future the package hands out: KafkaFuture[T] on a sync client, AsyncKafkaFuture[T] on an async one (both in confluent_kafka.common), with Java's KafkaFuture methods (get, get_now, then_apply, when_complete, all_of, cancel, is_done, …).

md = producer.send(record=r).get()                 # sync
md = await (await producer.send(record=r)).get()   # async: send() and get() are awaited

get() on a failed future raises confluent_kafka.ExecutionError, as Java's ExecutionException, and the real error is its __cause__:

try:
    producer.send(record=r).get()
except ExecutionError as e:
    if isinstance(e.__cause__, RetriableError): ...

A get(timeout=…) that runs out raises TimeoutError. A future's then_apply functions and when_complete actions run where the completion runs: on the producer's completion thread or the sync admin client's pump thread, on the event loop for an async client.

Serdes and callbacks take keyword arguments

A serializer, a deserializer, a send() callback and a commit_nowait() callback are called with keyword arguments named after Java's parameters, and each must accept **kwargs:

def on_done(*, metadata, exception, **kwargs): ...          # Java's Callback
def on_commit(*, offsets, exception, **kwargs): ...         # OffsetCommitCallback
def serializer(*, topic, data, headers=None, **kwargs): ...     # Serializer
def deserializer(*, topic, data, headers=None, **kwargs): ...   # Deserializer

producer.send(record=r, callback=lambda *, metadata, exception, **_: ...)

Java adds a parameter to such an interface as a default overload, which old implementations never see; in Python the binding passes it as one more keyword, which **kwargs takes, so a parameter Java adds later breaks no existing callable. A callable without **kwargs is rejected where it is given, with IllegalArgumentError("<param> must accept **kwargs") (callback, key_serializer, … or the config key value.deserializer, …), and the Callback, OffsetCommitCallback, Serializer and Deserializer protocols make mypy reject it too. The parameters may be declared positional-or-keyword in Java's order (def ser(topic, data, headers=None, **kwargs)), which the client then calls positionally, a little faster. The ConsumerRebalanceListener methods, which you override on a subclass, are called positionally, as before. Code written against the earlier positional callbacks (lambda md, exc: ..., def deserializer(topic, data, headers)) must be rewritten in this form.

Producer

  • send(record=…, callback=cb) returns a KafkaFuture for the record's RecordMetadata (.get() waits for it); like Java's, it cannot be cancelled, and a send failure reaches get() as ExecutionError. A serializer is called with a None key or value as given and decides what null maps to. cb(metadata=…, exception=…) is Java's Callback: it runs on the producer's background completion thread (KafkaProducer) or on the event loop (AsyncKafkaProducer), one at a time in completion order, before the future completes; a raising callback fails nothing, and the client's core logs its exception once, with Java's message. metadata is never None: on failure every field but the topic and partition is -1.
  • close() waits for the records sent before it; close(timeout=…) waits at most timeout, then fails what is left. Neither cancels a future.
  • A send() that returned belongs to the flush() or transaction call after it (commit_transaction() includes it, abort_transaction() discards it).
  • MockProducer is Java's MockProducer: sends complete, and callbacks run, on the calling thread, and a raising callback's exception propagates out of the call that completed the record.

Consumer

  • Set group.protocol to consumer: this client implements only the KIP-848 consumer group protocol, and Java's default, classic, is rejected by the client's core when the consumer is built, with UnsupportedVersionError("Classic group protocol is not yet supported in this client; set group.protocol=consumer (KIP-848).").
  • The share consumer (KIP-932: ShareConsumer, KafkaShareConsumer, MockShareConsumer) is not generated yet: the C FFI has no entry point for it.
  • The calls that wait take Java's Duration overloads as an optional keyword: commit(timeout=…), position(…, timeout=…), committed(…, timeout=…), partitions_for(…, timeout=…), list_topics(timeout=…), offsets_for_times(…, timeout=…), beginning_offsets(…, timeout=…) and end_offsets(…, timeout=…); left out calls the overload without it (default.api.timeout.ms applies), and None is Java's null Duration (TypeError("timeout must not be None")). A negative timeout raises IllegalArgumentError.
  • poll(timeout=…) runs the deserializers on the caller's thread. A null key or value is not deserialized: the record's field is None. A failing one raises RecordDeserializationError (after the records before it, if any, were returned) and leaves the position at the record: seek(partition=e.topic_partition(), offset=e.offset() + 1) skips it.
  • commit() is Java's commitSync and waits; commit_nowait(callback=cb) is Java's commitAsync. cb(offsets=…, exception=…) is Java's OffsetCommitCallback; offsets is None when the commit failed and for an explicit empty offsets, as Java passes null.
  • The ConsumerRebalanceListener methods and the commit_nowait() callback run on the caller's thread, inside the call that delivers them, and the rebalance does not advance until the listener returns. As in Java, listener methods and background errors are delivered only by poll() and unsubscribe() (and close() revokes or loses the group assignment through the listener); the commit_nowait() callback runs inside a later poll(), commit(), commit_nowait() or close(); commit() and commit_nowait() deliver no listener method. A listener may call back into its consumer (commit(), seek(), position(), …); on AsyncKafkaConsumer those calls block the event loop for their duration. On AsyncKafkaConsumer a listener method may be async def; it is awaited on the event loop. A listener's KafkaError is raised as it is from the call that delivered it; any other exception is wrapped as KafkaError("User rebalance callback throws an error") with it as the cause.
  • KafkaConsumer is not thread-safe: a call while another thread is inside it raises ConcurrentModificationError, wakeup() and metrics() excepted, as Java leaves both outside acquire(): from any thread, wakeup() makes the waiting call raise WakeupError, and metrics() answers.
  • close() closes with Java's default timeout; close(option=CloseOptions(timeout=…)) bounds it. Java's deprecated close(Duration) is not generated.
  • A deserializer defaults to the key.deserializer / value.deserializer config key, else to bytes_deserializer(); the consumer closes both when it closes.
  • MockConsumer is Java's MockConsumer: add_record(record=…) takes the ConsumerRecord the test builds and poll() returns it as is (the mock has no deserializers). Nothing binds its type parameters, so annotate it as Java writes them: c: MockConsumer[str, str] = MockConsumer(offset_reset_strategy="earliest").

Admin

Admin.create(configs={...}) returns a KafkaAdminClient (AsyncAdmin.create an AsyncKafkaAdminClient); the client is a context manager, and leaving the block closes it. The package is confluent_kafka.admin: the client, one …Options per call, one …Result per call, and the value types (NewTopic, TopicDescription, …).

from confluent_kafka import ExecutionError
from confluent_kafka.admin import Admin, NewTopic
from confluent_kafka.common.errors import TopicExistsError

with Admin.create(configs={"bootstrap.servers": "localhost:9092"}) as admin:
    result = admin.create_topics(
        new_topics=[NewTopic(name="demo", num_partitions=3, replication_factor=1)])
    try:
        result.all().get()                  # one future per topic: result.values()
    except ExecutionError as e:
        if not isinstance(e.__cause__, TopicExistsError):
            raise
  • Every call returns its …Result at once, as Java's does; the Result holds one KafkaFuture per key (or one for the whole call) and .get() waits. A failed key raises ExecutionError, whose __cause__ is the error as its class.

  • The sync client has one daemon pump thread that completes its futures, as Java's admin thread does: then_apply functions and when_complete actions run there, so a blocking action blocks the client's other completions.

  • On the async peer the calls are plain def too, and the Result holds AsyncKafkaFutures, whose get() is awaited; their actions run on the event loop:

    from confluent_kafka.admin import AsyncAdmin, NewTopic
    
    async with AsyncAdmin.create(configs={"bootstrap.servers": "localhost:9092"}) as admin:
        result = admin.create_topics(new_topics=[NewTopic(name="demo", num_partitions=3, replication_factor=1)])
        await result.all().get()
    
  • Errors are classes: isinstance(e.__cause__, RetriableError).

  • MockAdminClient (and AsyncMockAdminClient) is Java's MockAdminClient, for tests: no broker, in-memory state, MockAdminClient.create()...build() (MockAdminClient() has one Node.no_node() broker, as Java's, so topic calls need real brokers). Where Java's mock throws "Not implemented yet", it raises UnsupportedOperationError (Java's UnsupportedOperationException, a RuntimeError at the package root, not a KafkaError).

  • Overloads whose entry point the core lacks (streams and share groups, metadata quorum, …) are not generated; they are listed in the docstring of confluent_kafka.admin.admin.

Errors

Errors are a typed hierarchy caught by class, not a flat error with a code(). There is no code() / is_retriable() / is_fatal() on the surface — retriability is except RetriableError, and each Java exception class has a …Error Python analog in the module of its Java package (generated from the Java sources). The Java built-in exception classes (IllegalStateError, IllegalArgumentError, ConcurrentModificationError, TimeoutError, NoSuchElementError, ExecutionError, UnsupportedOperationError, IndexOutOfBoundsError) live at the package root. UnsupportedOperationError is Java's UnsupportedOperationException, which the mocks raise for what Java's mocks do not implement (MockConsumer.offsets_for_times, MockAdminClient's "Not implemented yet"), and the client's core for what this client does not support yet; it is not a KafkaError, so except KafkaError does not catch it, as in Java.

Directory Structure

confluent_kafka/        # The client package, one module per Java package
_confluentkafka.c       # Hand-written CPython extension over the C API
tinycthread.{c,h}, c11threads_compat.h  # C11 threads shim (macOS)
setup.py, pyproject.toml
grpc_server.py, grpc_server_async.py, grpc_translate.py
                        # gRPC servers for the multilanguage tests
Dockerfile.grpc, Dockerfile.grpc.async  # Their images
examples/               # Runnable producer, consumer and admin examples
test/
├── unit/               # pytest unit tests, no broker needed
├── integration/        # Broker-backed binding tests (testcontainers; skip without Docker)
├── static/             # Source checks: format arity
└── performance/        # Latency-budget and benchmark tests (need a broker)
tools/                  # format_arity.py
soak/                   # Long-running soak client — see soak/README.md
Makefile                # Targets the repository root's Makefile delegates to

Where commands run

Run the commands below from this directory, inside a Python environment (3.10+). The repository root's make targets use the shared ../venv/, which make init at the root creates.

Prerequisites

The extension links the Rust library and includes its C header, so build the Rust client first:

make -C ../rust build-all-features   # or: cd ../rust && cargo build --all-features --release

This produces ../rust/target/release/libconfluent_kafka.* and ../rust/target/include/confluent_kafka.h. setup.py finds them there; set CONFLUENT_KAFKA_LIB_DIR to link a library from another directory (e.g. ../rust/target/debug).

Building

pip install -e .          # builds _confluentkafka in place
pip install .[dev]        # test and benchmark dependencies

Running Tests

python -m pytest test/unit      # unit tests
python -m pytest test/integration   # broker-backed tests (Docker)
python -m pytest test/static    # static checks of the extension source
python -m pytest soak/test      # soak client unit tests
python -m mypy --strict confluent_kafka test/unit/test_typing.py   # typecheck

The static checks read source files only, so they need neither the Rust library nor the extension built.

The Python arms of the multilanguage integration suite (__grpc_python, __grpc_python_async) run the Rust test harness against the gRPC servers above; make test-integration builds the images and runs them (Linux only, Docker required).

Make targets

Makefile wraps the commands above. The repository root's Makefile delegates to it (activating the venv and building the Rust library first); it can also be run directly:

make build                # pip install -e . against ../rust/target/$(PROFILE)
make test                 # typecheck, unit, integration, static and soak tests, then test-integration
make test-unit            # unit tests only
make typecheck            # mypy --strict over the package and test/unit/test_typing.py
make check-static         # static checks only
make test-integration     # gRPC images + the __grpc_python arms (Linux, Docker)
make test-performance     # latency-budget tests (idle machine, broker needed)
make consumer-perf-test producer-perf-test   # env-driven benchmarks
make grpc-image grpc-image-async
make clean

PROFILE (release by default, or debug) selects which Rust build to link. CLIENT_VERSION=2 runs the benchmarks against the PyPI librdkafka client in its own venv (make init-venv-librdkafka at the root): it installs the same top-level confluent_kafka package as this client, so the two cannot share one.

License

Apache License 2.0. See LICENSE for details.

Metadata

Release files for confluent-kafka 4.4.0b1.dev4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for confluent-kafka 4.4.0b1.dev4
File Actions
confluent_kafka-4.4.0b1.dev4-cp315-cp315-manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ x86-64 Details for confluent_kafka-4.4.0b1.dev4-cp315-cp315-manylinux_2_28_x86_64.whl
confluent_kafka-4.4.0b1.dev4-cp315-cp315-manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ ARM64 Details for confluent_kafka-4.4.0b1.dev4-cp315-cp315-manylinux_2_28_aarch64.whl
confluent_kafka-4.4.0b1.dev4-cp315-cp315-macosx_11_0_x86_64.whl CPython 3.15 CPython 3.15 macOS 11.0+ x86-64 Details for confluent_kafka-4.4.0b1.dev4-cp315-cp315-macosx_11_0_x86_64.whl
confluent_kafka-4.4.0b1.dev4-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details for confluent_kafka-4.4.0b1.dev4-cp315-cp315-macosx_11_0_arm64.whl
confluent_kafka-4.4.0b1.dev4-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details for confluent_kafka-4.4.0b1.dev4-cp314-cp314-manylinux_2_28_x86_64.whl
confluent_kafka-4.4.0b1.dev4-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details for confluent_kafka-4.4.0b1.dev4-cp314-cp314-manylinux_2_28_aarch64.whl
confluent_kafka-4.4.0b1.dev4-cp314-cp314-macosx_11_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 11.0+ x86-64 Details for confluent_kafka-4.4.0b1.dev4-cp314-cp314-macosx_11_0_x86_64.whl
confluent_kafka-4.4.0b1.dev4-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for confluent_kafka-4.4.0b1.dev4-cp314-cp314-macosx_11_0_arm64.whl
confluent_kafka-4.4.0b1.dev4-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details for confluent_kafka-4.4.0b1.dev4-cp313-cp313-manylinux_2_28_x86_64.whl
confluent_kafka-4.4.0b1.dev4-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details for confluent_kafka-4.4.0b1.dev4-cp313-cp313-manylinux_2_28_aarch64.whl
confluent_kafka-4.4.0b1.dev4-cp313-cp313-macosx_11_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 11.0+ x86-64 Details for confluent_kafka-4.4.0b1.dev4-cp313-cp313-macosx_11_0_x86_64.whl
confluent_kafka-4.4.0b1.dev4-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for confluent_kafka-4.4.0b1.dev4-cp313-cp313-macosx_11_0_arm64.whl
confluent_kafka-4.4.0b1.dev4-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details for confluent_kafka-4.4.0b1.dev4-cp312-cp312-manylinux_2_28_x86_64.whl
confluent_kafka-4.4.0b1.dev4-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details for confluent_kafka-4.4.0b1.dev4-cp312-cp312-manylinux_2_28_aarch64.whl
confluent_kafka-4.4.0b1.dev4-cp312-cp312-macosx_11_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 11.0+ x86-64 Details for confluent_kafka-4.4.0b1.dev4-cp312-cp312-macosx_11_0_x86_64.whl
confluent_kafka-4.4.0b1.dev4-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for confluent_kafka-4.4.0b1.dev4-cp312-cp312-macosx_11_0_arm64.whl
confluent_kafka-4.4.0b1.dev4-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details for confluent_kafka-4.4.0b1.dev4-cp311-cp311-manylinux_2_28_x86_64.whl
confluent_kafka-4.4.0b1.dev4-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details for confluent_kafka-4.4.0b1.dev4-cp311-cp311-manylinux_2_28_aarch64.whl
confluent_kafka-4.4.0b1.dev4-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details for confluent_kafka-4.4.0b1.dev4-cp311-cp311-macosx_11_0_x86_64.whl
confluent_kafka-4.4.0b1.dev4-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for confluent_kafka-4.4.0b1.dev4-cp311-cp311-macosx_11_0_arm64.whl
confluent_kafka-4.4.0b1.dev4-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details for confluent_kafka-4.4.0b1.dev4-cp310-cp310-manylinux_2_28_x86_64.whl
confluent_kafka-4.4.0b1.dev4-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details for confluent_kafka-4.4.0b1.dev4-cp310-cp310-manylinux_2_28_aarch64.whl
confluent_kafka-4.4.0b1.dev4-cp310-cp310-macosx_11_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 11.0+ x86-64 Details for confluent_kafka-4.4.0b1.dev4-cp310-cp310-macosx_11_0_x86_64.whl
confluent_kafka-4.4.0b1.dev4-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for confluent_kafka-4.4.0b1.dev4-cp310-cp310-macosx_11_0_arm64.whl

Total release size: 213.6 MB

Release files / confluent_kafka-4.4.0b1.dev4-cp315-cp315-manylinux_2_28_x86_64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp315-cp315-manylinux_2_28_x86_64.whl
Size 9.3 MB
Tags CPython 3.15 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
27903cc208e4e4efb97ff6aa9b5054b07ed4fa86b0d6153254bb4e1958c259fe
BLAKE2b-256 checksum
How to use checksums
0732d8a5394d12f7496a2c382ffbd71580bb323121a329740e9417f89155c5aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp315-cp315-manylinux_2_28_aarch64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp315-cp315-manylinux_2_28_aarch64.whl
Size 8.9 MB
Tags CPython 3.15 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a28d49c202acec6e4be6415aaf7e5fe4aee155c9780d406f2fdb21c72aeb4e3a
BLAKE2b-256 checksum
How to use checksums
ffbb6acba740d6df57a89484689d502717c5967211de40752f77333ef77efb30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp315-cp315-macosx_11_0_x86_64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp315-cp315-macosx_11_0_x86_64.whl
Size 9.1 MB
Tags CPython 3.15 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
8e85e052fb932897b50f8a5cedac768f5b49d75252a717635b18d0425e8023e1
BLAKE2b-256 checksum
How to use checksums
48f9574723c05849ff1da68a54979fa174e5772eb1f9f9a0083a56ce29af1407
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp315-cp315-macosx_11_0_arm64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp315-cp315-macosx_11_0_arm64.whl
Size 8.4 MB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
721c549293ef283ed3b5fc2b02cf8a163aa4a77e5c95d02d4df251dd6b1d8eda
BLAKE2b-256 checksum
How to use checksums
fa25e3a618b5292ca618c0c34075ebc1c8f63145568a3555b030f162462e0a1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp314-cp314-manylinux_2_28_x86_64.whl
Size 9.3 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e1fd28965ebfca3f03e5683c235f51710307451cff8c66cfeb2109431bcf80a9
BLAKE2b-256 checksum
How to use checksums
2986ec8a9595009fe870aa9d5c136b730126a2c1aed2468b964e0d9e3e828bac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp314-cp314-manylinux_2_28_aarch64.whl
Size 8.9 MB
Tags CPython 3.14 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
4c3a41832972598c6ca904e005f072606684c7269df914d49709adccfeb6ea8a
BLAKE2b-256 checksum
How to use checksums
652b401ebcfcb7fe090319e96d5c6eb4eabfee3681815e82c5d148d5056dec70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp314-cp314-macosx_11_0_x86_64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp314-cp314-macosx_11_0_x86_64.whl
Size 9.1 MB
Tags CPython 3.14 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
a445049c0ace3e488af6a30cf72dfdc77e3ed50b6b8b2f81a10127b42d909f94
BLAKE2b-256 checksum
How to use checksums
1b4f69020ecc44f0d20ed41d198261aefd5ccd73161412373cceefa65afbbe13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp314-cp314-macosx_11_0_arm64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp314-cp314-macosx_11_0_arm64.whl
Size 8.4 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0f84ce6543fb0b2f8cda795c6924b7d2caccf8e804c8ee112d4d3f431e0e0a4f
BLAKE2b-256 checksum
How to use checksums
66f49b23622a55d09c05bb7f4f1444eabb0462bff054ed974f925a2b8ce348ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp313-cp313-manylinux_2_28_x86_64.whl
Size 9.3 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f108308702e8808ceba621c952e43b97201d258e71adbed92cbbacf46e031eb8
BLAKE2b-256 checksum
How to use checksums
b2831ea71a807561b80e12a4dcf73024f5285c87c4e7ef6b92944520f276a091
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp313-cp313-manylinux_2_28_aarch64.whl
Size 8.9 MB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a234393fd4ef69d92606da1ab0376b5737dfc75227e9b526528f366c9dcd5c06
BLAKE2b-256 checksum
How to use checksums
7c3b4417cb2a34a3f406193a3ba746ccc0c0bc3e6de0904d4ee1ccd7001e2fa4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp313-cp313-macosx_11_0_x86_64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp313-cp313-macosx_11_0_x86_64.whl
Size 9.1 MB
Tags CPython 3.13 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
3dff7272ac0d009eb7ba50fdf94cef570d962994dd8d06c04701d9d0d1dbeed5
BLAKE2b-256 checksum
How to use checksums
405fa0fc9543346440876b944e522ccd3ca43804cf461679ccaa955d95f45bb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp313-cp313-macosx_11_0_arm64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp313-cp313-macosx_11_0_arm64.whl
Size 8.4 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8ac0902ebedfa061866720c4fe660d80cfb32664786cdfd55b0917cfca939bad
BLAKE2b-256 checksum
How to use checksums
7f3a4bec67ec935f02426eafc8ef9dd6c45d54e5c5f57a6f14a7a2748a5c162a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp312-cp312-manylinux_2_28_x86_64.whl
Size 9.3 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
dc3502d348a5509ddc119d978fa858083f1e037a77a6162d64a432b44bd4f90c
BLAKE2b-256 checksum
How to use checksums
96f24fc43601f760851ed8ff68b22a61f0174737e1ed29e7ea0aa13d87aaa5be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp312-cp312-manylinux_2_28_aarch64.whl
Size 8.9 MB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
409d7c5ac9aaf4747982bb87cf9b8843ab77b690d94aa604e7d1c406f7ffd2be
BLAKE2b-256 checksum
How to use checksums
609b5aee6275ecb61ff881bf5ef95253f8db35c28ac52fc9db3dab50d49ba48d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp312-cp312-macosx_11_0_x86_64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp312-cp312-macosx_11_0_x86_64.whl
Size 9.1 MB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
213b5751289798705c3975c72cc96c98796bddb5c30acf3bfadc685e84c487d4
BLAKE2b-256 checksum
How to use checksums
e523707d1b0a65095e2d8966474bdf4eb0a01a8b92fea40e33e547cc05e01fbb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp312-cp312-macosx_11_0_arm64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp312-cp312-macosx_11_0_arm64.whl
Size 8.4 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
673b18359eabc9cf6cad22f2b8954ecd272b79e9b36f0c819e21e119db28b86c
BLAKE2b-256 checksum
How to use checksums
f3cf6d26f5fa4dcd28842660ac7aefb6b95d7fd4af0fb02d8a00615b5355f4f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp311-cp311-manylinux_2_28_x86_64.whl
Size 9.2 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
2babd99a8708c03c028d16d7c05baa450dd2b99fc193f8d773d2199ec3d97acc
BLAKE2b-256 checksum
How to use checksums
09d2849ffff40785753f86a3e0f078c35afe234cd953645a209d1fc64e654e3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp311-cp311-manylinux_2_28_aarch64.whl
Size 8.9 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1b56c3c075804ed795207fb27c2c269b407e3d7f25a3d120596b44acaeb6373e
BLAKE2b-256 checksum
How to use checksums
2e307c4d819204e3961ffda2d687fd8ace14314d5b8a44d715be184316d94635
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp311-cp311-macosx_11_0_x86_64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp311-cp311-macosx_11_0_x86_64.whl
Size 9.1 MB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
86e44b7eaab55aea1ee74fc7f17cd01f0f8c88c977a21c592ec0993448ef2f3d
BLAKE2b-256 checksum
How to use checksums
7363b09edd6651d16a30ae8ec7b62b1c1bea6da5d1fc86b9ad5ba188181714e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp311-cp311-macosx_11_0_arm64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp311-cp311-macosx_11_0_arm64.whl
Size 8.4 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
22dbe65192d3ca6e02f1022e149fb6f9e040266056d9dde85a0e869d531db953
BLAKE2b-256 checksum
How to use checksums
127cda90cdfa8b9628583757407655e49a9883016f43399cd700631a31044b28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp310-cp310-manylinux_2_28_x86_64.whl
Size 9.2 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5852210202d1f3a875dd80754d4f52c1350f0ead97bad799dbaf2761db7db4aa
BLAKE2b-256 checksum
How to use checksums
174d3b7f585c3698237c21c640bc439c5712845f811b436dd295c245ac665113
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp310-cp310-manylinux_2_28_aarch64.whl
Size 8.9 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
00a9d29ec78afab763e94d957ed5505004864d812f928a531740614d4e23c43a
BLAKE2b-256 checksum
How to use checksums
60e84006d04c72b68fde03574e95d24a3a7bc81a81c413a5a1e7b86faae31d92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp310-cp310-macosx_11_0_x86_64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp310-cp310-macosx_11_0_x86_64.whl
Size 9.1 MB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
679942b124f0534987263ecb4de3d1205374909336de00a669976dffc401e110
BLAKE2b-256 checksum
How to use checksums
aae6f1f384f180f0d380965d15b2b2d9536db09c91b7743d1c4afeb6b48c6794
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Release files / confluent_kafka-4.4.0b1.dev4-cp310-cp310-macosx_11_0_arm64.whl

Download URL confluent_kafka-4.4.0b1.dev4-cp310-cp310-macosx_11_0_arm64.whl
Size 8.4 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
041f5700a463127cdbd607a18aa02dc12cf30a1a399b2b061fc2eb0247a519fc
BLAKE2b-256 checksum
How to use checksums
2a0dcee30ac6c3965a0340784cf2ffe20dbd6898644d9e8bfb4d47d0dd50da3a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.22

Security for confluent-kafka 4.4.0b1.dev4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.9.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page