Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
1a4a592
Readd Confluent Kafka drivers
wbarnha Dec 2, 2022
c20edbf
Merge branch 'master' into readd-confluent
wbarnha Dec 2, 2022
72160f0
add confluent as extra
wbarnha Dec 2, 2022
0049b7d
remove "-python"
wbarnha Dec 2, 2022
209472a
undo everything from that commit
wbarnha Dec 2, 2022
b3f5eff
Merge branch 'master' into readd-confluent
wbarnha Dec 22, 2022
32d2019
Merge branch 'master' into readd-confluent
wbarnha Jan 13, 2023
537607a
Merge branch 'master' into readd-confluent
wbarnha Mar 2, 2023
8e349fc
use create_task for now
wbarnha Mar 2, 2023
b2b448e
Merge branch 'master' into readd-confluent
wbarnha Mar 24, 2023
71f05f7
commit experiment
wbarnha Mar 27, 2023
ee12f91
Merge branch 'master' into readd-confluent
wbarnha Mar 30, 2023
1986415
Merge branch 'master' into readd-confluent
wbarnha Apr 7, 2023
cd82dc9
Merge branch 'master' into readd-confluent
wbarnha May 4, 2023
c508d3f
Merge branch 'master' into readd-confluent
wbarnha Jul 6, 2023
129f241
Merge branch 'master' into readd-confluent
wbarnha Jul 15, 2023
aaafed4
point to latest aio implementation in experimental branch
wbarnha Jul 15, 2023
d495401
commit reorg
wbarnha Jul 15, 2023
9501bce
now to figure out assignment...
wbarnha Jul 15, 2023
3f2d11f
guess we'll figure this out some other day
wbarnha Jul 15, 2023
5960fe1
Merge branch 'master' into readd-confluent
wbarnha Aug 18, 2023
eb323f2
Merge branch 'master' into readd-confluent
wbarnha Jul 16, 2026
5bdd8d3
Make confluent driver work with released confluent-kafka
wbarnha Jul 16, 2026
ba2b496
Rewrite confluent driver tests against the real driver API
wbarnha Jul 16, 2026
21994eb
Fix crash in confluent Consumer.create_topic with no retention
wbarnha Jul 16, 2026
a175c21
Skip confluent driver tests when confluent-kafka is not installed
wbarnha Jul 16, 2026
7ed39f5
Exclude optional confluent driver from coverage
wbarnha Jul 16, 2026
a9e3eab
Merge remote-tracking branch 'origin/master' into faust-679
wbarnha Jul 17, 2026
e5f5b43
Keep aiokafka (kafka://) as the default broker in the word_count example
wbarnha Jul 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ omit =
*/faust/assignor/*
*/faust/transport/drivers/memory.py

# optional driver: only importable/tested with the ckafka extra installed
# (faust[ckafka]); not part of the CI test environment.
*/faust/transport/drivers/confluent.py

# tested by integration
*/faust/tables/recovery.py

Expand Down
1 change: 1 addition & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
'faust.cli',
'faust.models',
'faust.serializers',
'faust.transport.drivers.confluent',
'faust.types',
'faust.types._env',
'faust.utils',
Expand Down
9 changes: 9 additions & 0 deletions docs/includes/settingref.txt
Original file line number Diff line number Diff line change
Expand Up @@ -391,6 +391,15 @@ You can also pass a list of URLs:
Limitations: None


- ``confluent://``

Experimental transport using the :pypi:`confluent-kafka` client.

Limitations: Does not do sticky partition assignment (not
suitable for tables), and do not create any necessary internal
topics (you have to create them manually).


.. setting:: broker_credentials

``broker_credentials``
Expand Down
14 changes: 13 additions & 1 deletion extra/bandit/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -1070,6 +1070,18 @@
"loc": 890,
"nosec": 0
},
"faust/transport/drivers/confluent.py": {
"CONFIDENCE.HIGH": 0.0,
"CONFIDENCE.LOW": 0.0,
"CONFIDENCE.MEDIUM": 0.0,
"CONFIDENCE.UNDEFINED": 0.0,
"SEVERITY.HIGH": 0.0,
"SEVERITY.LOW": 0.0,
"SEVERITY.MEDIUM": 0.0,
"SEVERITY.UNDEFINED": 0.0,
"loc": 486,
"nosec": 0
},
"faust/transport/producer.py": {
"CONFIDENCE.HIGH": 0.0,
"CONFIDENCE.LOW": 0.0,
Expand Down Expand Up @@ -2043,4 +2055,4 @@
"test_name": "blacklist"
}
]
}
}
28 changes: 12 additions & 16 deletions faust/transport/drivers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,18 @@
"""Transport registry."""

from yarl import URL
from typing import Type

from .aiokafka import Transport as AIOKafkaTransport
from mode.utils.imports import FactoryMapping

__all__ = ["by_name", "by_url"]


DRIVERS = {
"aiokafka": AIOKafkaTransport,
"kafka": AIOKafkaTransport,
}


def by_name(driver_name: str):
return DRIVERS[driver_name]
from faust.types import TransportT

__all__ = ["by_name", "by_url"]

def by_url(url: URL):
scheme = url.scheme
return DRIVERS[scheme]
TRANSPORTS: FactoryMapping[Type[TransportT]] = FactoryMapping(
aiokafka="faust.transport.drivers.aiokafka:Transport",
confluent="faust.transport.drivers.confluent:Transport",
kafka="faust.transport.drivers.aiokafka:Transport",
)
TRANSPORTS.include_setuptools_namespace("faust.transports")
by_name = TRANSPORTS.by_name
by_url = TRANSPORTS.by_url
Loading
Loading