Recent Releases of faststream
faststream - v0.6.0rc2
What's Changed
- fix(aiokafka): AttributeError on first LoggingListener.onpartitions_assigned by @legau in https://github.com/ag2ai/faststream/pull/2453
- chore: change issue format by @Sehat1137 in https://github.com/ag2ai/faststream/pull/2465
- docs: Joined context pages into one page by @RenameMe1 in https://github.com/ag2ai/faststream/pull/2460
- fix: add benches.csv, some confluent fixes by @Flosckow in https://github.com/ag2ai/faststream/pull/2461
- docs: Improve cli overview by @borisalekseev in https://github.com/ag2ai/faststream/pull/2414
- Feat: switch image from bitnami to confluent by @Flosckow in https://github.com/ag2ai/faststream/pull/2482
- Feature/update docs by @Kolanar in https://github.com/ag2ai/faststream/pull/2457
- Add new issue workflow by @Sehat1137 in https://github.com/ag2ai/faststream/pull/2481
- fix: 0.6.0rc2 release changes by @Lancetnik in https://github.com/ag2ai/faststream/pull/2485
- 0.6.0rc2 release 08-29-2025 by @Lancetnik in https://github.com/ag2ai/faststream/pull/2454
- ci: change default branch to main back by @Lancetnik in https://github.com/ag2ai/faststream/pull/2488
Full Changelog: https://github.com/ag2ai/faststream/compare/0.6.0rc1...0.6.0rc2
- Python
Published by Lancetnik 6 months ago
faststream - v0.6.0rc1
What's Changed
- ci: correct just-install job by @Lancetnik in https://github.com/ag2ai/faststream/pull/2393
- ci: ignore secret detection false positive by @bsoyka in https://github.com/ag2ai/faststream/pull/2399
- fix(redis): assign serializer to internal producer in LogicPublisher by @loRes228 in https://github.com/ag2ai/faststream/pull/2396
- types: add Rabbit type tests by @RenameMe1 in https://github.com/ag2ai/faststream/pull/2401
- docs: updated manual run with broker examples by @ArtyomVysotskiy in https://github.com/ag2ai/faststream/pull/2402
- tests: remove useless tests by @Lancetnik in https://github.com/ag2ai/faststream/pull/2403
- fix: Added missing DecodedMessage export to faststream.types by @loRes228 in https://github.com/ag2ai/faststream/pull/2405
- types: add Nats type tests by @RenameMe1 in https://github.com/ag2ai/faststream/pull/2406
- types: add Confluent type tests by @RenameMe1 in https://github.com/ag2ai/faststream/pull/2407
- ci: add zizmor and implement related fixes by @bsoyka in https://github.com/ag2ai/faststream/pull/2398
- Docs: fix list of modes by @Totorokrut in https://github.com/ag2ai/faststream/pull/2413
- CI: use pre-commit-ci-lite instead of manual commit step during linters by @kittywaresz in https://github.com/ag2ai/faststream/pull/2416
- lint(rabbit): check publisher and subscriber by @ApostolFet in https://github.com/ag2ai/faststream/pull/2415
- dont replace hyphen in cli values by @borisalekseev in https://github.com/ag2ai/faststream/pull/2426
- docs: update contributing guide with pip upgrade and fix mkdocs serve… by @Kolanar in https://github.com/ag2ai/faststream/pull/2427
- cli: Fix assertion to app object is Application instance by @loRes228 in https://github.com/ag2ai/faststream/pull/2428
- Docs: add llms.txt by @vldmrdev in https://github.com/ag2ai/faststream/pull/2421
- Docs/middlewares main changes by @Maclovi in https://github.com/ag2ai/faststream/pull/2425
- lint: Kafka overrides polish by @Lancetnik in https://github.com/ag2ai/faststream/pull/2429
- Docs: Add example defining custom prometheus metrics to documentation by @Samoed in https://github.com/ag2ai/faststream/pull/2431
- fix: Redis pubsub connection leak in request method by @veronchenko in https://github.com/ag2ai/faststream/pull/2430
- Fix issue 2391 For rabbit and redis fastapi by @ApostolFet in https://github.com/ag2ai/faststream/pull/2437
- Docs: add example with annotated dependencies by @Samoed in https://github.com/ag2ai/faststream/pull/2438
- CI: make the linter great again by @kittywaresz in https://github.com/ag2ai/faststream/pull/2439
- Docs: change scripts folder to
justby @Samoed in https://github.com/ag2ai/faststream/pull/2436 - Closes #2391 add polish for kafka and nats fastapi by @Flosckow in https://github.com/ag2ai/faststream/pull/2442
- fix(asyncapi): promote nested pydantic to components/schemas by @legau in https://github.com/ag2ai/faststream/pull/2445
- fix: pass stream to concurrent subscribers by @Lancetnik in https://github.com/ag2ai/faststream/pull/2449
New Contributors
- @bsoyka made their first contribution in https://github.com/ag2ai/faststream/pull/2399
- @loRes228 made their first contribution in https://github.com/ag2ai/faststream/pull/2396
- @ArtyomVysotskiy made their first contribution in https://github.com/ag2ai/faststream/pull/2402
- @Totorokrut made their first contribution in https://github.com/ag2ai/faststream/pull/2413
- @kittywaresz made their first contribution in https://github.com/ag2ai/faststream/pull/2416
- @Kolanar made their first contribution in https://github.com/ag2ai/faststream/pull/2427
- @vldmrdev made their first contribution in https://github.com/ag2ai/faststream/pull/2421
- @Samoed made their first contribution in https://github.com/ag2ai/faststream/pull/2431
- @veronchenko made their first contribution in https://github.com/ag2ai/faststream/pull/2430
- @legau made their first contribution in https://github.com/ag2ai/faststream/pull/2445
Full Changelog: https://github.com/ag2ai/faststream/compare/0.6.0rc0...0.6.0rc1
- Python
Published by draincoder 7 months ago
faststream - v0.6.0rc0
Description
FastStream 0.6 is a significant technical release that aimed to address many of the current project design issues and unlock further improvements on the path to version 1.0.0. We tried our best to minimize breaking changes, but unfortunately, some aspects were simply not working well. Therefore, we decided to break them in order to move forward.
This release includes:
- Finalized Middleware API
- Finalized Router API
- Introduced dynamic subscribers
- Added support for various serializer backends (such as Msgspec)
- Support for AsyncAPI 3.0 specification
- A range of minor refactors and improvements
The primary goal of this release is to unlock the path towards further features. Therefore, we are pleased to announce that after this release, we plan to work on MQTT #956 and SQS #794 support and move towards version 1.0.0!
Breaking changes
Firstly, we have dropped support for Python 3.8 and Python 3.9. Python 3.9 is almost at the end of its life cycle, so it's a good time to update our minimum version.
FastStream object changes
The broker has become a POSITIONAL-ONLY argument. This means that FastStream(broker=broker) is no longer valid. You should always pass the broker as a separate positional argument, like FastStream(brokers), to ensure proper usage.
This is a preparatory step for FastStream(*brokers) support, which will be introduced in 1.0.0.
AsyncAPI changes
In 0.6, you can't directly pass custom AsyncAPI options to the FastStream constructor anymore.
python
app = FastStream( # doesn't work anymore
...,
title="My App",
version="1.0.0",
description="Some desctiption",
)
You need to create a specification object and pass it manually to the constructor.
```python from faststream import FastStream, AsyncAPI
FastStream( ... specification=AsyncAPI( title="My App", version="1.0.0", description="Some desctiption", ) ) ```
Retry feature removed
Previously, you were able to configure retry attempts for a handler by using the following option:
python
@broker.subscriber("in", retry=True) # was removed
async def handler(): ...
Unfortunately, this option was a design mistake. We apologize for any confusion it may have caused. Technically, it was just a shortcut to message.nack() on error. We have decided that manual acknowledgement control would be more idiomatic and better for the framework. Therefore, we have provided a new feature in its place: ack_policy control.
python
@broker.subscriber("test", ack_policy=AckPolicy.ACK_FIRST)
async def handler() -> None: ...
With ack_policy, you can now control the default acknowledge behavior for your handlers. AckPolicy offers the following options:
- REJECTONERROR (default) – to permanently discard messages on failure.
- NACKONERROR – to redeliver messages in case of failure.
- ACK_FIRST – for scenarios with high throughput where some message loss can be acceptable.
- ACK – if you want the message to be acknowledged, regardless of success or failure.
- MANUAL – fully manually control message acknowledgment (for example, calling #!python message.ack() yourself).
In addition, we have deprecated a few more options prior to ack_policy.
* ack_first=True -> AckPolicy.ACK_FIRST
* no_ack=True -> AckPolicy.MANUAL
Context changes
We have made some changes to our Dependency Injection system, so the global context is no longer available.
Currently, you cannot simply import the context from anywhere and use it freely.
python
from faststeam import context # was removed
Instead, you should create the context in a slightly different way. The FastStream object serves as an entry point for this, so you can place it wherever you need it:
```python from typing import Annotated
from faststream import Context, ContextRepo, FastStream from faststream.rabbit import RabbitBroker
broker = RabbitBroker()
app = FastStream( broker, context=ContextRepo({ "global_dependency": "value", }), ) ```
Everything else about using the context remains the same. You can request it from the context at any place that supports it.
Additionally, Context("broker") and Context("logger") have been moved to the local context. They cannot be accessed from lifespan hooks any longer.
```python @app.after_startup async def start( broker: Broker # does not work anymore ): ...
@router.subscriber async def handler( broker: Broker # still working ): ... ```
This change was also made to support multiple brokers.
Middlewares changes
Also, we have finalized our Middleware API. It now supports all the features we wanted, and we have no plans to change it anymore. First of all, the BaseMiddleware class constructor requires a context (which is no longer global).
python
class BaseMiddleware:
def __init__(self, msg: Any | None, context: ContextRepo) -> None:
self.msg = msg
self.context = context
The context is now available as self.context in all middleware methods.
We also changed the publish_scope function signature.
python
class BaseMiddleware: # old signature
async def publish_scope(
self,
call_next: "AsyncFunc",
msg: Any,
*args: Any,
**kwargs: Any,
) -> Any: ...
Previously, any options passed to brocker.publish("msg", "destination") had to be consumed as *args, **kwargs.
Now, you can consume them all as a single PublishCommand object.
```python from faststream import PublishCommand
class BaseMiddleware: async def publishscope( self, callnext: Callable[[PublishCommand], Awaitable[Any]], cmd: PublishCommand, ) -> Any: ... ```
Thanks to Python 3.13's TypeVars with defaults, BaseMiddleware becomes a generic class and you can specify the PublishCommand for the broker you want to work with.
```python from faststream.rabbit import RabbitPublishCommand
class Middleware(BaseMiddleware[RabbitPublishCommand]): async def publishscope( self, callnext: Callable[[RabbitPublishCommand], Awaitable[Any]], cmd: RabbitPublishCommand, ) -> Any: ... ```
Warning: The methods on_consume, after_consume, on_publish and after_publish will be deprecated and removed in version 0.7. Please use consume_scope and publish_scope instead.
Redis Default Message format changes
In FastStream 0.6 we are using BinaryMessageFormatV1 as a default instead of JSONMessageFormat .
You can find more details in the documentation: https://faststream.ag2.ai/latest/redis/message_format/
New Features:
AsyncAPI3.0 support – now you can choose between
AsyncAPI(schema_version="3.0.0")(default) andAsyncAPI(schema_version="2.6.0")schemas generationMsgspec native support
```python from fast_depends.msgspec import MsgSpecSerializer
broker = Broker(serializer=MsgSpecSerializer()) ```
Subscriber iteration support. This features supports all middlewares and other FastStream features.
```python subscriber = broker.subscriber(...)
await subscriber.start()
async for msg in subscriber: ... ```
Deprecation removed
@broker.subscriber(..., filters=...)removedmessage.decoded_bodyremoved, useawait message.decode()insteadpublish(..., rpc=True)removed, usebroker.request()instead- RabbitMQ
@broker.subscriber(..., reply_config=...)removed, useResponseinstead
Related Issues
- fixes #1742
- close #1228
- close #980
- fixes #1742
- feature #1895
- fixes #1954
- close #1646
- fixes #1625
- close #1904
- close #1507
- close #2056
- close #1308
- close #1901
- close #2029
- close #2094
- close #1881
- close #2216
- close #2215
- close #2031
- close #2178
- close #2239
- fixes #1036
New Contributors
- @stepanbobrik made their first contribution in https://github.com/ag2ai/faststream/pull/2381
Full Changelog: https://github.com/ag2ai/faststream/compare/0.5.48...0.6.0rc0
- Python
Published by Lancetnik 7 months ago
faststream - v0.5.48
What's Changed
This release is part of the migration to FastStream 0.6.
In order to provide great features such as observability and more, FastStream requires the inclusion of additional data in your messages. Redis, on the other hand, allows for the sending of any type of data within a message. Therefore, with this release, we introduce FastStream's own binary message format, which supports any data type you wish to use and can include additional information.
For more information on the message format, please see the documentation
By default, we are still using the JSON message format, but as of version 0.6, the default will change to the binary format. Therefore, you can prepare your services for this change by manually setting a new protocol.
For whole broker:
```python from faststream.redis import RedisBroker, BinaryMessageFormatV1
JSONMessageFormat using by default, but it will be deprecated in future updates
broker = RedisBroker(message_format=BinaryMessageFormatV1) ```
Or for a specifica subscriber / publisher
```python from faststream.redis import RedisBroker, BinaryMessageFormatV1
broker = RedisBroker()
@broker.subscriber(..., messageformat=BinaryMessageFormatV1) @broker.publisher(..., messageformat=BinaryMessageFormatV1) async def handler(msg): return msg ```
Special thanks for @ilya-4real for this great feature!
FastStream require a li * docs: detach index pages from sections by @Lancetnik in https://github.com/ag2ai/faststream/pull/2358 * chore: Force push gh-pages by @dolfinus in https://github.com/ag2ai/faststream/pull/2360 * fix: #2365 respect prefix by publisher in include_router case by @kodsurfer in https://github.com/ag2ai/faststream/pull/2366 * feature: RMQ reply-to explicit exchange by @vesalius512 in https://github.com/ag2ai/faststream/pull/2368 * Added the ability to specify any start identifier for the xreadgroup by @powersemmi in https://github.com/ag2ai/faststream/pull/2309 * feat: (#2061) Redis Binary Format by @ilya-4real in https://github.com/ag2ai/faststream/pull/2287
New Contributors
- @kodsurfer made their first contribution in https://github.com/ag2ai/faststream/pull/2366
- @vesalius512 made their first contribution in https://github.com/ag2ai/faststream/pull/2368
- @powersemmi made their first contribution in https://github.com/ag2ai/faststream/pull/2309
Full Changelog: https://github.com/ag2ai/faststream/compare/0.5.47...0.5.48
- Python
Published by Lancetnik 7 months ago
faststream - v0.5.47
What's Changed
- fix: correct NATS pattern AsyncAPI render by @Lancetnik in https://github.com/ag2ai/faststream/pull/2354
Full Changelog: https://github.com/ag2ai/faststream/compare/0.5.46...0.5.47
- Python
Published by draincoder 8 months ago
faststream - v0.5.46
What's Changed
- fix overlapping patterns by @xgemx in https://github.com/ag2ai/faststream/pull/2349
New Contributors
- @xgemx made their first contribution in https://github.com/ag2ai/faststream/pull/2349
Full Changelog: https://github.com/ag2ai/faststream/compare/0.5.45...0.5.46
- Python
Published by Lancetnik 8 months ago
faststream - v0.5.45
What's Changed
- ci: polish workflows by @Lancetnik in https://github.com/ag2ai/faststream/pull/2331
- Update Release Notes for main by @davorrunje in https://github.com/ag2ai/faststream/pull/2337
- Markdown Code Blocks Auto Set Language by @mahenzon in https://github.com/ag2ai/faststream/pull/2339
- Change docs by @Flosckow in https://github.com/ag2ai/faststream/pull/2343
- chore(deps): bump the pip group with 5 updates by @dependabot in https://github.com/ag2ai/faststream/pull/2344
- ci: fix jobs by @Lancetnik in https://github.com/ag2ai/faststream/pull/2338
Full Changelog: https://github.com/ag2ai/faststream/compare/0.5.44...0.5.45
- Python
Published by Lancetnik 8 months ago
faststream - 0.5.44
What's Changed
- Cli tests by @borisalekseev in https://github.com/ag2ai/faststream/pull/2295
- feature #2091: AsyncAPI HTTP support by @aligeromachine in https://github.com/ag2ai/faststream/pull/2301
- add try/finally to ensure we exit on close error by @JonathanSerafini in https://github.com/ag2ai/faststream/pull/2304
- docs: fix EmailStr duplication in API Reference by @AliakseiYafremau in https://github.com/ag2ai/faststream/pull/2308
- Rewrite AsyncAPI docs and log file config tests by @borisalekseev in https://github.com/ag2ai/faststream/pull/2302
- Add logging kafka errors by @spataphore1337 in https://github.com/ag2ai/faststream/pull/2318
- Add aiokafka error handling by @spataphore1337 in https://github.com/ag2ai/faststream/pull/2319
- feat: add a manual action for deploying from gh-pages branch by @Tapeline in https://github.com/ag2ai/faststream/pull/2325
- Gh pages manual trigger fix by @Tapeline in https://github.com/ag2ai/faststream/pull/2326
- feat: add CODEOWNERS by @draincoder in https://github.com/ag2ai/faststream/pull/2330
- introduce stop method on broker and subscriber and deprecate close by @mahenzon in https://github.com/ag2ai/faststream/pull/2328
- fix: add injection extra options in lifespan by @Sehat1137 in https://github.com/ag2ai/faststream/pull/2335
New Contributors
- @aligeromachine made their first contribution in https://github.com/ag2ai/faststream/pull/2301
- @AliakseiYafremau made their first contribution in https://github.com/ag2ai/faststream/pull/2308
- @mahenzon made their first contribution in https://github.com/ag2ai/faststream/pull/2328
Full Changelog: https://github.com/ag2ai/faststream/compare/0.5.43...0.5.44
- Python
Published by Lancetnik 8 months ago
faststream - v0.5.43
What's Changed
- feat (#2291): add global_qos option to Channel by @Lancetnik in https://github.com/ag2ai/faststream/pull/2297
- feat: added delete method to redis message by @ilya-4real in https://github.com/ag2ai/faststream/pull/2294
- feat: add CLI extra options by @Sehat1137 in https://github.com/ag2ai/faststream/pull/2231
- feat: redis pipeline by @Maclovi in https://github.com/ag2ai/faststream/pull/2270
- fix: replace passive with declare by @Maclovi in https://github.com/ag2ai/faststream/pull/2236
- fix: deprecate log fmt by @Maclovi in https://github.com/ag2ai/faststream/pull/2240
- fix (#2252): remove useless code snippet by @Lancetnik in https://github.com/ag2ai/faststream/pull/2256
- fix (depends): removed SetupError if correct fastapi.Depends is included to annotation by @NelsonNotes in https://github.com/ag2ai/faststream/pull/2280
- Improve license badge by @sobolevn in https://github.com/ag2ai/faststream/pull/2241
- chore: use stricter mypy settings by @sobolevn in https://github.com/ag2ai/faststream/pull/2243
- docs: alwayse use
'in dependency groupds by @sobolevn in https://github.com/ag2ai/faststream/pull/2242 - docs: better highlight first example by @sobolevn in https://github.com/ag2ai/faststream/pull/2245
- docs: add more links to readme by @sobolevn in https://github.com/ag2ai/faststream/pull/2246
- docs: Improve README code examples by @sobolevn in https://github.com/ag2ai/faststream/pull/2247
- docs: reword
Multiple Subscriptionssection by @sobolevn in https://github.com/ag2ai/faststream/pull/2250 - docs: Improve README code examples by @mxnoob in https://github.com/ag2ai/faststream/pull/2253
- docs: highlight more code by @sobolevn in https://github.com/ag2ai/faststream/pull/2255
- docs: Fix code style in
Context Fields Declarationby @sobolevn in https://github.com/ag2ai/faststream/pull/2269 - docs: Improve
Contextdocs by @sobolevn in https://github.com/ag2ai/faststream/pull/2265 - docs: Reword
publishing/decorator.mdby @sobolevn in https://github.com/ag2ai/faststream/pull/2260 - docs: Imporve dependencies docs by @sobolevn in https://github.com/ag2ai/faststream/pull/2263
- docs: Refactor
publishing/index.mddocs by @sobolevn in https://github.com/ag2ai/faststream/pull/2259 - docs: Improve wordings in test docs by @sobolevn in https://github.com/ag2ai/faststream/pull/2258
- docs: Link to test.md from initial tutorial by @sobolevn in https://github.com/ag2ai/faststream/pull/2257
- docs: Improve the documentation page with
Responseclass by @anywindblows in https://github.com/ag2ai/faststream/pull/2238 - docs: fix broken links by @Lancetnik in https://github.com/ag2ai/faststream/pull/2271
- docs: Fix
serialization/index.mdwording and syntax by @sobolevn in https://github.com/ag2ai/faststream/pull/2277 - docs: import types from correct place by @sobolevn in https://github.com/ag2ai/faststream/pull/2278
- docs: Improve serialization examples by @sobolevn in https://github.com/ag2ai/faststream/pull/2282
- docs: improve
Lifespan: Hookspage by @sobolevn in https://github.com/ag2ai/faststream/pull/2284 - docs: -1/+1 fix mistake by @Sehat1137 in https://github.com/ag2ai/faststream/pull/2286
- docs: doc fix by @RenameMe1 in https://github.com/ag2ai/faststream/pull/2288
- docs: remove deprecated syntax from examples by @Lancetnik in https://github.com/ag2ai/faststream/pull/2234
- docs: Improve grammar in
Lifespan: testingby @sobolevn in https://github.com/ag2ai/faststream/pull/2298
New Contributors
- @mxnoob made their first contribution in https://github.com/ag2ai/faststream/pull/2253
- @anywindblows made their first contribution in https://github.com/ag2ai/faststream/pull/2238
- @ilya-4real made their first contribution in https://github.com/ag2ai/faststream/pull/2294
Full Changelog: https://github.com/ag2ai/faststream/compare/0.5.42...0.5.43
- Python
Published by Lancetnik 9 months ago
faststream - v0.5.42
What's Changed
- Feature: add deprecate on retry arg by @Flosckow in https://github.com/ag2ai/faststream/pull/2224
- Fix default rabbit timestamp by @dmder in https://github.com/ag2ai/faststream/pull/2226
- Fix ASGIMultiprocess args mismatch by @dolfinus in https://github.com/ag2ai/faststream/pull/2228
- Add docs about cli --log-file by @RenameMe1 in https://github.com/ag2ai/faststream/pull/2229
- fix (#2227): use ms as generated timestamp in Kafka by @Lancetnik in https://github.com/ag2ai/faststream/pull/2230
- feat: Add AsyncAPI HTTP Support by @tmulligan98 in https://github.com/ag2ai/faststream/pull/2142
New Contributors
- @dmder made their first contribution in https://github.com/ag2ai/faststream/pull/2226
- @tmulligan98 made their first contribution in https://github.com/ag2ai/faststream/pull/2142
Full Changelog: https://github.com/ag2ai/faststream/compare/0.5.41...0.5.42
- Python
Published by Lancetnik 9 months ago
faststream - v0.5.41
What's Changed
- feature: injection FastAPI in StreamMessage scope by @IvanKirpichnikov in https://github.com/ag2ai/faststream/pull/2205
- feat: logging configuration from file by @RenameMe1 in https://github.com/ag2ai/faststream/pull/2203
- feat: add cluster metadata request via aiokafka admin client in ping by @murzinov01 in https://github.com/ag2ai/faststream/pull/2212
New Contributors
- @murzinov01 made their first contribution in https://github.com/ag2ai/faststream/pull/2212
Full Changelog: https://github.com/ag2ai/faststream/compare/0.5.40...0.5.41
- Python
Published by Lancetnik 9 months ago
faststream - v0.5.40
What's Changed
- fix: repair AsyncAPI render by @Sehat1137 in https://github.com/ag2ai/faststream/pull/2175
- fix: prevent redis stream subscriber timeout when polling_interval exceeds 3000ms by @caozheliang in https://github.com/ag2ai/faststream/pull/2200
- feat: auto flush confluent broker by @mdaffad in https://github.com/ag2ai/faststream/pull/2182
- feat (#2169): Error on faststream.Context instead of faststream.[broker].fastapi.Context by @NelsonNotes in https://github.com/ag2ai/faststream/pull/2181
- docs: add information about manual AsyncAPI hosting by @Sehat1137 in https://github.com/ag2ai/faststream/pull/2177
- docs: update Django integration guide and add FastStream ORM access e… by @Lodimup in https://github.com/ag2ai/faststream/pull/2187
- docs: add Django management command integration by @Lodimup in https://github.com/ag2ai/faststream/pull/2190
- chore: bump redis to 6.0.0 by @Lancetnik in https://github.com/ag2ai/faststream/pull/2201
- chore: deprecate connect options by @Lancetnik in https://github.com/ag2ai/faststream/pull/2202
New Contributors
- @Lodimup made their first contribution in https://github.com/ag2ai/faststream/pull/2187
- @caozheliang made their first contribution in https://github.com/ag2ai/faststream/pull/2200
Full Changelog: https://github.com/ag2ai/faststream/compare/0.5.39...0.5.40
- Python
Published by Lancetnik 10 months ago
faststream - v0.5.39
What's Changed
- feat: type client args by @pepellsd in https://github.com/ag2ai/faststream/pull/2165
- docs: Added filtering technical information by @0xWEBMILK in https://github.com/ag2ai/faststream/pull/2161
- docs: access the msg attribute of BaseMiddleware by @geth-network in https://github.com/ag2ai/faststream/pull/2166
- docs: improve otel docs by @draincoder in https://github.com/ag2ai/faststream/pull/2167
- [FS-2158] Explicit error in case of mixed up fastapi.Depends and faststream.Depends by @NelsonNotes in https://github.com/ag2ai/faststream/pull/2160
- feat: raise exception at wrong router including by @bshelkhonov in https://github.com/ag2ai/faststream/pull/2172
- feat: extend asyncapi view for multiply subscribers by @Sehat1137 in https://github.com/ag2ai/faststream/pull/2174
- feat: add autoflush on kafka producer by @mdaffad in https://github.com/ag2ai/faststream/pull/2170
- feat: add RabbitMQ Channel object by @Lancetnik in https://github.com/ag2ai/faststream/pull/2171
New Contributors
- @geth-network made their first contribution in https://github.com/ag2ai/faststream/pull/2166
- @mdaffad made their first contribution in https://github.com/ag2ai/faststream/pull/2170
Full Changelog: https://github.com/ag2ai/faststream/compare/0.5.38...v0.5.39
- Python
Published by kumaranvpl 11 months ago
faststream - v0.5.38
What's Changed
- Update Release Notes for 0.5.37 by @airt-release-notes-updater in https://github.com/ag2ai/faststream/pull/2140
- chore(deps): bump the pip group with 6 updates by @dependabot in https://github.com/ag2ai/faststream/pull/2144
- fix: pydantic211 compat by @Lancetnik in https://github.com/ag2ai/faststream/pull/2150
- Tweak RabbitMQ queue argument lists by @Arseniy-Popov in https://github.com/ag2ai/faststream/pull/2148
- fix: prevent duplicate logging handler registration when calling broker.start() by @banksemi in https://github.com/ag2ai/faststream/pull/2153
- chore(deps): bump the pip group with 5 updates by @dependabot in https://github.com/ag2ai/faststream/pull/2154
- Move to ag2ai organization by @davorrunje in https://github.com/ag2ai/faststream/pull/2156
New Contributors
- @banksemi made their first contribution in https://github.com/ag2ai/faststream/pull/2153
Full Changelog: https://github.com/ag2ai/faststream/compare/0.5.37...0.5.38
- Python
Published by davorrunje 11 months ago
faststream - v0.5.37
What's Changed
- fix: correct Confluent options name mapping by @Lancetnik in https://github.com/airtai/faststream/pull/2137
- fix: correct call_decorators wrapping order by @Lancetnik in https://github.com/airtai/faststream/pull/2138
Full Changelog: https://github.com/airtai/faststream/compare/0.5.36...0.5.37
- Python
Published by Lancetnik 11 months ago
faststream - v0.5.36
What's Changed
- fix #2088: respect parsed sasl_mechanism by @Lancetnik in https://github.com/airtai/faststream/pull/2092
- Add delay to unassigned consumer warning by @Arseniy-Popov in https://github.com/airtai/faststream/pull/2090
- fix: resolve forward refs in FastAPI integration by @Lancetnik in https://github.com/airtai/faststream/pull/2096
- fix: unwrap handler function when getting dependant by @Yakov-Varnaev in https://github.com/airtai/faststream/pull/2093
- fix: make
CriticalLogMiddlewarerespect broker log level (#2130) by @fadedDexofan in https://github.com/airtai/faststream/pull/2131 - Fixed nested dataclasses schema generation by @NelsonNotes in https://github.com/airtai/faststream/pull/2097
- refactoring ConfluentConfig by @diskream in https://github.com/airtai/faststream/pull/2098
- refactored subscription Annotation Serialization by @MaximGit1 in https://github.com/airtai/faststream/pull/2112
- docs: added pros and cons to publishers page by @0xWEBMILK in https://github.com/airtai/faststream/pull/2103
- docs: follow off logging recommendations by @guitvcer in https://github.com/airtai/faststream/pull/2127
- docs: add example for probes by @Sehat1137 in https://github.com/airtai/faststream/pull/2108
- docs: fix footer after gurubase intagration by @Rusich90 in https://github.com/airtai/faststream/pull/2120
- docs: Toggle Gurubase widget theme by @bshelkhonov in https://github.com/airtai/faststream/pull/2117
- docs(#2109): Inlines the include files directly into the location where it is used(faststream.md, scheduling.md) by @MaestroXXXVIII in https://github.com/airtai/faststream/pull/2113
- docs(#2109): "getting-started/subscription" section has been updated by @MaximGit1 in https://github.com/airtai/faststream/pull/2114
- docs(#2109): make PR reference by @Lancetnik in https://github.com/airtai/faststream/pull/2111
- docs(#2109): inline includes getting-started/lifespan by @Sabfo in https://github.com/airtai/faststream/pull/2115
- docs(#2109): inline includes getting-started/dependencies by @Sabfo in https://github.com/airtai/faststream/pull/2116
- docs(#2109): inline includes getting-started/serialization/decoder.md by @s-v-y-a-t in https://github.com/airtai/faststream/pull/2118
- docs(#2109): deleted include code in getting_started/index by @RenameMe1 in https://github.com/airtai/faststream/pull/2119
- docs(#2109): Docs/include inline by @close2code-palm in https://github.com/airtai/faststream/pull/2123
- docs(#2109): deleted include code in getting_started/opentelemetry by @RenameMe1 in https://github.com/airtai/faststream/pull/2125
- docs(#2109): deleted include code in getting_started/prometheus by @RenameMe1 in https://github.com/airtai/faststream/pull/2124
- docs(#2109): inline includes getting-started/integrations by @TurtleOld in https://github.com/airtai/faststream/pull/2121
- docs(#2109): remove docs includes context, serialization, publishing by @TurtleOld in https://github.com/airtai/faststream/pull/2126
New Contributors
- @NelsonNotes made their first contribution in https://github.com/airtai/faststream/pull/2097
- @diskream made their first contribution in https://github.com/airtai/faststream/pull/2098
- @MaximGit1 made their first contribution in https://github.com/airtai/faststream/pull/2112
- @MaestroXXXVIII made their first contribution in https://github.com/airtai/faststream/pull/2113
- @Sabfo made their first contribution in https://github.com/airtai/faststream/pull/2115
- @s-v-y-a-t made their first contribution in https://github.com/airtai/faststream/pull/2118
- @bshelkhonov made their first contribution in https://github.com/airtai/faststream/pull/2117
- @RenameMe1 made their first contribution in https://github.com/airtai/faststream/pull/2119
- @close2code-palm made their first contribution in https://github.com/airtai/faststream/pull/2123
- @TurtleOld made their first contribution in https://github.com/airtai/faststream/pull/2121
- @guitvcer made their first contribution in https://github.com/airtai/faststream/pull/2127
- @fadedDexofan made their first contribution in https://github.com/airtai/faststream/pull/2131
Full Changelog: https://github.com/airtai/faststream/compare/0.5.35...0.5.36
- Python
Published by Lancetnik 12 months ago
faststream - v0.5.35
What's Changed
- Add concurrent-between-partitions kafka subscriber by @Arseniy-Popov in https://github.com/airtai/faststream/pull/2017
- chore: make uv sync working by @Lancetnik in https://github.com/airtai/faststream/pull/2041
- docs: add Ask AI button with Gurubase widget by @Lancetnik in https://github.com/airtai/faststream/pull/2042
- docs: create FastStream image shield by @Lancetnik in https://github.com/airtai/faststream/pull/2062
- Close #2060 by @Flosckow in https://github.com/airtai/faststream/pull/2063
- feat: allow broker setting in on_startup hook by @Yakov-Varnaev in https://github.com/airtai/faststream/pull/2073
- ImportError raises change by @0xWEBMILK in https://github.com/airtai/faststream/pull/2080
- docs: Fix distributed spelling error in task scheduling page by @Sandldan in https://github.com/airtai/faststream/pull/2081
- Exclude confluent-kafka 2.8.1 by @Yakov-Varnaev in https://github.com/airtai/faststream/pull/2084
New Contributors
- @Arseniy-Popov made their first contribution in https://github.com/airtai/faststream/pull/2017
- @Yakov-Varnaev made their first contribution in https://github.com/airtai/faststream/pull/2073
- @0xWEBMILK made their first contribution in https://github.com/airtai/faststream/pull/2080
- @Sandldan made their first contribution in https://github.com/airtai/faststream/pull/2081
Full Changelog: https://github.com/airtai/faststream/compare/0.5.34...0.5.35
- Python
Published by Lancetnik 12 months ago
faststream - v0.5.34
What's Changed
- fix: when / present in virtual host name and passing as uri by @pepellsd in https://github.com/airtai/faststream/pull/1979
- fix (#2013): allow to create publisher in already connected broker by @Lancetnik in https://github.com/airtai/faststream/pull/2024
- feat: add BatchBufferOverflowException by @spataphore1337 in https://github.com/airtai/faststream/pull/1990
- feat: add static instrumentation info by @draincoder in https://github.com/airtai/faststream/pull/1996
- docs: remove reference of "faststream.access" by @rishabhc32 in https://github.com/airtai/faststream/pull/1995
- docs: fixed typo in publishing/test.md by @AlexPetul in https://github.com/airtai/faststream/pull/2009
- docs: ability to declare queue/exchange binding by @MagicAbdel in https://github.com/airtai/faststream/pull/2011
- docs: fix spelling mistake of
/healthby @herotomg in https://github.com/airtai/faststream/pull/2023 - docs: update aio-pika external docs URL as it has been moved by @HybridBit in https://github.com/airtai/faststream/pull/1984
- refactor: add type annotations for RabbitQueue and enum for queue type by @pepellsd in https://github.com/airtai/faststream/pull/2002
New Contributors
- @HybridBit made their first contribution in https://github.com/airtai/faststream/pull/1984
- @rishabhc32 made their first contribution in https://github.com/airtai/faststream/pull/1995
- @AlexPetul made their first contribution in https://github.com/airtai/faststream/pull/2009
- @MagicAbdel made their first contribution in https://github.com/airtai/faststream/pull/2011
- @herotomg made their first contribution in https://github.com/airtai/faststream/pull/2023
Full Changelog: https://github.com/airtai/faststream/compare/0.5.33...0.5.34
- Python
Published by Lancetnik about 1 year ago
faststream - v0.5.33
What's Changed
Just a Confluent & Kafka hotfix. Messages without body (with key only) parsing correctly now.
- fix: Confluent, read messages under lock by @Lancetnik in https://github.com/airtai/faststream/pull/1963
- fix #1967: correct empty kafka message body processing by @Lancetnik in https://github.com/airtai/faststream/pull/1968
Full Changelog: https://github.com/airtai/faststream/compare/0.5.32...0.5.33
- Python
Published by Lancetnik about 1 year ago
faststream - v0.5.32
What's Changed
Thanks to @Flosckow one more time for a new release! Now you have an ability to consume Confluent messages (in autocommit mode) concurrently!
```python from faststream.confluent import KafkaBroker
broker = KafkaBroker()
@broker.subscriber("topic", maxworkers=10)
async def handler():
"""Using `maxworkersoption you can process up to 10 messages by one subscriber concurrently"""
``
Also, thanks to @Sehat1137 for his ASGI CLI support bugfixes
- fix #1959: propagate logger to Confluent by @Lancetnik in https://github.com/airtai/faststream/pull/1960
- Concurrent confluent kafka by @Flosckow in https://github.com/airtai/faststream/pull/1961
- fix: extend validation for --factory param by @Sehat1137 in https://github.com/airtai/faststream/pull/1964
- fix: support only uvicorn ASGI Runner by @Sehat1137 in https://github.com/airtai/faststream/pull/1965
Full Changelog: https://github.com/airtai/faststream/compare/0.5.31...0.5.32
- Python
Published by Lancetnik about 1 year ago
faststream - v0.5.31
What's Changed
Well, you (community) made a new breathtaken release for us! Thanks to all of this release contributors.
Special thanks to @Flosckow . He promotes a new perfect feature - concurrent Kafka subscriber (with autocommit mode)
```python from faststream.kafka import KafkaBroker
broker = KafkaBroker()
@broker.subscriber("topic", maxworkers=10)
async def handler():
"""Using `maxworkersoption you can process up to 10 messages by one subscriber concurrently"""
``
Also, thanks to @Sehat1137 with his ASGI CLI start fixins - now you can use FastStream CLI to scale your AsgiFastStream application by workers
bash
faststream run main:asgi --workers 2
There are a lot of other incredible changes you made:
- feat: add NatsMessage ack_sync method #1906 by @wpn10 in https://github.com/airtai/faststream/pull/1909
- feat: support running ASGI app with Uvicorn using file descriptor by @minhyeoky in https://github.com/airtai/faststream/pull/1923
- feat: Add kafka concurrent subscriber by @Flosckow in https://github.com/airtai/faststream/pull/1912
- fix: bug when using one register for several middleware by @roma-frolov in https://github.com/airtai/faststream/pull/1921
- fix: change oauth type in asyncapi schema by @spataphore1337 in https://github.com/airtai/faststream/pull/1926
- fix: HandlerException ignored by @roma-frolov in https://github.com/airtai/faststream/pull/1928
- fix: Pomo/nats router by @Drakorgaur in https://github.com/airtai/faststream/pull/1932
- fix: RabbitBroker's ping is more objective by @roma-frolov in https://github.com/airtai/faststream/pull/1933
- fix: AsyncAPI 2.6.0 fix empty channels for KafkaSubscriber and ConfluentSubscriber if partitions provided by @KrySeyt in https://github.com/airtai/faststream/pull/1930
- fix: #1874 support workers for ASGI FastStream by @Sehat1137 in https://github.com/airtai/faststream/pull/1936
- fix: correct middlewares order by @sheldygg in https://github.com/airtai/faststream/pull/1935
- chore: run PR altering automated check in same CI job by @kumaranvpl in https://github.com/airtai/faststream/pull/1942
- chore: pin typer version by @Lancetnik in https://github.com/airtai/faststream/pull/1947
New Contributors
- @wpn10 made their first contribution in https://github.com/airtai/faststream/pull/1909
- @minhyeoky made their first contribution in https://github.com/airtai/faststream/pull/1923
Full Changelog: https://github.com/airtai/faststream/compare/0.5.30...0.5.31
- Python
Published by Lancetnik about 1 year ago
faststream - v0.5.30
What's Changed
- Introducing FastStream Guru on Gurubase.io by @kursataktas in https://github.com/airtai/faststream/pull/1903
- docs: add gurubase badge to the doc by @Lancetnik in https://github.com/airtai/faststream/pull/1905
- fix: allow users to pass
nkeys_seed_stras argument for NATS broker. by @Drakorgaur in https://github.com/airtai/faststream/pull/1908 - Add more warning's to nats subscription factory by @sheldygg in https://github.com/airtai/faststream/pull/1907
- fix: correct working with dependencies versions by @Lancetnik in https://github.com/airtai/faststream/pull/1918
New Contributors
- @kursataktas made their first contribution in https://github.com/airtai/faststream/pull/1903
- @Drakorgaur made their first contribution in https://github.com/airtai/faststream/pull/1908
Full Changelog: https://github.com/airtai/faststream/compare/0.5.29...0.5.30
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.29
What's Changed
- feat: add explicit message source enum by @Lancetnik in https://github.com/airtai/faststream/pull/1866
- Change uv manual installation to setup-uv in CI by @pavelepanov in https://github.com/airtai/faststream/pull/1871
- refactor: make Task and Concurrent mixins broker-agnostic by @Lancetnik in https://github.com/airtai/faststream/pull/1873
- Add support for environment variables in faststream run command by @ulbwa in https://github.com/airtai/faststream/pull/1876
- fastapi example update by @xodiumx in https://github.com/airtai/faststream/pull/1875
- Do not import
fake_contextif not needed by @sobolevn in https://github.com/airtai/faststream/pull/1877 - build: add warning about manual lifespan_context by @vectorvp in https://github.com/airtai/faststream/pull/1878
- Add trending badge by @davorrunje in https://github.com/airtai/faststream/pull/1882
- feat: add class method to create a baggage instance from headers by @vectorvp in https://github.com/airtai/faststream/pull/1885
- ops: update docker compose commands to compose V2 in scripts by @vectorvp in https://github.com/airtai/faststream/pull/1889
New Contributors
- @pavelepanov made their first contribution in https://github.com/airtai/faststream/pull/1871
- @xodiumx made their first contribution in https://github.com/airtai/faststream/pull/1875
- @sobolevn made their first contribution in https://github.com/airtai/faststream/pull/1877
- @vectorvp made their first contribution in https://github.com/airtai/faststream/pull/1878
Full Changelog: https://github.com/airtai/faststream/compare/0.5.28...0.5.29
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.28
What's Changed
There were a lot of time since 0.5.7 OpenTelemetry release and now we completed Observability features we planned! FastStream supports Prometheus metrics in a native way!
Special thanks to @roma-frolov and @draincoder (again) for it!
To collect Prometheus metrics for your FastStream application you just need to install special distribution
cmd
pip install faststream[prometheus]
And use PrometheusMiddleware. Also, it could be helpful to use our ASGI to serve metrics endpoint in the same app.
```python from prometheusclient import CollectorRegistry, makeasgi_app from faststream.asgi import AsgiFastStream from faststream.nats import NatsBroker from faststream.nats.prometheus import NatsPrometheusMiddleware
registry = CollectorRegistry()
broker = NatsBroker( middlewares=( NatsPrometheusMiddleware(registry=registry), ) )
app = AsgiFastStream( broker, asgiroutes=[ ("/metrics", makeasgi_app(registry)), ] ) ```
Moreover, we have a ready-to-use Grafana dashboard you can just import and use!
To find more information about Prometheus support, just visit our documentation.
All changes
- docs: Correct minimum FastAPI version for lifespan handling by @tim-hutchinson in https://github.com/airtai/faststream/pull/1853
- add aiogram example by @IvanKirpichnikov in https://github.com/airtai/faststream/pull/1858
- Feature: Prometheus Middleware by @roma-frolov in https://github.com/airtai/faststream/pull/1791
- Add in-progress tutorial to how-to section by @sheldygg in https://github.com/airtai/faststream/pull/1859
- docs: Add info about Grafana dashboard by @draincoder in https://github.com/airtai/faststream/pull/1863
New Contributors
- @tim-hutchinson made their first contribution in https://github.com/airtai/faststream/pull/1853
Full Changelog: https://github.com/airtai/faststream/compare/0.5.27...0.5.28
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.27
What's Changed
- fix: anyio major version parser by @dotX12 in https://github.com/airtai/faststream/pull/1850
New Contributors
- @dotX12 made their first contribution in https://github.com/airtai/faststream/pull/1850
Full Changelog: https://github.com/airtai/faststream/compare/0.5.26...0.5.27
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.26
What's Changed
This it the official Python 3.13 support! Now, FastStream works (and tested) at Python 3.8 - 3.13 versions!
Warning: Python3.8 is EOF since 3.13 release and we plan to drop it support in FastStream 0.6.0 version.
Also, current release has little bugfixes related to CLI and AsyncAPI schema.
- fix: asgi docs by @Sehat1137 in https://github.com/airtai/faststream/pull/1828
- docs: add link to RU TG community by @Lancetnik in https://github.com/airtai/faststream/pull/1831
- docs: add dynaconf NATS HowTo example by @sheldygg in https://github.com/airtai/faststream/pull/1832
- Fix AsyncAPI 2.6.0 operation label by @KrySeyt in https://github.com/airtai/faststream/pull/1835
- fix: correct CLI factory behavior by @Lancetnik in https://github.com/airtai/faststream/pull/1838
- Autocommit precommit changes by @kumaranvpl in https://github.com/airtai/faststream/pull/1840
- Add devcontainers supporting all the brokers by @kumaranvpl in https://github.com/airtai/faststream/pull/1839
- Replace async Event with bool by @Olegt0rr in https://github.com/airtai/faststream/pull/1846
- Add support for Python 3.13 by @davorrunje in https://github.com/airtai/faststream/pull/1845
Full Changelog: https://github.com/airtai/faststream/compare/0.5.25...0.5.26
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.25
What's Changed
- fix: CLI hotfix by @Lancetnik in https://github.com/airtai/faststream/pull/1816
Full Changelog: https://github.com/airtai/faststream/compare/0.5.24...0.5.25
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.24
What's Changed
- Replace while-sleep with Event by @Olegt0rr in https://github.com/airtai/faststream/pull/1683
- feat: add explicit CLI import error by @Lancetnik in https://github.com/airtai/faststream/pull/1785
- fix (#1780): replace / in generated json refs by @Lancetnik in https://github.com/airtai/faststream/pull/1786
- Fix: this commit resolve #1765 by @Flosckow in https://github.com/airtai/faststream/pull/1789
- fix (#1792): make RMQ publisher.publish reply_to optional by @Lancetnik in https://github.com/airtai/faststream/pull/1795
- fix (#1793): FastStream Response support in FastAPI integration by @Lancetnik in https://github.com/airtai/faststream/pull/1796
- Update exception.md by @pepellsd in https://github.com/airtai/faststream/pull/1803
- Fixes the CI bug that allows PRs with failed tests to be merged. by @davorrunje in https://github.com/airtai/faststream/pull/1807
- feat: add CLI support for AsgiFastStream by @Sehat1137 in https://github.com/airtai/faststream/pull/1782
- docs: add contributors page by @kumaranvpl in https://github.com/airtai/faststream/pull/1808
- fix: correct dependency injection of custom context fields implementing partial eq/ne by @antoinehumbert in https://github.com/airtai/faststream/pull/1809
- do not assume discriminator is not a property by @lecko-cngroup in https://github.com/airtai/faststream/pull/1811
New Contributors
- @Olegt0rr made their first contribution in https://github.com/airtai/faststream/pull/1683
- @pepellsd made their first contribution in https://github.com/airtai/faststream/pull/1803
- @antoinehumbert made their first contribution in https://github.com/airtai/faststream/pull/1809
- @lecko-cngroup made their first contribution in https://github.com/airtai/faststream/pull/1811
Full Changelog: https://github.com/airtai/faststream/compare/0.5.23...0.5.24
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.23
What's Changed
We made last release just a few days ago, but there are some big changes here already!
First of all - you can't use
faststream run ...command withoutpip install faststream[cli]distribution anymore. It was made to minify default (and production) distribution by removing typer (rich and click) dependencies. CLI is a development-time feature, so if you don't need - just don't install! Special thanks to @RubenRibGarcia for this changeThe next big change - Kafka publish confirmations by default! Previous FastStream version was working in publish & forgot style, but the new one blocks your
broker.publish(...)call until Kafka confirmation frame received. To fallback to previous logic just use a new flagbroker.publish(..., no_confirm=True)Also, we made one more step forward to our 1.0.0 features plan! @KrySeyt implements
get_onefeature. Now you can use any broker subscriber to get messages in imperative style:
python
subscriber = broker.subscriber("in")
...
msg = await subscriber.get_one(timeout=5.0)
- And the last one: @draincoder continues to develop OTEL support! Now he provides us with an ability to use OTEL spans and baggage in a comfortable FastStream-style. Just take a look at the new documentation section
Big thanks to all new and old contributors who makes such a great release!
- feat: AsgiFastStream hooks init options by @Lancetnik in https://github.com/airtai/faststream/pull/1768
- fix (#1748): add Kafka publish no_confirm option by @Lancetnik in https://github.com/airtai/faststream/pull/1749
- Fix GeneralExceptionHandler typehint by @sheldygg in https://github.com/airtai/faststream/pull/1773
- Add
broker.subscriber().get_one()by @KrySeyt in https://github.com/airtai/faststream/pull/1726 - Add OTel baggage support by @draincoder in https://github.com/airtai/faststream/pull/1692
- build(#1430): separate cli faststream to its own distribution by @RubenRibGarcia in https://github.com/airtai/faststream/pull/1769
New Contributors
- @RubenRibGarcia made their first contribution in https://github.com/airtai/faststream/pull/1769
Full Changelog: https://github.com/airtai/faststream/compare/0.5.22...0.5.23
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.22
What's Changed
- fix: FastAPI 0.112.4+ compatibility by @Lancetnik in https://github.com/airtai/faststream/pull/1766
Full Changelog: https://github.com/airtai/faststream/compare/0.5.21...0.5.22
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.21
What's Changed
- feat (#1168): allow include regular router to FastAPI integration by @Lancetnik in https://github.com/airtai/faststream/pull/1747
- In case if core-subscriber receive a JetStream message. by @sheldygg in https://github.com/airtai/faststream/pull/1751
- feat: explicit final message commit status by @Lancetnik in https://github.com/airtai/faststream/pull/1754
- Fix/context get local default by @Lancetnik in https://github.com/airtai/faststream/pull/1752
- fix (#1759): correct ConfluentConfig with enums by @Lancetnik in https://github.com/airtai/faststream/pull/1762
- Adds SASLOAuthBearer flow to AIO Kafka's Faststream Security Parsing by @sifex in https://github.com/airtai/faststream/pull/1761
- fix: FastAPI 0.112.3 compatibility by @Lancetnik in https://github.com/airtai/faststream/pull/1763
Full Changelog: https://github.com/airtai/faststream/compare/0.5.20...0.5.21
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.20
What's Changed
- Refactor: change publisher fake subscriber generation logic by @Lancetnik in https://github.com/airtai/faststream/pull/1729
- Remove docs/api directory before running createapidocs script by @kumaranvpl in https://github.com/airtai/faststream/pull/1730
- CI: automatically approve & merge Dependabot PRs by @dolfinus in https://github.com/airtai/faststream/pull/1720
- Run check broken links after docs deploy by @kumaranvpl in https://github.com/airtai/faststream/pull/1733
- Feature: extend FastStream.init by @Sehat1137 in https://github.com/airtai/faststream/pull/1734
- Fix Dependabot group names by @dolfinus in https://github.com/airtai/faststream/pull/1737
- Fix: respect ignored exceptions by @Lancetnik in https://github.com/airtai/faststream/pull/1735
- Fix: update FastAPI to 0.112.2 by @Lancetnik in https://github.com/airtai/faststream/pull/1736
Full Changelog: https://github.com/airtai/faststream/compare/0.5.19...0.5.20
- Python
Published by kumaranvpl over 1 year ago
faststream - v0.5.19
What's Changed
The current release is planned as a latest feature release before 0.6.0. All other 0.5.19+ releases will contain only minor bugfixes and all the team work will be focused on next major one.
There a lot of changes we want to present you now though!
New RPC feature
Our old broker.publish(..., rpc=True) implementation was very limited and ugly. Now we present you a much suitable way to do the same thing - broker.request(...)
```python from faststream import FastStream from faststream.nats import NatsBroker, NatsResponse, NatsMessage
broker = NatsBroker()
@broker.subscriber("test") async def echo_handler(msg): return NatsResponse(msg, headers={"x-token": "some-token"})
@app.afterstartup async def test(): # The old implementation was returning just a message body, # so you wasn't be able to check response headers, etc msgbody: str = await broker.publish("ping", "test", rpc=True) assert msg_body == "ping"
# Now request return the whole message and you can validate any part of it
# moreover it triggers all your middlewares
response: NatsMessage = await broker.request("ping", "test")
```
Exception Middleware
Community asked and community did! Sorry, we've been putting off this job for too long. Thanks for @Rusich90 to help us! Now you can wrap your application by a suitable exception handlers. Just check the new documentation to learn more.
Details
Also, there are a lot of minor changes you can find below. Big thanks to all our old and new contributors! You are amazing ones!
- Bug: resolve missing seek on kafka fakeconsumer by @JonathanSerafini in https://github.com/airtai/faststream/pull/1682
- replace pip with uv in CI by @newonlynew in https://github.com/airtai/faststream/pull/1688
- Added support for JSON serialization and deserialization by other libraries by @ulbwa in https://github.com/airtai/faststream/pull/1687
- Fix batch nack by @kumaranvpl in https://github.com/airtai/faststream/pull/1689
- Remove unused ignores by @kumaranvpl in https://github.com/airtai/faststream/pull/1690
- docs: add Kafka HowTo section by @Lancetnik in https://github.com/airtai/faststream/pull/1686
- Add missed out groupinstanceid as subscriber and router parameter by @kumaranvpl in https://github.com/airtai/faststream/pull/1695
- Set warnunusedignores mypy config to true by @kumaranvpl in https://github.com/airtai/faststream/pull/1694
- Skip building docs in pre-commit CI job by @kumaranvpl in https://github.com/airtai/faststream/pull/1704
- Fix to run check-docs-changes workflow in forks by @kumaranvpl in https://github.com/airtai/faststream/pull/1710
- feature/exception_middleware add exception middleware by @Rusich90 in https://github.com/airtai/faststream/pull/1604
- Remove mentions of faststream-gen by @kumaranvpl in https://github.com/airtai/faststream/pull/1717
- Fix multiple docs issues by @kumaranvpl in https://github.com/airtai/faststream/pull/1718
- CI: group Dependabot updates into one PR by @dolfinus in https://github.com/airtai/faststream/pull/1719
- feat: CLI DX improvements by @Lancetnik in https://github.com/airtai/faststream/pull/1723
- fix: use async test subscribers functions by @Lancetnik in https://github.com/airtai/faststream/pull/1725
- feat: add broker.request method by @Lancetnik in https://github.com/airtai/faststream/pull/1649
New Contributors
- @JonathanSerafini made their first contribution in https://github.com/airtai/faststream/pull/1682
- @Rusich90 made their first contribution in https://github.com/airtai/faststream/pull/1604
- @dolfinus made their first contribution in https://github.com/airtai/faststream/pull/1719
Full Changelog: https://github.com/airtai/faststream/compare/0.5.18...0.5.19
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.18
What's Changed
- Added additional parameters to HandlerException by @ulbwa in https://github.com/airtai/faststream/pull/1659
- Removed Doc and Added docstrings instead by @Kirill-Stepankov in https://github.com/airtai/faststream/pull/1662
- feat (#1663): support default values for Header by @Lancetnik in https://github.com/airtai/faststream/pull/1667
- fix (#1660): correct patch nested JStream subjects by @Lancetnik in https://github.com/airtai/faststream/pull/1666
- fix: add ConfluentRouter FastAPI missed init options by @Lancetnik in https://github.com/airtai/faststream/pull/1664
- Add kerberos support for confluent broker by @kumaranvpl in https://github.com/airtai/faststream/pull/1670
- Fix nack for kafka and confluent brokers by @kumaranvpl in https://github.com/airtai/faststream/pull/1678
- fix: support all RMQ exchanges in AsyncAPI by @Lancetnik in https://github.com/airtai/faststream/pull/1679
- fix: catch parser errors by @Lancetnik in https://github.com/airtai/faststream/pull/1680
New Contributors
- @ulbwa made their first contribution in https://github.com/airtai/faststream/pull/1659
- @Kirill-Stepankov made their first contribution in https://github.com/airtai/faststream/pull/1662
Full Changelog: https://github.com/airtai/faststream/compare/0.5.17...0.5.18
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.17
What's Changed
Just a hotfix for the following case:
```python @broker.subscriber(...) async def handler(): return NatsResponse(...)
await broker.publish(..., rpc=True) ```
- chore(deps): bump semgrep from 1.83.0 to 1.84.0 by @dependabot in https://github.com/airtai/faststream/pull/1650
- chore(deps): bump mkdocs-material from 9.5.30 to 9.5.31 by @dependabot in https://github.com/airtai/faststream/pull/1651
- Update Release Notes for 0.5.16 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1652
- hotfix: correct NatsResponse processing in RPC case by @Lancetnik in https://github.com/airtai/faststream/pull/1654
Full Changelog: https://github.com/airtai/faststream/compare/0.5.16...0.5.17
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.16
What's Changed
Well, seems like it is the biggest patch release ever 😃
Detail Responses
First of all, thanks to all new contributors, who helps us to improve the project! They made a huge impact to this release by adding new Kafka security mechanisms and extend Response API - now you can use broker.Response to publish detail information from handler
python
@broker.subscriber("in")
@broker.publisher("out")
async def handler(msg):
return Response(msg, headers={"response_header": "Hi!"}) # or KafkaResponse, etc
ASGI
Also, we added a new huge feature - ASGI support!
Nope, we are not HTTP-framework now, but it is a little ASGI implementation to provide you with an ability to host documentation, use k8s http-probes and serve metrics in the same with you broker runtime without any dependencies.
You just need to use AsgiFastStream class
```python from faststream.nats import NatsBroker from faststream.asgi import AsgiFastStream, makepingasgi
from prometheusclient import makeasgiapp from prometheusclient.registry import CollectorRegistry
broker = NatsBroker()
prometheus_registry = CollectorRegistry()
app = AsgiFastStream( broker, asyncapipath="/docs", asgiroutes=[ ("/health", makepingasgi(broker, timeout=5.0)), ("/metrics", makeasgiapp(registry=prometheus_registry)) ] ) ```
And then you can run it like a regular ASGI app
shell
uvicorn main:app
Confluent partitions
One more thing - manual topic partition assignment for Confluent. We have it already for aiokafka, but missed it here... Now it was fixed!
```python from faststream.confluent import TopicPartition
@broker.subscriber(partitions=[ TopicPartition("test-topic", partition=0), ]) async def handler(): ... ```
Detail changes
- feat: add RMQ
fail_fastoption in #1647 - fix: correct nested
NatsRoutersubjects prefixes behavior - fix typos by @newonlynew in https://github.com/airtai/faststream/pull/1609
- Feat: extend response api by @Flosckow in https://github.com/airtai/faststream/pull/1607
- Feature: GSSAPI (Kerberos) support by @roma-frolov in https://github.com/airtai/faststream/pull/1633
- feat: add oauth support by @filip-danieluk in https://github.com/airtai/faststream/pull/1632
- fix: patch broker within testbroker context only by @sfran96 in https://github.com/airtai/faststream/pull/1619
- feat: ASGI support by @Lancetnik in https://github.com/airtai/faststream/pull/1635
New Contributors
- @newonlynew made their first contribution in https://github.com/airtai/faststream/pull/1609
- @roma-frolov made their first contribution in https://github.com/airtai/faststream/pull/1633
- @filip-danieluk made their first contribution in https://github.com/airtai/faststream/pull/1632
- @sfran96 made their first contribution in https://github.com/airtai/faststream/pull/1619
Full Changelog: https://github.com/airtai/faststream/compare/0.5.15...0.5.16
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.15
What's Changed
Finally, FastStream has a Kafka pattern subscription! This is another step forward in our Roadmap moving us to 0.6.0 and futher!
```python from faststream import Path from faststream.kafka import KafkaBroker
broker = KafkaBroker()
@broker.subscriber(pattern="logs.{level}") async def base_handler( body: str, level: str = Path(), ): ... ```
Also, all brokers now supports a new ping method to check real broker connection
python
is_connected: bool = await broker.ping()
This is a little, but important change for K8S probes support
More other there are a lot of bugfixes and improvements from our contributors! Thanks to all of these amazing people!
- feat(multiprocess): restart child processes if they are not alive by @gostilovichd in https://github.com/airtai/faststream/pull/1550
- fix: use typing_extensions.TypedDict import by @Lancetnik in https://github.com/airtai/faststream/pull/1575
- fix: correct single dataclass argument AsyncAPI payload generation by @Lancetnik in https://github.com/airtai/faststream/pull/1591
- fix (#1598): use config with NATS PullSub by @Lancetnik in https://github.com/airtai/faststream/pull/1599
- feat: default call_name for broker.subscriber by @KrySeyt in https://github.com/airtai/faststream/pull/1589
- Feat: init ping method by @Flosckow in https://github.com/airtai/faststream/pull/1592
- chore: bump nats-py requirement by @Lancetnik in https://github.com/airtai/faststream/pull/1600
- fix: add pattern checking by @spataphore1337 in https://github.com/airtai/faststream/pull/1590
New Contributors
- @gostilovichd made their first contribution in https://github.com/airtai/faststream/pull/1550
- @KrySeyt made their first contribution in https://github.com/airtai/faststream/pull/1589
- @Flosckow made their first contribution in https://github.com/airtai/faststream/pull/1592
Full Changelog: https://github.com/airtai/faststream/compare/0.5.14...0.5.15
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.14
What's Changed
- Update Release Notes for 0.5.13 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1548
- Add allowautocreate_topics to make automatic topic creation configurable by @kumaranvpl in https://github.com/airtai/faststream/pull/1556
Full Changelog: https://github.com/airtai/faststream/compare/0.5.13...0.5.14
- Python
Published by kumaranvpl over 1 year ago
faststream - v0.5.13
What's Changed
- feat: nats filter JS subscription support by @Lancetnik in https://github.com/airtai/faststream/pull/1519
- fix: correct RabbitExchange processing by OTEL in broker.publish case by @Lancetnik in https://github.com/airtai/faststream/pull/1521
- fix: correct Nats ObjectStorage get file behavior inside watch subscriber by @Lancetnik in https://github.com/airtai/faststream/pull/1523
- Resolve Issue 1386, Add rpc_prefix by @aKardasz in https://github.com/airtai/faststream/pull/1484
- fix: correct spans linking in batches case by @draincoder in https://github.com/airtai/faststream/pull/1532
- fix (#1539): correct anyio.creatememoryobject_stream annotation by @Lancetnik in https://github.com/airtai/faststream/pull/1541
- fix: correct publish_coverage CI by @Lancetnik in https://github.com/airtai/faststream/pull/1536
- Add NatsBroker.new_inbox() by @maxalbert in https://github.com/airtai/faststream/pull/1543
- fix (#1544): correct Redis message nack & reject signature by @Lancetnik in https://github.com/airtai/faststream/pull/1546
New Contributors
- @aKardasz made their first contribution in https://github.com/airtai/faststream/pull/1484
- @maxalbert made their first contribution in https://github.com/airtai/faststream/pull/1543
Full Changelog: https://github.com/airtai/faststream/compare/0.5.12...0.5.13
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.12
What's Changed
Now, FastStream provides users with the ability to pass the config dictionary to confluent-kafka-python for greater customizability. The following example sets the parameter topic.metadata.refresh.fast.interval.ms's value to 300 instead of the default value 100 via the config parameter.
```python from faststream import FastStream from faststream.confluent import KafkaBroker
config = {"topic.metadata.refresh.fast.interval.ms": 300} broker = KafkaBroker("localhost:9092", config=config) app = FastStream(broker) ```
- Update Release Notes for 0.5.11 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1511
- docs: update filters example by @Lancetnik in https://github.com/airtai/faststream/pull/1516
- Add config param to pass additional parameters to confluent-kafka-python by @kumaranvpl in https://github.com/airtai/faststream/pull/1505
Full Changelog: https://github.com/airtai/faststream/compare/0.5.11...0.5.12
- Python
Published by kumaranvpl over 1 year ago
faststream - v0.5.11
What's Changed
- Update Release Notes for 0.5.10 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1482
- feat: provide with an ability to create default RMQ Exchange by @Lancetnik in https://github.com/airtai/faststream/pull/1485
- docs: fix typos by @crazymidnight in https://github.com/airtai/faststream/pull/1489
- chore: update CI triggers to minify useless runs by @Lancetnik in https://github.com/airtai/faststream/pull/1483
- Update link to badges by @kumaranvpl in https://github.com/airtai/faststream/pull/1496
- Run tests every day at 12:00 AM by @kumaranvpl in https://github.com/airtai/faststream/pull/1497
- Chore: update deps by @kumaranvpl in https://github.com/airtai/faststream/pull/1503
- fix: include NatsRouter streams to original broker by @Lancetnik in https://github.com/airtai/faststream/pull/1509
New Contributors
- @crazymidnight made their first contribution in https://github.com/airtai/faststream/pull/1489
Full Changelog: https://github.com/airtai/faststream/compare/0.5.10...0.5.11
- Python
Published by Lancetnik over 1 year ago
faststream - v0.5.10
What's Changed
Now you can return Response class to set more specific outgoing message parameters:
```python from faststream import Response
@broker.subscriber("in") @broker.subscriber("out") async def handler(): return Response(body=b"", headers={}) ```
- Pass logger to confluent producer and consumer by @kumaranvpl in https://github.com/airtai/faststream/pull/1464
- Fixes #1412 with
TestKafkaBrokerbehaviour where Consumer Groups weren't being respected by @sifex in https://github.com/airtai/faststream/pull/1413 - Chore: update dependency versions by @kumaranvpl in https://github.com/airtai/faststream/pull/1478
- Remove typing-extensions version restriction by @kumaranvpl in https://github.com/airtai/faststream/pull/1477
- feat (#1431): add Response class by @Lancetnik in https://github.com/airtai/faststream/pull/1481
New Contributors
- @sifex made their first contribution in https://github.com/airtai/faststream/pull/1413
Full Changelog: https://github.com/airtai/faststream/compare/0.5.9...0.5.10
- Python
Published by Lancetnik almost 2 years ago
faststream - v0.5.9
What's Changed
- Update Release Notes for 0.5.8 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1462
- Exclude typing_extensions version 4.12.* by @kumaranvpl in https://github.com/airtai/faststream/pull/1467
- fix: add group/consumer to hash to avoid overwriting by @fbraem in https://github.com/airtai/faststream/pull/1463
- Bump version to 0.5.9 by @kumaranvpl in https://github.com/airtai/faststream/pull/1468
New Contributors
- @fbraem made their first contribution in https://github.com/airtai/faststream/pull/1463
Full Changelog: https://github.com/airtai/faststream/compare/0.5.8...0.5.9
- Python
Published by kumaranvpl almost 2 years ago
faststream - v0.5.8
What's Changed
This is the time for a new NATS features! FastStream supports NATS Key-Value and Object Storage subscribption features in a native way now (big thx for @sheldygg)!
- KeyValue creation and watching API added (you can read updated documentation section for changes):
```python from faststream import FastStream, Logger from faststream.nats import NatsBroker
broker = NatsBroker()
app = FastStream(broker)
@broker.subscriber("some-key", kv_watch="bucket")
async def handler(msg: int, logger: Logger):
logger.info(msg)
@app.after_startup
async def test():
kv = await broker.key_value("bucket")
await kv.put("some-key", b"1")
```
ObjectStore API added as well (you can read updated documentation section for changes):
```python from faststream import FastStream, Logger from faststream.nats import NatsBroker
broker = NatsBroker() app = FastStream(broker)
@broker.subscriber("file-bucket", obj_watch=True) async def handler(filename: str, logger: Logger): logger.info(filename)
@app.afterstartup async def test(): objectstore = await broker.objectstorage("file-bucket") await objectstore.put("some-file.txt", b"1") ```
Also now you can use just
pull_sub=Trueinstead ofpull_sub=PullSub()in basic case:
```python from faststream import FastStream, Logger from faststream.nats import NatsBroker
broker = NatsBroker()
app = FastStream(broker)
@broker.subscriber("test", stream="stream", pull_sub=True)
async def handler(msg, logger: Logger):
logger.info(msg)
```
Finally, we have a new feature, related to all brokers: special flag to suppress automatic RPC and reply_to responses:
```python @broker.subscriber("tests", no_reply=True) async def handler(): ....
will fail with timeout, because there is no automatic response
msg = await broker.publish("msg", "test", rpc=True) ```
- fix: when headers() returns None in AsyncConfluentParser, replace it with an empty tuple by @andreaimprovised in https://github.com/airtai/faststream/pull/1460
- Implement Kv/Obj watch. by @sheldygg in https://github.com/airtai/faststream/pull/1383
- feat: add subscriber no-reply option by @Lancetnik in https://github.com/airtai/faststream/pull/1461
New Contributors
- @andreaimprovised made their first contribution in https://github.com/airtai/faststream/pull/1460
Full Changelog: https://github.com/airtai/faststream/compare/0.5.7...0.5.8
- Python
Published by Lancetnik almost 2 years ago
faststream - v0.5.7
What's Changed
Finally, FastStream supports OpenTelemetry in a native way to collect the full trace of your services! Big thanks for @draincoder for that!
First of all you need to install required dependencies to support OpenTelemetry:
bash
pip install faststream[otel]
Then you can just add a middleware for your broker and that's it!
```python from faststream import FastStream from faststream.nats import NatsBroker from faststream.nats.opentelemetry import NatsTelemetryMiddleware
broker = NatsBroker( middlewares=( NatsTelemetryMiddleware(), ) ) app = FastStream(broker) ```
To find detailt information just visit our documentation aboout telemetry
P.S. The release includes basic OpenTelemetry support - messages tracing & basic metrics. Baggage support and correct spans linking in batch processing case will be added soon.
- fix: serialize TestClient rpc output to mock the real message by @Lancetnik in https://github.com/airtai/faststream/pull/1452
- feature (#916): Observability by @draincoder in https://github.com/airtai/faststream/pull/1398
New Contributors
- @draincoder made their first contribution in https://github.com/airtai/faststream/pull/1398
Full Changelog: https://github.com/airtai/faststream/compare/0.5.6...0.5.7
- Python
Published by Lancetnik almost 2 years ago
faststream - v0.5.6
What's Changed
- feature: add --factory param by @Sehat1137 in https://github.com/airtai/faststream/pull/1440
- feat: add RMQ channels options, support for prefix for routing_key, a… by @Lancetnik in https://github.com/airtai/faststream/pull/1448
- feature: Add
from faststream.rabbit.annotations import Connection, Channelshortcuts - Bugfix: RabbitMQ RabbitRouter prefix now affects to queue routing key as well
- Feature (close #1402): add
broker.add_middlewarepublic API to append a middleware to already created broker - Feature: add
RabbitBroker(channel_number: int, publisher_confirms: bool, on_return_raises: bool)options to setup channel settings - Feature (close #1447): add
StreamMessage.batch_headersattribute to provide with access to whole batch messages headers
New Contributors
- @Sehat1137 made their first contribution in https://github.com/airtai/faststream/pull/1440
Full Changelog: https://github.com/airtai/faststream/compare/0.5.5...0.5.6
- Python
Published by Lancetnik almost 2 years ago
faststream - v0.5.5
What's Changed
Add support for explicit partition assignment in aiokafka KafkaBroker (special thanks to @spataphore1337):
```python from faststream import FastStream from faststream.kafka import KafkaBroker, TopicPartition
broker = KafkaBroker()
topicpartitionfisrt = TopicPartition("mytopic", 1) topicpartitionsecond = TopicPartition("mytopic", 2)
@broker.subscribe(partitions=[topicpartitionfisrt, topicpartitionsecond]) async def some_consumer(msg): ... ```
- Update Release Notes for 0.5.4 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1421
- feature: manual partition assignment to Kafka by @spataphore1337 in https://github.com/airtai/faststream/pull/1422
- Chore/update deps by @Lancetnik in https://github.com/airtai/faststream/pull/1429
- Fix/correct dynamic subscriber registration by @Lancetnik in https://github.com/airtai/faststream/pull/1433
- chore: bump version by @Lancetnik in https://github.com/airtai/faststream/pull/1435
Full Changelog: https://github.com/airtai/faststream/compare/0.5.4...0.5.5
- Python
Published by Lancetnik almost 2 years ago
faststream - v0.5.4
What's Changed
- Update Release Notes for 0.5.3 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1400
- fix (#1415): raise SetupError if rpc and reply_to are using in TestCL… by @Lancetnik in https://github.com/airtai/faststream/pull/1419
- Chore/update deps2 by @Lancetnik in https://github.com/airtai/faststream/pull/1418
- refactor: correct security with kwarg params merging by @Lancetnik in https://github.com/airtai/faststream/pull/1417
- fix (#1414): correct Messag.ack error processing by @Lancetnik in https://github.com/airtai/faststream/pull/1420
Full Changelog: https://github.com/airtai/faststream/compare/0.5.3...0.5.4
- Python
Published by Lancetnik almost 2 years ago
faststream - 0.5.3
What's Changed
- Update Release Notes for 0.5.2 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1382
- Fix/setup at broker connection instead of starting by @Lancetnik in https://github.com/airtai/faststream/pull/1385
- Tests/add path tests by @Lancetnik in https://github.com/airtai/faststream/pull/1388
- Fix/path with router prefix by @Lancetnik in https://github.com/airtai/faststream/pull/1395
- chore: update dependencies by @Lancetnik in https://github.com/airtai/faststream/pull/1396
- chore: bump version by @Lancetnik in https://github.com/airtai/faststream/pull/1397
- chore: polishing by @davorrunje in https://github.com/airtai/faststream/pull/1399
Full Changelog: https://github.com/airtai/faststream/compare/0.5.2...0.5.3
- Python
Published by davorrunje almost 2 years ago
faststream - v0.5.2
What's Changed
Just a little bugfix patch. Fixes #1379 and #1376.
- Update Release Notes for 0.5.1 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1378
- Tests/fastapi background by @Lancetnik in https://github.com/airtai/faststream/pull/1380
- Fix/0.5.2 by @Lancetnik in https://github.com/airtai/faststream/pull/1381
Full Changelog: https://github.com/airtai/faststream/compare/0.5.1...0.5.2
- Python
Published by Lancetnik almost 2 years ago
faststream - v0.5.1
What's Changed
We already have some fixes related to RedisBroker (#1375, #1376) and some new features for you:
- Now
broke.include_router(...)allows to pass some arguments to setup router at including moment instead of creation
python
broker.include_router(
router,
prefix="test_",
dependencies=[Depends(...)],
middlewares=[BrokerMiddleware],
include_in_schema=False,
)
KafkaBroker().subscriber(...)now consumesaiokafka.ConsumerRebalanceListenerobject. You can find more information about it in the official aiokafka doc
(close #1319)
```python broker = KafkaBroker()
broker.subscriber(..., listener=MyRebalancer()) ```
pattern option was added too, but it is still experimental and does not support Path
Pathfeature perfomance was increased. Also,Pathis suitable for NATSPullSubbatch subscribtion as well now.
```python from faststream import NatsBroker, PullSub
broker = NastBroker()
@broker.subscriber( "logs.{level}", steam="test-stream", pullsub=PullSub(batch=True), ) async def basehandler( ..., level: str = Path(), ): ... ```
- Update Release Notes for 0.5.0 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1366
- chore: bump version by @Lancetnik in https://github.com/airtai/faststream/pull/1372
- feat: kafka listener, extended include_router by @Lancetnik in https://github.com/airtai/faststream/pull/1374
- Fix/1375 by @Lancetnik in https://github.com/airtai/faststream/pull/1377
Full Changelog: https://github.com/airtai/faststream/compare/0.5.0...0.5.1
- Python
Published by Lancetnik almost 2 years ago
faststream - 0.5.0
What's Changed
This is the biggest change since the creation of FastStream. We have completely refactored the entire package, changing the object registration mechanism, message processing pipeline, and application lifecycle. However, you won't even notice it—we've preserved all public APIs from breaking changes. The only feature not compatible with the previous code is the new middleware.
New features:
await FastStream.stop()method andStopApplicationexception to stop aFastStreamworker are added.broker.subscriber()androuter.subscriber()functions now return aSubscriberobject you can use later.
```python subscriber = broker.subscriber("test")
@subscriber(filter = lambda msg: msg.content_type == "application/json") async def handler(msg: dict[str, Any]): ...
@subscriber() async def handler(msg: dict[str, Any]): ... ```
This is the preferred syntax for filtering now (the old one will be removed in 0.6.0)
- The
router.publisher()function now returns the correctPublisherobject you can use later (after broker startup).
```python publisher = router.publisher("test")
@router.subscriber("in") async def handler(): await publisher.publish("msg") ```
(Until 0.5.0 you could use it in this way with broker.publisher only)
- A list of
middlewarescan be passed to abroker.publisheras well:
```python broker = Broker(..., middlewares=())
@broker.subscriber(..., middlewares=()) @broker.publisher(..., middlewares=()) # new feature async def handler(): ... ```
Broker-level middlewares now affect all ways to publish a message, so you can encode application outgoing messages here.
⚠️ BREAKING CHANGE ⚠️ : both
subscriberandpublishermiddlewares should be async context manager type
```python async def subscribermiddleware(callnext, msg): return await call_next(msg)
async def publishermiddleware(callnext, msg, *kwargs): return await call_next(msg, *kwargs)
@broker.subscriber( "in", middlewares=(subscribermiddleware,), ) @broker.publisher( "out", middlewares=(publishermiddleware,), ) async def handler(msg): return msg ```
Such changes allow you two previously unavailable features: * suppress any exceptions and pass fall-back message body to publishers, and * patch any outgoing message headers and other parameters.
Without those features we could not implement Observability Middleware or any similar tool, so it is the job that just had to be done.
7. A better FastAPI compatibility: fastapi.BackgroundTasks and response_class subscriber option are supported.
All
.pyifiles are removed, and explicit docstrings and methods options are added.New subscribers can be registered in runtime (with an already-started broker):
python
subscriber = broker.subscriber("dynamic")
subscriber(handler_method)
...
broker.setup_subscriber(subscriber)
await subscriber.start()
...
await subscriber.close()
faststream[docs]distribution is removed.
- Update Release Notes for 0.4.7 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1295
- 1129 - Create a publish command for the CLI by @MRLab12 in https://github.com/airtai/faststream/pull/1151
- Chore: packages upgraded by @davorrunje in https://github.com/airtai/faststream/pull/1306
- docs: fix typos by @omahs in https://github.com/airtai/faststream/pull/1309
- chore: update dependencies by @Lancetnik in https://github.com/airtai/faststream/pull/1323
- docs: fix misc by @Lancetnik in https://github.com/airtai/faststream/pull/1324
- docs (#1327): correct RMQ exhcanges behavior by @Lancetnik in https://github.com/airtai/faststream/pull/1328
- fix: typer 0.12 exclude by @Lancetnik in https://github.com/airtai/faststream/pull/1341
- 0.5.0 by @Lancetnik in https://github.com/airtai/faststream/pull/1326
- close #1103
- close #840
- fix #690
- fix #1206
- fix #1227
- close #568
- close #1303
- close #1287
- feat #607
- Generate docs and linter fixes by @davorrunje in https://github.com/airtai/faststream/pull/1348
- Fix types by @davorrunje in https://github.com/airtai/faststream/pull/1349
- chore: update dependencies by @Lancetnik in https://github.com/airtai/faststream/pull/1358
- feat: final middlewares by @Lancetnik in https://github.com/airtai/faststream/pull/1357
- Docs/0.5.0 features by @Lancetnik in https://github.com/airtai/faststream/pull/1360
New Contributors
- @MRLab12 made their first contribution in https://github.com/airtai/faststream/pull/1151
- @omahs made their first contribution in https://github.com/airtai/faststream/pull/1309
Full Changelog: https://github.com/airtai/faststream/compare/0.4.7...0.5.0
- Python
Published by davorrunje almost 2 years ago
faststream - v0.5.0rc2
What's Changed
This is the final API change before stable 0.5.0 release
⚠️ HAS BREAKING CHANGE
In it, we stabilize the behavior of publishers & subscribers middlewares
```python async def subscribermiddleware(callnext, msg): return await call_next(msg)
async def publishermiddleware(callnext, msg, *kwargs): return await call_next(msg, *kwargs)
@broker.subscriber( "in", middlewares=(subscribermiddleware,), ) @broker.publisher( "out", middlewares=(publishermiddleware,), ) async def handler(msg): return msg ```
Such changes allows you two features previously unavailable
- suppress any exceptions and pas fall-back message body to publishers
- patch any outgoing message headers and other parameters
Without these features we just can't impelement Observability Middleware or any similar tool, so it is the job to be done.
Now you are free to get access at any message processing stage and we are one step closer to the framework we would like to create!
- Update Release Notes for 0.5.0rc0 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1347
- Generate docs and linter fixes by @davorrunje in https://github.com/airtai/faststream/pull/1348
- Fix types by @davorrunje in https://github.com/airtai/faststream/pull/1349
- chore: update dependencies by @Lancetnik in https://github.com/airtai/faststream/pull/1358
- feat: final middlewares by @Lancetnik in https://github.com/airtai/faststream/pull/1357
Full Changelog: https://github.com/airtai/faststream/compare/0.5.0rc0...0.5.0rc2
- Python
Published by Lancetnik almost 2 years ago
faststream - v0.5.0rc0
What's Changed
This is the biggest change since the creation of FastStream. We have completely refactored the entire package, changing the object registration mechanism, message processing pipeline, and application lifecycle. However, you won't even notice it—we've preserved all public APIs from breaking changes. The only feature not compatible with the previous code is the new middleware.
This is still an RC (Release Candidate) for you to test before the stable release. You can manually install it in your project:
console
pip install faststream==0.5.0rc0
We look forward to your feedback!
New features:
await FastStream.stop()method andStopApplicationexception to stop aFastStreamworker are added.broker.subscriber()androuter.subscriber()functions now return aSubscriberobject you can use later.
```python subscriber = broker.subscriber("test")
@subscriber(filter = lambda msg: msg.content_type == "application/json") async def handler(msg: dict[str, Any]): ...
@subscriber() async def handler(msg: dict[str, Any]): ... ```
This is the preferred syntax for filtering now (the old one will be removed in 0.6.0)
- The
router.publisher()function now returns the correctPublisherobject you can use later (after broker startup).
```python publisher = router.publisher("test")
@router.subscriber("in") async def handler(): await publisher.publish("msg") ```
(Until 0.5.0 you could use it in this way with broker.publisher only)
- A list of
middlewarescan be passed to abroker.publisheras well:
```python broker = Broker(..., middlewares=())
@broker.subscriber(..., middlewares=()) @broker.publisher(..., middlewares=()) # new feature async def handler(): ... ```
Broker-level middlewares now affect all ways to publish a message, so you can encode application outgoing messages here.
⚠️ BREAKING CHANGE ⚠️ : both
subscriberandpublishermiddlewares should be async context manager type
```python from contextlib import asynccontextmanager
@asynccontextmanager async def subscribermiddleware(msgbody): yield msg_body
@asynccontextmanager async def publishermiddleware( msgtopublish, **publisharguments, ): yield msgtopublish
@broker.subscriber("in", middlewares=(subscribermiddleware,)) @broker.publisher("out", middlewares=(publishermiddleware,)) async def handler(): ... ```
A better FastAPI compatibility:
fastapi.BackgroundTasksandresponse_classsubscriber option are supported.All
.pyifiles are removed, and explicit docstrings and methods options are added.New subscribers can be registered in runtime (with an already-started broker):
python
subscriber = broker.subscriber("dynamic")
subscriber(handler_method)
...
broker.setup_subscriber(subscriber)
await subscriber.start()
...
await subscriber.close()
faststream[docs]distribution is removed.
- Update Release Notes for 0.4.7 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1295
- 1129 - Create a publish command for the CLI by @MRLab12 in https://github.com/airtai/faststream/pull/1151
- Chore: packages upgraded by @davorrunje in https://github.com/airtai/faststream/pull/1306
- docs: fix typos by @omahs in https://github.com/airtai/faststream/pull/1309
- chore: update dependencies by @Lancetnik in https://github.com/airtai/faststream/pull/1323
- docs: fix misc by @Lancetnik in https://github.com/airtai/faststream/pull/1324
- docs (#1327): correct RMQ exhcanges behavior by @Lancetnik in https://github.com/airtai/faststream/pull/1328
- fix: typer 0.12 exclude by @Lancetnik in https://github.com/airtai/faststream/pull/1341
- 0.5.0 by @Lancetnik in https://github.com/airtai/faststream/pull/1326
- close #1103
- close #840
- fix #690
- fix #1206
- fix #1227
- close #568
- close #1303
- close #1287
- feat #607
New Contributors
- @MRLab12 made their first contribution in https://github.com/airtai/faststream/pull/1151
- @omahs made their first contribution in https://github.com/airtai/faststream/pull/1309
Full Changelog: https://github.com/airtai/faststream/compare/0.4.7...0.5.0rc0
- Python
Published by Lancetnik almost 2 years ago
faststream - v0.4.7
What's Changed
- Update Release Notes for 0.4.6 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1286
- fix (#1263): correct nested descriminator msg type AsyncAPI schema by @Lancetnik in https://github.com/airtai/faststream/pull/1288
- docs: add
apply_typeswarning notice to subscription/index.md by @Lancetnik in https://github.com/airtai/faststream/pull/1291 - chore: fixed nats-py version by @Lancetnik in https://github.com/airtai/faststream/pull/1294
Full Changelog: https://github.com/airtai/faststream/compare/0.4.6...0.4.7
- Python
Published by Lancetnik almost 2 years ago
faststream - v0.4.6
What's Changed
- Add poll in confluent producer to fix BufferError by @kumaranvpl in https://github.com/airtai/faststream/pull/1277
- Cover confluent asyncapi tests by @kumaranvpl in https://github.com/airtai/faststream/pull/1279
- chore: bump package versions by @davorrunje in https://github.com/airtai/faststream/pull/1285
Full Changelog: https://github.com/airtai/faststream/compare/0.4.5...0.4.6
- Python
Published by davorrunje almost 2 years ago
faststream - v0.4.5
What's Changed
- Update Release Notes for 0.4.4 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1260
- Removed unused pytest dependecy from redis/schemas.py by @ashambalev in https://github.com/airtai/faststream/pull/1261
- chore: bumped package versions by @davorrunje in https://github.com/airtai/faststream/pull/1270
- fix (#1263): correct AsyncAPI schema in descriminator case by @Lancetnik in https://github.com/airtai/faststream/pull/1272
New Contributors
- @ashambalev made their first contribution in https://github.com/airtai/faststream/pull/1261
Full Changelog: https://github.com/airtai/faststream/compare/0.4.4...0.4.5
- Python
Published by Lancetnik almost 2 years ago
faststream - v0.4.4
What's Changed
Add RedisStream batch size option
python
@broker.subscriber(stream=StreamSub("input", batch=True, max_records=3))
async def on_input_data(msgs: list[str]):
assert len(msgs) <= 3
- Update Release Notes for 0.4.3 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1247
- docs: add manual run section by @Lancetnik in https://github.com/airtai/faststream/pull/1249
- feat (#1252): respect Redis StreamSub last_id with consumer group by @Lancetnik in https://github.com/airtai/faststream/pull/1256
- fix: correct Redis consumer group behavior by @Lancetnik in https://github.com/airtai/faststream/pull/1258
- feat: add Redis Stream max_records option by @Lancetnik in https://github.com/airtai/faststream/pull/1259
Full Changelog: https://github.com/airtai/faststream/compare/0.4.3...0.4.4
- Python
Published by Lancetnik about 2 years ago
faststream - v0.4.3
What's Changed
Allow to specify Redis Stream maxlen option in publisher:
python
@broker.publisher(stream=StreamSub("Output", maxlen=10))
async def on_input_data():
....
- chore: bump version by @Lancetnik in https://github.com/airtai/faststream/pull/1198
- Update Release Notes for 0.4.2 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1199
- Add missing API documentation for apply_pattern by @kumaranvpl in https://github.com/airtai/faststream/pull/1201
- chore: polishing by @davorrunje in https://github.com/airtai/faststream/pull/1203
- Comment out retry and timeout in a confluent test by @kumaranvpl in https://github.com/airtai/faststream/pull/1207
- Commit offsets only if auto_commit is True by @kumaranvpl in https://github.com/airtai/faststream/pull/1208
- Add a CI job to check for missed docs changes by @kumaranvpl in https://github.com/airtai/faststream/pull/1217
- fix: inconsistent NATS publisher signature by @Lancetnik in https://github.com/airtai/faststream/pull/1218
- Upgrade packages by @davorrunje in https://github.com/airtai/faststream/pull/1226
- chore: bump dawidd6/action-download-artifact from 3.0.0 to 3.1.1 by @dependabot in https://github.com/airtai/faststream/pull/1239
- chore: bump dependencies by @Lancetnik in https://github.com/airtai/faststream/pull/1246
- feat (#1235): StreamSub maxlen parameter by @Lancetnik in https://github.com/airtai/faststream/pull/1245
- fix (#1234): correct FastAPI path passing, fix typehints by @Lancetnik in https://github.com/airtai/faststream/pull/1236
- fix (#1231): close RMQ while reconnecting by @Lancetnik in https://github.com/airtai/faststream/pull/1238
Full Changelog: https://github.com/airtai/faststream/compare/0.4.2...0.4.3
- Python
Published by Lancetnik about 2 years ago
faststream - v0.4.2
What's Changed
Bug fixes
- fix: correct RMQ Topic testing routing by @Lancetnik in https://github.com/airtai/faststream/pull/1196
- fix #1191: correct RMQ ssl default port by @Lancetnik in https://github.com/airtai/faststream/pull/1195
- fix #1143: ignore Depends in AsyncAPI by @Lancetnik in https://github.com/airtai/faststream/pull/1197
Full Changelog: https://github.com/airtai/faststream/compare/0.4.1...0.4.2
- Python
Published by davorrunje about 2 years ago
faststream - v0.4.1
What's Changed
Bug fixes
- Fix: use FastAPI overrides in subscribers by @Lancetnik in https://github.com/airtai/faststream/pull/1189
- Handle confluent consumer commit failure by @kumaranvpl in https://github.com/airtai/faststream/pull/1193
Documentation
- Include Confluent in home and features pages by @kumaranvpl in https://github.com/airtai/faststream/pull/1186
- Use pydantic model for publishing in docs example by @kumaranvpl in https://github.com/airtai/faststream/pull/1187
Full Changelog: https://github.com/airtai/faststream/compare/0.4.0...0.4.1
- Python
Published by davorrunje about 2 years ago
faststream - v0.4.0
What's Changed
This release adds support for the Confluent's Python Client for Apache Kafka (TM). Confluent's Python Client for Apache Kafka does not support natively async functions and its integration with modern async-based services is a bit trickier. That was the reason why our initial supported by Kafka broker used aiokafka. However, that choice was a less fortunate one as it is as well maintained as the Confluent version. After receiving numerous requests, we finally decided to bite the bullet and create an async wrapper around Confluent's Python Client and add full support for it in FastStream.
If you want to try it out, install it first with:
sh
pip install "faststream[confluent]>=0.4.0"
To connect to Kafka using the FastStream KafkaBroker module, follow these steps:
Initialize the KafkaBroker instance: Start by initializing a KafkaBroker instance with the necessary configuration, including Kafka broker address.
Create your processing logic: Write a function that will consume the incoming messages in the defined format and produce a response to the defined topic
Decorate your processing function: To connect your processing function to the desired Kafka topics you need to decorate it with
@broker.subscriber(...)and@broker.publisher(...)decorators. Now, after you start your application, your processing function will be called whenever a new message in the subscribed topic is available and produce the function return value to the topic defined in the publisher decorator.
Here's a simplified code example demonstrating how to establish a connection to Kafka using FastStream's KafkaBroker module:
```python from faststream import FastStream from faststream.confluent import KafkaBroker
broker = KafkaBroker("localhost:9092") app = FastStream(broker)
@broker.subscriber("in-topic") @broker.publisher("out-topic") async def handlemsg(user: str, userid: int) -> str: return f"User: {user_id} - {user} registered" ```
For more information, please visit the documentation at:
https://faststream.airt.ai/latest/confluent/
List of Changes
- Update Release Notes for 0.3.13 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1119
- docs: close #1125 by @Lancetnik in https://github.com/airtai/faststream/pull/1126
- Add support for confluent python lib by @kumaranvpl in https://github.com/airtai/faststream/pull/1042
- Update tutorial docs to include confluent code examples by @kumaranvpl in https://github.com/airtai/faststream/pull/1131
- Add installation instructions for confluent by @kumaranvpl in https://github.com/airtai/faststream/pull/1132
- Update Release Notes for 0.4.0rc0 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1130
- chore: remove useless branch from CI by @Lancetnik in https://github.com/airtai/faststream/pull/1135
- chore: bump mkdocs-git-revision-date-localized-plugin from 1.2.1 to 1.2.2 by @dependabot in https://github.com/airtai/faststream/pull/1140
- chore: strict fast-depends version by @Lancetnik in https://github.com/airtai/faststream/pull/1145
- chore: update copyright by @Lancetnik in https://github.com/airtai/faststream/pull/1144
- fix: correct Windows shutdown by @Lancetnik in https://github.com/airtai/faststream/pull/1148
- docs: fix typo by @saroz014 in https://github.com/airtai/faststream/pull/1154
- Middleware Document Syntax Error by @SepehrBazyar in https://github.com/airtai/faststream/pull/1156
- fix: correct FastAPI Context type hints by @Lancetnik in https://github.com/airtai/faststream/pull/1155
- Fix bug which results in lost confluent coverage report by @kumaranvpl in https://github.com/airtai/faststream/pull/1160
- Fix failing ack tests for confluent by @kumaranvpl in https://github.com/airtai/faststream/pull/1166
- Update version to 0.4.0 and update docs by @kumaranvpl in https://github.com/airtai/faststream/pull/1171
- feat #1180: add StreamRouter.onbrokershutdown hook by @Lancetnik in https://github.com/airtai/faststream/pull/1182
- Fix bug - using old upload-artifact version by @kumaranvpl in https://github.com/airtai/faststream/pull/1183
- Release 0.4.0 by @davorrunje in https://github.com/airtai/faststream/pull/1184
New Contributors
- @saroz014 made their first contribution in https://github.com/airtai/faststream/pull/1154
Full Changelog: https://github.com/airtai/faststream/compare/0.3.13...0.4.0
- Python
Published by davorrunje about 2 years ago
faststream - v0.4.0rc0
What's Changed
This is a preview version of 0.4.0 release introducing support for Confluent-based Kafka broker.
Here's a simplified code example demonstrating how to establish a connection to Kafka using FastStream's KafkaBroker module: ```python from faststream import FastStream from faststream.confluent import KafkaBroker
broker = KafkaBroker("localhost:9092") app = FastStream(broker)
@broker.subscriber("in-topic") @broker.publisher("out-topic") async def handlemsg(user: str, userid: int) -> str: return f"User: {user_id} - {user} registered" ```
Changes
- Add support for confluent python lib by @kumaranvpl in https://github.com/airtai/faststream/pull/1042
Full Changelog: https://github.com/airtai/faststream/compare/0.3.13...0.4.0rc0
- Python
Published by davorrunje about 2 years ago
faststream - v0.3.13
What's Changed
New features
- New shutdown logic by @Lancetnik in https://github.com/airtai/faststream/pull/1117
Bug fixes
- Fix minor typos in documentation and code by @mj0nez in https://github.com/airtai/faststream/pull/1116
New Contributors
- @mj0nez made their first contribution in https://github.com/airtai/faststream/pull/1116
Full Changelog: https://github.com/airtai/faststream/compare/0.3.12...0.3.13
- Python
Published by davorrunje about 2 years ago
faststream - v0.3.12
What's Changed
Bug fixes
- fix (#1110): correct RMQ Topic pattern test publish by @Lancetnik in https://github.com/airtai/faststream/pull/1112
Misc
- chore: upgraded packages, black replaced with ruff format by @davorrunje in https://github.com/airtai/faststream/pull/1097
- chore: upgraded packages by @davorrunje in https://github.com/airtai/faststream/pull/1111
Full Changelog: https://github.com/airtai/faststream/compare/0.3.11...0.3.12
- Python
Published by davorrunje about 2 years ago
faststream - v0.3.11
What's Changed
NATS concurent subscriber:
By default, NATS subscriber consumes messages with a block per subject. So, you can't process multiple messages from the same subject at the same time. But, with the broker.subscriber(..., max_workers=...) option, you can! It creates an async tasks pool to consume multiple messages from the same subject and allows you to process them concurrently!
```python from faststream import FastStream from faststream.nats import NatsBroker
broker = NatsBroker() app = FastStream()
@broker.subscriber("test-subject", max_workers=10) async def handler(...): """Can process up to 10 messages concurrently.""" ```
- Update Release Notes for 0.3.10 by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1091
- fix (#1100): FastAPI 0.106 compatibility by @Lancetnik in https://github.com/airtai/faststream/pull/1102
Full Changelog: https://github.com/airtai/faststream/compare/0.3.10...0.3.11
- Python
Published by Lancetnik about 2 years ago
faststream - v0.3.10
What's Changed
New features
- feat: Context initial option by @Lancetnik in https://github.com/airtai/faststream/pull/1086
Bug fixes
- fix (#1087): add app_dir option to docs serve/gen commands by @Lancetnik in https://github.com/airtai/faststream/pull/1088
Documentation
- docs: add Context initial section by @Lancetnik in https://github.com/airtai/faststream/pull/1089
Other
- chore: linting by @davorrunje in https://github.com/airtai/faststream/pull/1081
- chore: delete accidentally added .bak file by @kumaranvpl in https://github.com/airtai/faststream/pull/1085
Full Changelog: https://github.com/airtai/faststream/compare/0.3.9...0.3.10
- Python
Published by davorrunje about 2 years ago
faststream - v0.3.9
What's Changed
Bug fixes:
- fix (#1082): correct NatsTestClient stream publisher by @Lancetnik in https://github.com/airtai/faststream/pull/1083
Chore:
- chore: adding pragmas for detect-secrets by @davorrunje in https://github.com/airtai/faststream/pull/1080
Full Changelog: https://github.com/airtai/faststream/compare/0.3.8...0.3.9
- Python
Published by davorrunje about 2 years ago
faststream - v0.3.8
What's Changed
- bug: Fix
faststream.redis.fastapi.RedisRouterstream and list subscription - bug: Fix
TestNatsClientwithbatch=True - chore: add citation file by @Lancetnik in https://github.com/airtai/faststream/pull/1061
- docs: remove pragma comments by @Lancetnik in https://github.com/airtai/faststream/pull/1063
- docs: update README by @Lancetnik in https://github.com/airtai/faststream/pull/1064
- chore: increase rate limit and max connections by @kumaranvpl in https://github.com/airtai/faststream/pull/1070
- chore: packages updated by @davorrunje in https://github.com/airtai/faststream/pull/1076
- tests (#570): cover docs by @Lancetnik in https://github.com/airtai/faststream/pull/1077
Full Changelog: https://github.com/airtai/faststream/compare/0.3.7...0.3.8
- Python
Published by Lancetnik about 2 years ago
faststream - v0.3.7
What's Changed
- feat (#974): add FastAPI Context by @Lancetnik in https://github.com/airtai/faststream/pull/1060
- chore: update pre-commit by @davorrunje in https://github.com/airtai/faststream/pull/1058
Support regular FastStream Context with FastAPI plugin
```python from fastapi import FastAPI from faststream.redis.fastapi import RedisRouter, Logger
router = RedisRouter()
@router.subscriber("test") async def handler(msg, logger: Logger): logger.info(msg)
app = FastAPI(lifespan=router.lifespancontext) app.includerouter(router) ```
Full Changelog: https://github.com/airtai/faststream/compare/0.3.6...0.3.7
- Python
Published by davorrunje about 2 years ago
faststream - v0.3.6
What's Changed
- chore: correct update release CI by @Lancetnik in https://github.com/airtai/faststream/pull/1050
- Update Release Notes for main by @faststream-release-notes-updater in https://github.com/airtai/faststream/pull/1051
- chore: fix building docs script by @davorrunje in https://github.com/airtai/faststream/pull/1055
- 0.3.6 by @Lancetnik in https://github.com/airtai/faststream/pull/1056
- bug: remove
packagingdependency - bug: correct FastAPI batch consuming
- docs: add search meta to all pages
- docs: polish all pages styles, fix typos
- chore: add ruff rule to check print
- bug: remove
Full Changelog: https://github.com/airtai/faststream/compare/0.3.5...0.3.6
- Python
Published by Lancetnik about 2 years ago
faststream - v0.3.5
What's Changed
A large update by @Lancetnik in https://github.com/airtai/faststream/pull/1048
Provides with the ability to setup graceful_timeout to wait for consumed messages processed correctly before apllication shutdown - Broker(graceful_timeout=30.0) (waits up to 30 seconds)
- allows to get acces to
context.get_local("message"from FastAPI plugin - docs: fix Avro custom serialization example
- docs: add KafkaBroker
publish_batchnotice - docs: add RabbitMQ security page
- fix: respect retry attempts with
NackMessageexception - test Kafka nack and reject behavior
- bug: fix import error with anyio version 4.x by @davorrunje in https://github.com/airtai/faststream/pull/1049
Full Changelog: https://github.com/airtai/faststream/compare/0.3.4...0.3.5
- Python
Published by davorrunje about 2 years ago
faststream - v0.3.4
What's Changed
Features:
- feat: add support for anyio 4.x by @davorrunje in https://github.com/airtai/faststream/pull/1044
Documentation
- docs: add multiple FastAPI routers section by @Lancetnik in https://github.com/airtai/faststream/pull/1041
Chore
- chore: updated release notes by @davorrunje in https://github.com/airtai/faststream/pull/1040
- chore: use Github App to generate token for release notes PR by @kumaranvpl in https://github.com/airtai/faststream/pull/1043
Full Changelog: https://github.com/airtai/faststream/compare/0.3.3...0.3.4
- Python
Published by davorrunje about 2 years ago
faststream - v0.3.3
What's Changed
Features:
- feat: add support for Python 3.12 by @davorrunje in https://github.com/airtai/faststream/pull/1034
Chores:
- chore: updated release notes and upgraded packages by @davorrunje in https://github.com/airtai/faststream/pull/1029
Full Changelog: https://github.com/airtai/faststream/compare/0.3.2...0.3.3
- Python
Published by davorrunje about 2 years ago
faststream - v0.3.2
What's Changed
New features:
- feat: add Redis security configuration by @sternakt and @Lancetnik in https://github.com/airtai/faststream/pull/1025
- feat: add list of Messages NATS PullSub by @SepehrBazyar in https://github.com/airtai/faststream/pull/1023
Chore:
- chore: polishing by @davorrunje in https://github.com/airtai/faststream/pull/1016
- chore: update release notes by @davorrunje in https://github.com/airtai/faststream/pull/1017
- chore: bump pytest-asyncio from 0.21.1 to 0.23.2 by @dependabot in https://github.com/airtai/faststream/pull/1019
- chore: bump semgrep from 1.50.0 to 1.51.0 by @dependabot in https://github.com/airtai/faststream/pull/1018
- chore: add pull_request permission to workflow by @kumaranvpl in https://github.com/airtai/faststream/pull/1022
Full Changelog: https://github.com/airtai/faststream/compare/0.3.1...0.3.2
- Python
Published by davorrunje about 2 years ago
faststream - v0.3.1
What's Changed
Features: * feat: added reply-to delivery mode for RabbitMQ by @Lancetnik in https://github.com/airtai/faststream/pull/1015
Bug fixes: * fix: non-payload information injected included in AsyncAPI docs by @Lancetnik in https://github.com/airtai/faststream/pull/1015
Documentation: * docs: fix misspelled FastDepends reference in README.md by @spectacularfailure in https://github.com/airtai/faststream/pull/1013
New Contributors
- @spectacularfailure made their first contribution in https://github.com/airtai/faststream/pull/1013
Full Changelog: https://github.com/airtai/faststream/compare/0.3.0...0.3.1
- Python
Published by davorrunje about 2 years ago
faststream - v0.3.0
What's Changed
The main feature of the 0.3.0 release is added Redis support by @Lancetnik in https://github.com/airtai/faststream/pull/1003
You can install it by the following command:
bash
pip install "faststream[redis]"
Other features
- feat: show reload directories with --reload flag by @Lancetnik in https://github.com/airtai/faststream/pull/981
- feat: implement validate and no_ack subscriber options (#926) by @mihail8531 in https://github.com/airtai/faststream/pull/988
- other features by @Lancetnik in https://github.com/airtai/faststream/pull/1003
- Improve error logs (missing CLI arguments, undefined starting)
- Add
faststream docs serve --reload ...option for documentation hotreload - Add
faststream run --reload-extension .envoption to watch by changes in such files - Support
faststream run -k 1 -k 2 ...ask=["1", "2"]extra options - Add subscriber, publisher and router
include_in_schema: boolargument to disable AsyncAPI render - remove
watchfilesfrom default distribution - Allow create
broker.publisherwith already running broker - FastAPI-like lifespan
FastStreamapplication context manager - automatic
TestBroker(connect_only=...)argument based on AST - add
NatsMessage.in_progress()method
Testing
- test: improve coverage by @Lancetnik in https://github.com/airtai/faststream/pull/983
Documentation
- docs: fix module name in NATS example by @SepehrBazyar in https://github.com/airtai/faststream/pull/993
- docs: Update docs to add how to customize asyncapi docs by @kumaranvpl in https://github.com/airtai/faststream/pull/999
- docs: polish Redis pages by @Lancetnik in https://github.com/airtai/faststream/pull/1005
- docs: bump docs to the new taskiq-faststream version by @Lancetnik in https://github.com/airtai/faststream/pull/1009
Chore
- chore: add broken link checker by @kumaranvpl in https://github.com/airtai/faststream/pull/985
- chore: disable verbose in check broken links workflow by @kumaranvpl in https://github.com/airtai/faststream/pull/986
- chore: add left out md files to fix broken links by @kumaranvpl in https://github.com/airtai/faststream/pull/987
- chore: update mike workflow to use config by @Lancetnik in https://github.com/airtai/faststream/pull/982
- chore: add workflow to update release notes automatically by @kumaranvpl in https://github.com/airtai/faststream/pull/992
- chore: pip packages version updated by @davorrunje in https://github.com/airtai/faststream/pull/998
- chore: create PR to merge updated release notes by @kumaranvpl in https://github.com/airtai/faststream/pull/1004
New Contributors
- @SepehrBazyar made their first contribution in https://github.com/airtai/faststream/pull/993
- @mihail8531 made their first contribution in https://github.com/airtai/faststream/pull/988
Full Changelog: https://github.com/airtai/faststream/compare/0.2.15...0.3.0
- Python
Published by davorrunje about 2 years ago
faststream - v0.3.0rc0
What's Changed
The main feature of the 0.3.x release is added Redis support by @Lancetnik in https://github.com/airtai/faststream/pull/1003
You can install it manually:
bash
pip install faststream==0.3.0rc0 && pip install "faststream[redis]"
Other features
- feat: show reload directories with --reload flag by @Lancetnik in https://github.com/airtai/faststream/pull/981
- Improve error logs (missing CLI arguments, undefined starting)
- Add
faststream docs serve --reload ...option for documentation hotreload - Add
faststream run --reload-extension .envoption to watch by changes in such files - Support
faststream run -k 1 -k 2 ...ask=["1", "2"]extra options - Add subscriber, publisher and router
include_in_schema: boolargument to disable AsyncAPI render - remove
watchfilesfrom default distribution - Allow create
broker.publisherwith already running broker - FastAPI-like lifespan
FastStreamapplication context manager - automatic
TestBroker(connect_only=...)argument based on AST - add
NatsMessage.in_progress()method
Testing
- test: improve coverage by @Lancetnik in https://github.com/airtai/faststream/pull/983
Documentation
- docs: fix module name in NATS example by @SepehrBazyar in https://github.com/airtai/faststream/pull/993
- docs: Update docs to add how to customize asyncapi docs by @kumaranvpl in https://github.com/airtai/faststream/pull/999
Chore
- chore: add broken link checker by @kumaranvpl in https://github.com/airtai/faststream/pull/985
- chore: disable verbose in check broken links workflow by @kumaranvpl in https://github.com/airtai/faststream/pull/986
- chore: add left out md files to fix broken links by @kumaranvpl in https://github.com/airtai/faststream/pull/987
- chore: update mike workflow to use config by @Lancetnik in https://github.com/airtai/faststream/pull/982
- chore: add workflow to update release notes automatically by @kumaranvpl in https://github.com/airtai/faststream/pull/992
- chore: pip packages version updated by @davorrunje in https://github.com/airtai/faststream/pull/998 ## New Contributors
- @SepehrBazyar made their first contribution in https://github.com/airtai/faststream/pull/993
Full Changelog: https://github.com/airtai/faststream/compare/0.2.15...0.3.0rc0
- Python
Published by davorrunje about 2 years ago
faststream - v0.2.15
What's Changed
Bug fixes
- fix (#972): correct Context default behavior by @Lancetnik in https://github.com/airtai/faststream/pull/973
- fix: correct CLI run by @Lancetnik in https://github.com/airtai/faststream/pull/978
Documentation
- docs: update readme docs link by @Lancetnik in https://github.com/airtai/faststream/pull/966
- docs: add a new landing page for docs by @harishmohanraj in https://github.com/airtai/faststream/pull/954
- docs: Fix broken internal links by @harishmohanraj in https://github.com/airtai/faststream/pull/976
- docs: use mkdocs footer by @Lancetnik in https://github.com/airtai/faststream/pull/977
Misc
- test (#957): add AsyncAPI FastAPI security test by @Lancetnik in https://github.com/airtai/faststream/pull/958
- test: update tests for cli utils functions by @kumaranvpl in https://github.com/airtai/faststream/pull/960
- chore: update release notes for version 0.2.14 by @kumaranvpl in https://github.com/airtai/faststream/pull/961
- chore: Add back deleted index file for API Reference by @kumaranvpl in https://github.com/airtai/faststream/pull/963
- chore: bump dirty-equals from 0.6.0 to 0.7.1.post0 by @dependabot in https://github.com/airtai/faststream/pull/970
- chore: bump semgrep from 1.48.0 to 1.50.0 by @dependabot in https://github.com/airtai/faststream/pull/968
- chore: bump mkdocs-glightbox from 0.3.4 to 0.3.5 by @dependabot in https://github.com/airtai/faststream/pull/967
- chore: bump mkdocs-material from 9.4.8 to 9.4.10 by @dependabot in https://github.com/airtai/faststream/pull/971
- chore: bump ruff from 0.1.5 to 0.1.6 by @dependabot in https://github.com/airtai/faststream/pull/969
Full Changelog: https://github.com/airtai/faststream/compare/0.2.14...0.2.15
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.14
What's Changed
Bug fixes
- fix: usage pass apps module rather than file path by @kumaranvpl in https://github.com/airtai/faststream/pull/955
- fix: trigger docs deployment by @davorrunje in https://github.com/airtai/faststream/pull/944
Documentation
- docs: reduce builded docs size by @Lancetnik in https://github.com/airtai/faststream/pull/952
- docs: fix update_release script by @Lancetnik in https://github.com/airtai/faststream/pull/945
Misc
- chore: polishing by @davorrunje in https://github.com/airtai/faststream/pull/946
- сhore: add manual publish btn to CI by @Lancetnik in https://github.com/airtai/faststream/pull/950
- chore: limit open dev dependency versions by @kumaranvpl in https://github.com/airtai/faststream/pull/953
Full Changelog: https://github.com/airtai/faststream/compare/0.2.13...0.2.14
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.13
What's Changed
*chore: rRemove uvloop python 3.12 restriction from pyproject by @sternakt in https://github.com/airtai/faststream/pull/914 * fix: mike deploy command by @kumaranvpl in https://github.com/airtai/faststream/pull/919 * chore: update dependencies by @Lancetnik in https://github.com/airtai/faststream/pull/920 * chore: use dev dependencies to build docs by @Lancetnik in https://github.com/airtai/faststream/pull/921 * chore: update packages' versions by @davorrunje in https://github.com/airtai/faststream/pull/937 * fix: FastAPI subscriber Path support by @Lancetnik in https://github.com/airtai/faststream/pull/931
Full Changelog: https://github.com/airtai/faststream/compare/0.2.12...0.2.13
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.12
What's Changed
- feat: NATS polling subscriber by @sheldygg in https://github.com/airtai/faststream/pull/912
Full Changelog: https://github.com/airtai/faststream/compare/0.2.11...0.2.12
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.11
What's Changed
Bug fixes
- fix (#910): correct pydantic enum refs resolving by @Lancetnik in https://github.com/airtai/faststream/pull/911
Documentation
- docs: update the number of lines of code referred to in the documentation by @vvanglro in https://github.com/airtai/faststream/pull/905
- docs: add API reference in docs by @kumaranvpl in https://github.com/airtai/faststream/pull/891
- docs: add release notes for version 0.2.10 by @kumaranvpl in https://github.com/airtai/faststream/pull/907
- docs: detail 0.2.10 release note by @Lancetnik in https://github.com/airtai/faststream/pull/908
- docs: proofread and update 0.2.10 release notes by @kumaranvpl in https://github.com/airtai/faststream/pull/909
New Contributors
- @vvanglro made their first contribution in https://github.com/airtai/faststream/pull/905
Full Changelog: https://github.com/airtai/faststream/compare/0.2.10...0.2.11
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.10
What's Changed
Now, you can hide your connection secrets in the AsyncAPI schema by manually setting up the server URL:
python
broker = RabbitBroker(
"amqp://guest:guest@localhost:5672/", # Connection URL
asyncapi_url="amqp://****:****@localhost:5672/", # Public schema URL
)
Additionally, the RabbitMQ AsyncAPI schema has been improved, adding support for faststream.security, and the connection scheme is now defined automatically.
RabbitMQ connection parameters are now merged, allowing you to define the main connection data as a URL string and customize it using kwargs:
```python broker = RabbitBroker( "amqp://guest:guest@localhost:5672/", host="127.0.0.1", )
amqp://guest:guest@127.0.0.1:5672/ - The final URL
``
* A more suitablefaststream.securityimport instead offaststream.broker.security
* chore: add release notes for 0.2.9 by @kumaranvpl in https://github.com/airtai/faststream/pull/894
* chore: upgrade packages by @davorrunje in https://github.com/airtai/faststream/pull/901
* chore: use js redirect and redirect to version by @kumaranvpl in https://github.com/airtai/faststream/pull/902
* feat: addasyncapi_url` broker arg by @Lancetnik in https://github.com/airtai/faststream/pull/903
Full Changelog: https://github.com/airtai/faststream/compare/0.2.9...0.2.10
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.9
What's Changed
- docs: fix grammatical errors in README.md by @JanumalaAkhilendra in https://github.com/airtai/faststream/pull/880
- chore: update release notes by @davorrunje in https://github.com/airtai/faststream/pull/881
- docs: use meta tag for redirect by @kumaranvpl in https://github.com/airtai/faststream/pull/886
- chore: semgrep upgrade by @davorrunje in https://github.com/airtai/faststream/pull/888
- docs: update README.md by @bhargavshirin in https://github.com/airtai/faststream/pull/889
- fix (#892): use normalized subjects in NATS streams by @Lancetnik in https://github.com/airtai/faststream/pull/893
New Contributors
- @JanumalaAkhilendra made their first contribution in https://github.com/airtai/faststream/pull/880
- @bhargavshirin made their first contribution in https://github.com/airtai/faststream/pull/889
Full Changelog: https://github.com/airtai/faststream/compare/0.2.8...0.2.9
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.8
What's Changed
- fix: FASTAPI_V2 always True by @shepilov-vladislav in https://github.com/airtai/faststream/pull/877
- feat: better RMQ AsyncAPI by @Lancetnik in https://github.com/airtai/faststream/pull/879
New Contributors
- @shepilov-vladislav made their first contribution in https://github.com/airtai/faststream/pull/877
Full Changelog: https://github.com/airtai/faststream/compare/0.2.7...0.2.8
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.7
What's Changed
- fix: ImportError: typing 'override' from 'faststream._compat' (python 3.12) by @Jaroslav2001 in https://github.com/airtai/faststream/pull/870
- fix: remove jsonref dependency by @Lancetnik in https://github.com/airtai/faststream/pull/873
Full Changelog: https://github.com/airtai/faststream/compare/0.2.6...0.2.7
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.6
What's Changed
- docs: add avro encoding, decoding examples by @kumaranvpl in https://github.com/airtai/faststream/pull/844
- docs: fix typo in README.md by @omimakhare in https://github.com/airtai/faststream/pull/849
- fix: update mypy, semgrep versions and fix arg-type mypy error by @kumaranvpl in https://github.com/airtai/faststream/pull/851
- docs: fix typo by @kumaranvpl in https://github.com/airtai/faststream/pull/859
- docs: detail Release Notes by @Lancetnik in https://github.com/airtai/faststream/pull/855
- docs: write documentation for kafka security by @sternakt in https://github.com/airtai/faststream/pull/860
- docs: asyncapi tool config added by @davorrunje in https://github.com/airtai/faststream/pull/861
- docs: retain GET params while redirecting by @kumaranvpl in https://github.com/airtai/faststream/pull/862
- docs: add article for using FastStream with Django by @kumaranvpl in https://github.com/airtai/faststream/pull/864
- chore: discord invite link changed by @davorrunje in https://github.com/airtai/faststream/pull/863
- docs: add some Django integration details by @Lancetnik in https://github.com/airtai/faststream/pull/866
- fix: remove pydantic defs in AsyncAPI schema by @Lancetnik in https://github.com/airtai/faststream/pull/869
New Contributors
- @omimakhare made their first contribution in https://github.com/airtai/faststream/pull/849
Full Changelog: https://github.com/airtai/faststream/compare/0.2.5...0.2.6
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.5
What's Changed
- fix: pass missing parameters and update docs by @sheldygg in https://github.com/airtai/faststream/pull/841
Full Changelog: https://github.com/airtai/faststream/compare/0.2.4...0.2.5
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.4
What's Changed
- Remove faststreamgen docs and remove code to generate fastreamgen docs by @kumaranvpl in https://github.com/airtai/faststream/pull/824
- Update docs article to use cookiecutter template by @kumaranvpl in https://github.com/airtai/faststream/pull/828
- Split real broker tests to independant runs by @Lancetnik in https://github.com/airtai/faststream/pull/825
- Remove unused docs/docs_src/kafka examples and its tests by @kumaranvpl in https://github.com/airtai/faststream/pull/829
- Run docs deployment only for specific file changes by @kumaranvpl in https://github.com/airtai/faststream/pull/830
- Fix formatting in deploy docs workflow by @kumaranvpl in https://github.com/airtai/faststream/pull/833
- Path operations by @Lancetnik in https://github.com/airtai/faststream/pull/823
- Mypy error fixed for uvloop by @davorrunje in https://github.com/airtai/faststream/pull/839
Full Changelog: https://github.com/airtai/faststream/compare/0.2.3...0.2.4
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.3
What's Changed
- Fix: disable test features with TestClient by @Lancetnik in https://github.com/airtai/faststream/pull/813
- New AsyncAPI naming by @Sternakt in https://github.com/airtai/faststream/pull/735
Full Changelog: https://github.com/airtai/faststream/compare/0.2.2...0.2.3
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.2
What's Changed
- Adds specific mypy ignore comment by @kumaranvpl in https://github.com/airtai/faststream/pull/803
- Adds redirect template with mike by @kumaranvpl in https://github.com/airtai/faststream/pull/808
- Adds google analytics script to redirect template by @kumaranvpl in https://github.com/airtai/faststream/pull/809
- Adds conditional import of uvloop for Python versions less than 3.12 by @davorrunje in https://github.com/airtai/faststream/pull/798
- Adds missing nats imports by @sheldygg in https://github.com/airtai/faststream/pull/795
- Adds Kafka acknowledgement by @Lancetnik in https://github.com/airtai/faststream/pull/793
New Contributors
- @sheldygg made their first contribution in https://github.com/airtai/faststream/pull/795
Full Changelog: https://github.com/airtai/faststream/compare/0.2.1...0.2.2
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.1
What's Changed
- Add custom 404 error page by @kumaranvpl in https://github.com/airtai/faststream/pull/792
- Add README NATS mention by @Lancetnik in https://github.com/airtai/faststream/pull/788
- Conditional import of uvloop for Python versions less than 3.12 by @davorrunje in https://github.com/airtai/faststream/pull/798
Full Changelog: https://github.com/airtai/faststream/compare/0.2.0...0.2.1
- Python
Published by davorrunje over 2 years ago
faststream - v0.2.0
What's Changed
- Add comprehensive guide on how to use faststream template by @kumaranvpl in https://github.com/airtai/faststream/pull/772
- Open external links in new tab by @kumaranvpl in https://github.com/airtai/faststream/pull/774
- Publish docs for minor version not for every patch by @davorrunje in https://github.com/airtai/faststream/pull/777
- Complete Kafka part of faststream docs by @Sternakt in https://github.com/airtai/faststream/pull/775
- Bump semgrep from 1.41.0 to 1.42.0 by @dependabot in https://github.com/airtai/faststream/pull/787
- Add 0.2.0 NATS support by @Lancetnik in https://github.com/airtai/faststream/pull/692
Full Changelog: https://github.com/airtai/faststream/compare/0.1.6...0.2.0
- Python
Published by davorrunje over 2 years ago
faststream - v0.1.6
What's Changed
- Add coverage badge at docs index by @kumaranvpl in https://github.com/airtai/faststream/pull/762
- Fill asyncapi custom information page by @Sternakt in https://github.com/airtai/faststream/pull/767
- Add article for using faststream template by @kumaranvpl in https://github.com/airtai/faststream/pull/768
- Use httpx instead of requests by @rjambrecic in https://github.com/airtai/faststream/pull/771
Full Changelog: https://github.com/airtai/faststream/compare/0.1.5...0.1.6
- Python
Published by davorrunje over 2 years ago
faststream - v0.1.5
What's Changed
- Licence on PyPi updated from MIT to Apache by @davorrunje in https://github.com/airtai/faststream/pull/753
- fix: Connection broker with url by @Jaroslav2001 in https://github.com/airtai/faststream/pull/754
- fix: correct AsyncAPI oneOf schema by @Lancetnik in https://github.com/airtai/faststream/pull/755
New Contributors
- @Jaroslav2001 made their first contribution in https://github.com/airtai/faststream/pull/754
Full Changelog: https://github.com/airtai/faststream/compare/0.1.4...0.1.5
- Python
Published by davorrunje over 2 years ago
faststream - v0.1.4
What's Changed
- tiny typo by @julzhk in https://github.com/airtai/faststream/pull/740
- docs: add docs mention by @Lancetnik in https://github.com/airtai/faststream/pull/744
- Add code of conduct and include badge for it in README by @kumaranvpl in https://github.com/airtai/faststream/pull/747
- Fixed docs building when pydantic version less than 2.4.0 by @davorrunje in https://github.com/airtai/faststream/pull/748
- fix: raise inner exceptions in
with_realtests by @Lancetnik in https://github.com/airtai/faststream/pull/751 - docs fix by @davorrunje in https://github.com/airtai/faststream/pull/752
- Bugfixes 745 by @Lancetnik in https://github.com/airtai/faststream/pull/749
New Contributors
- @julzhk made their first contribution in https://github.com/airtai/faststream/pull/740
Full Changelog: https://github.com/airtai/faststream/compare/0.1.3...0.1.4
- Python
Published by davorrunje over 2 years ago
faststream - v0.1.3
What's Changed
- docs: fix styles by @Lancetnik in https://github.com/airtai/faststream/pull/717
- test (#638): extra AsyncAPI channel naming test by @Lancetnik in https://github.com/airtai/faststream/pull/719
- test: cover docs_src/context by @Lancetnik in https://github.com/airtai/faststream/pull/723
- library to framework changed by @davorrunje in https://github.com/airtai/faststream/pull/724
- Create templates for issues and pull requests by @kumaranvpl in https://github.com/airtai/faststream/pull/727
- Bump actions/dependency-review-action from 2 to 3 by @dependabot in https://github.com/airtai/faststream/pull/728
- Bump actions/cache from 2 to 3 by @dependabot in https://github.com/airtai/faststream/pull/729
- Bump semgrep from 1.40.0 to 1.41.0 by @dependabot in https://github.com/airtai/faststream/pull/732
- Bump ruff from 0.0.290 to 0.0.291 by @dependabot in https://github.com/airtai/faststream/pull/733
- Polish contributing file and remove duplicate docker compose file by @kumaranvpl in https://github.com/airtai/faststream/pull/734
- Bump dawidd6/action-download-artifact from 2.26.0 to 2.28.0 by @dependabot in https://github.com/airtai/faststream/pull/731
- Bump actions/checkout from 3 to 4 by @dependabot in https://github.com/airtai/faststream/pull/730
- Pydantiv2.4.0 compat by @Lancetnik in https://github.com/airtai/faststream/pull/738
- fix: add url option to connectionargs by @Lancetnik in https://github.com/airtai/faststream/pull/739
- Fix typos and grammar in Kafka and RabbitMQ articles in the docs by @kumaranvpl in https://github.com/airtai/faststream/pull/736
Full Changelog: https://github.com/airtai/faststream/compare/0.1.1...0.1.3
- Python
Published by davorrunje over 2 years ago
faststream - v0.1.1
What's Changed
- Bump ruff from 0.0.289 to 0.0.290 by @dependabot in https://github.com/airtai/faststream/pull/672
- Make docs port configurable in serve-docs.sh by @kumaranvpl in https://github.com/airtai/faststream/pull/675
- Fix docs img by @Sternakt in https://github.com/airtai/faststream/pull/673
- Added release notes by @davorrunje in https://github.com/airtai/faststream/pull/679
- Fix typos, grammar mistakes in index and README by @kumaranvpl in https://github.com/airtai/faststream/pull/681
- Add smokeshow workflow to update coverage badge by @kumaranvpl in https://github.com/airtai/faststream/pull/687
- fix: correct rmq delayed handler router registration by @Lancetnik in https://github.com/airtai/faststream/pull/691
- Add faststream-gen section and crypto tutorial in Getting started by @rjambrecic in https://github.com/airtai/faststream/pull/689
- Fix typos and grammar mistakes by @kumaranvpl in https://github.com/airtai/faststream/pull/699
- fix: correct StreamRouter broker annotation by @Lancetnik in https://github.com/airtai/faststream/pull/700
- typos fixed by @davorrunje in https://github.com/airtai/faststream/pull/701
- Add faststream-gen section inside the README.md by @rjambrecic in https://github.com/airtai/faststream/pull/707
- Fix broken links in README file by @harishmohanraj in https://github.com/airtai/faststream/pull/706
- publish to PyPi added to CI by @davorrunje in https://github.com/airtai/faststream/pull/710
- Fix example and async docs images by @Sternakt in https://github.com/airtai/faststream/pull/713
- 696 add example to faststream gen examples which uses datetime attribute by @rjambrecic in https://github.com/airtai/faststream/pull/714
- release 0.1.1 by @davorrunje in https://github.com/airtai/faststream/pull/715
Full Changelog: https://github.com/airtai/faststream/commits/0.1.1
- Python
Published by davorrunje over 2 years ago
faststream - v0.1.1rc0
Bugs Squashed
- Fix documentation image not showing in the PyPi release
- Python
Published by Sternakt over 2 years ago