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.

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

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
File Actions
confluent_kafka-4.4.0b1-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-cp315-cp315-manylinux_2_28_x86_64.whl
confluent_kafka-4.4.0b1-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-cp315-cp315-manylinux_2_28_aarch64.whl
confluent_kafka-4.4.0b1-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-cp315-cp315-macosx_11_0_x86_64.whl
confluent_kafka-4.4.0b1-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details for confluent_kafka-4.4.0b1-cp315-cp315-macosx_11_0_arm64.whl
confluent_kafka-4.4.0b1-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-cp314-cp314-manylinux_2_28_x86_64.whl
confluent_kafka-4.4.0b1-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-cp314-cp314-manylinux_2_28_aarch64.whl
confluent_kafka-4.4.0b1-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-cp314-cp314-macosx_11_0_x86_64.whl
confluent_kafka-4.4.0b1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for confluent_kafka-4.4.0b1-cp314-cp314-macosx_11_0_arm64.whl
confluent_kafka-4.4.0b1-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-cp313-cp313-manylinux_2_28_x86_64.whl
confluent_kafka-4.4.0b1-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-cp313-cp313-manylinux_2_28_aarch64.whl
confluent_kafka-4.4.0b1-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-cp313-cp313-macosx_11_0_x86_64.whl
confluent_kafka-4.4.0b1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for confluent_kafka-4.4.0b1-cp313-cp313-macosx_11_0_arm64.whl
confluent_kafka-4.4.0b1-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-cp312-cp312-manylinux_2_28_x86_64.whl
confluent_kafka-4.4.0b1-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-cp312-cp312-manylinux_2_28_aarch64.whl
confluent_kafka-4.4.0b1-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-cp312-cp312-macosx_11_0_x86_64.whl
confluent_kafka-4.4.0b1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for confluent_kafka-4.4.0b1-cp312-cp312-macosx_11_0_arm64.whl
confluent_kafka-4.4.0b1-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-cp311-cp311-manylinux_2_28_x86_64.whl
confluent_kafka-4.4.0b1-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-cp311-cp311-manylinux_2_28_aarch64.whl
confluent_kafka-4.4.0b1-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-cp311-cp311-macosx_11_0_x86_64.whl
confluent_kafka-4.4.0b1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for confluent_kafka-4.4.0b1-cp311-cp311-macosx_11_0_arm64.whl
confluent_kafka-4.4.0b1-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-cp310-cp310-manylinux_2_28_x86_64.whl
confluent_kafka-4.4.0b1-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-cp310-cp310-manylinux_2_28_aarch64.whl
confluent_kafka-4.4.0b1-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-cp310-cp310-macosx_11_0_x86_64.whl
confluent_kafka-4.4.0b1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for confluent_kafka-4.4.0b1-cp310-cp310-macosx_11_0_arm64.whl

Total release size: 213.6 MB

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

Download URL confluent_kafka-4.4.0b1-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
9fb7b67b68e986ac828cec7a486765dfb9e1f82097a69f944e00006ee9d2bc3f
BLAKE2b-256 checksum
How to use checksums
9bd8c7c06cfabef5da50036b9d67e5d8e76e3647f8280c2f6a1ca3598178a5bd
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-cp315-cp315-manylinux_2_28_aarch64.whl

Download URL confluent_kafka-4.4.0b1-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
e93a807f9ed5ef507bac64b30ee2e627b4a7c0ef4d3ce4143365aa274318f48f
BLAKE2b-256 checksum
How to use checksums
5db2a9649aaa1d20e912804105a21432dc34353580c85a507d1d14dd5488f8b7
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-cp315-cp315-macosx_11_0_x86_64.whl

Download URL confluent_kafka-4.4.0b1-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
82d1bac5df5cedb2d16a6f7983f6e43ef19cd78dfd01b81023327a0d50edec12
BLAKE2b-256 checksum
How to use checksums
6b320967c6e46ce5deaa42d7f63c2ccef75e51a78507828483c72783e281b95b
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-cp315-cp315-macosx_11_0_arm64.whl

Download URL confluent_kafka-4.4.0b1-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
57e25e0440057977b092d9b934165266daa779f0f05abb68f3b12a4397c2c4f4
BLAKE2b-256 checksum
How to use checksums
18350ddfe550c047a92874ede5a0466bd4bf98eecd159d49e984e646d8ca4c18
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-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL confluent_kafka-4.4.0b1-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
f77558af622f94a7587c7386fba2a71b34a6c77161ab7a0d2a97b9638aa1756c
BLAKE2b-256 checksum
How to use checksums
a8ee7d46001d53eb577094859f138742eddd6a1cabfb9fd8ef0ef3c7316614a3
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-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL confluent_kafka-4.4.0b1-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
9ed9c7ed710b0a4419f8119296f14f6c85d24506cb99591f1d916eeb57f099cf
BLAKE2b-256 checksum
How to use checksums
74e7198b88f81c77e542ebbce63b5fae3c73bc1c5f337a7436e50c4f5af2d2a5
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-cp314-cp314-macosx_11_0_x86_64.whl

Download URL confluent_kafka-4.4.0b1-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
9d5be1b8799189b5256878f9cd382a09d71cd4627825028b038bfa5377173b41
BLAKE2b-256 checksum
How to use checksums
02a95eaa8f874b18bbd5d821736cdd7bda09b40a4ebd34f3aace7fc0df9a3ab8
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-cp314-cp314-macosx_11_0_arm64.whl

Download URL confluent_kafka-4.4.0b1-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
d74fbbb92c90be8bc676623abdb6832fe2c9955d26c94d4221b0d6b1080091ac
BLAKE2b-256 checksum
How to use checksums
56ad2837b924b3ab42715ba50cfc9e94b00f36bb214d6e901d4a3394edf79659
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-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL confluent_kafka-4.4.0b1-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
2f515a67cd2966f40142b6d914d6d178cdea61230cd9dfab3c46b5ddd9b151b3
BLAKE2b-256 checksum
How to use checksums
eebf7edb3c1bcbba5961df76931db9dce1b0b9acc8e2664ade4199488228467e
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-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL confluent_kafka-4.4.0b1-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
1524b026dd04c5981f9b17a326b8f667c3c6b10913a7d8b87607355987ec4468
BLAKE2b-256 checksum
How to use checksums
7418876d6522fc4efdb19741e825c59837cf290aceff5671ac7e017a3f3e4bd2
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-cp313-cp313-macosx_11_0_x86_64.whl

Download URL confluent_kafka-4.4.0b1-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
d39d45ab90cbf12e5340ecc1334d8b26fe5a5aa763082ae1b83df1930cb0fc40
BLAKE2b-256 checksum
How to use checksums
c8d6880a21333b21298e45756a86882919038dc34c683522340fdf7efa7f8e54
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-cp313-cp313-macosx_11_0_arm64.whl

Download URL confluent_kafka-4.4.0b1-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
1b7e0d5de2860723e3fb97578d6751327772b5e361886e290ed95ed49b32ccf6
BLAKE2b-256 checksum
How to use checksums
1774961352484a5193e1ccd0bba804186855057812ed15ca791e7056dd5886f8
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-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL confluent_kafka-4.4.0b1-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
b5c849120a9d7b0b9699ae072255053e52dc5f21ea60b0f376f3dfab740d2842
BLAKE2b-256 checksum
How to use checksums
dad22af14dc39bf1eb695b90f4ad2668d38ad66b2356f0e09384eadbda552df9
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-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL confluent_kafka-4.4.0b1-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
3f566a11618467048345ce9dfbe16f2e95a76cdb89609d080d3f9c12d3669a34
BLAKE2b-256 checksum
How to use checksums
fbdcfa749d182782a967916a57e86c5c35558bc4d60d22022a7b7b8c20831964
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-cp312-cp312-macosx_11_0_x86_64.whl

Download URL confluent_kafka-4.4.0b1-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
dc33f66b3776c88611cfb61be9a38d1ea954446ed4ff96a8a161dfcd3e4b38d6
BLAKE2b-256 checksum
How to use checksums
38188eefdba2b363c5176dfffd06f31ddc55965f0bf4362d5d62b819339287f8
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-cp312-cp312-macosx_11_0_arm64.whl

Download URL confluent_kafka-4.4.0b1-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
ad67f4a76113177b545cee4b8bef98cab4122aa3c06068d0c66c300724d07cfe
BLAKE2b-256 checksum
How to use checksums
a2a6ba926a92ced0b8a2925747ad506eb59178963ca5cb8f8651bc88d3a48ee0
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-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL confluent_kafka-4.4.0b1-cp311-cp311-manylinux_2_28_x86_64.whl
Size 9.3 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b02b1a80307bb6637122c60ebb4e701e91a36feab00e5de73993f13f3921e777
BLAKE2b-256 checksum
How to use checksums
d6a556ffb5ae300fe9a2dec6772edc327ee5b4c436226d1754a033c4f0d5f0b5
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-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL confluent_kafka-4.4.0b1-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
8d6851db401c2606fe5c6ce52655635b1dd3cde8b6654edeb6a0ff46a1b7fe09
BLAKE2b-256 checksum
How to use checksums
bbb11267db11423ad5e056dd01bddd3550e9820746526b9c50fdbe310abbcea4
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-cp311-cp311-macosx_11_0_x86_64.whl

Download URL confluent_kafka-4.4.0b1-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
6b2c7c3f8f46b5efd240caf030929686eb05872ec2e6f67f2ebb5b5059e05d38
BLAKE2b-256 checksum
How to use checksums
aea74e887b61ade3643bbe21c4811a310f76398e0ea7841a29991a55ce89bd37
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-cp311-cp311-macosx_11_0_arm64.whl

Download URL confluent_kafka-4.4.0b1-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
bf577b8f598cb835a1eb8eaffa75fe928f7c71a65b70afd7a873fad9415869e3
BLAKE2b-256 checksum
How to use checksums
e8f5286bd43cb9a7acf9d0ace2fa37020d97ebd5973d1664cdff31e5348d3c4c
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-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL confluent_kafka-4.4.0b1-cp310-cp310-manylinux_2_28_x86_64.whl
Size 9.3 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1b271f43ab0044290ce86fe95a7de555c0f3fd5520f601632e80abf8dfae4fa1
BLAKE2b-256 checksum
How to use checksums
cbc55f97db7821f50216aaea114fcc5524ea7038d421cba13f601c0b4dc6a3f6
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-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL confluent_kafka-4.4.0b1-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
6a48e586fe5fe790d750fbdecb52b5e2300dac8bb6dbf55c60b4aaed8834ba5a
BLAKE2b-256 checksum
How to use checksums
8892ff0ddaf54c60e4fc5f316d0002328f9d8b6d6e194eeb7f471c10d46f8cd2
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-cp310-cp310-macosx_11_0_x86_64.whl

Download URL confluent_kafka-4.4.0b1-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
9f6ee705abbbc517dd36e9b206fc1297a95c98514d65ce87bfbeab390d55b33a
BLAKE2b-256 checksum
How to use checksums
8be0c2fb6b90d6976e97a63f753a75253ccf9bc6c0aad74de17481cfd237dd79
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-cp310-cp310-macosx_11_0_arm64.whl

Download URL confluent_kafka-4.4.0b1-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
3570143de31f6ed838de24079a0973894d71bce851f8b25de8470aa3bc831061
BLAKE2b-256 checksum
How to use checksums
7ae1f74e54f2b4ced6701684fff3300f4fc8ee04556dd23fb6e67929efc6d38c
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

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