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 just by @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:

  1. AsyncAPI3.0 support – now you can choose between AsyncAPI(schema_version="3.0.0") (default) and AsyncAPI(schema_version="2.6.0") schemas generation

  2. Msgspec native support

    ```python from fast_depends.msgspec import MsgSpecSerializer

    broker = Broker(serializer=MsgSpecSerializer()) ```

  3. 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

  1. @broker.subscriber(..., filters=...) removed
  2. message.decoded_body removed, use await message.decode() instead
  3. publish(..., rpc=True) removed, use broker.request() instead
  4. RabbitMQ @broker.subscriber(..., reply_config=...) removed, use Response instead

Related Issues

  1. fixes #1742
  2. close #1228
  3. close #980
  4. fixes #1742
  5. feature #1895
  6. fixes #1954
  7. close #1646
  8. fixes #1625
  9. close #1904
  10. close #1507
  11. close #2056
  12. close #1308
  13. close #1901
  14. close #2029
  15. close #2094
  16. close #1881
  17. close #2216
  18. close #2215
  19. close #2031
  20. close #2178
  21. close #2239
  22. 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 Subscriptions section 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 Declaration by @sobolevn in https://github.com/ag2ai/faststream/pull/2269
  • docs: Improve Context docs by @sobolevn in https://github.com/ag2ai/faststream/pull/2265
  • docs: Reword publishing/decorator.md by @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.md docs 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 Response class 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.md wording 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: Hooks page 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: testing by @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 CriticalLogMiddleware respect 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 /health by @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_str as 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_context if 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!

  1. First of all - you can't use faststream run ... command without pip 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 change

  2. The 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 flag broker.publish(..., no_confirm=True)

  3. Also, we made one more step forward to our 1.0.0 features plan! @KrySeyt implements get_one feature. 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)

  1. 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_fast option in #1647
  • fix: correct nested NatsRouter subjects 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 TestKafkaBroker behaviour 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)!

  1. 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")

```

  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") ```

  2. Also now you can use just pull_sub=True instead of pull_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, Channel shortcuts
  • Bugfix: RabbitMQ RabbitRouter prefix now affects to queue routing key as well
  • Feature (close #1402): add broker.add_middleware public 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_headers attribute 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:

  1. 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, )

  1. KafkaBroker().subscriber(...) now consumes aiokafka.ConsumerRebalanceListener object. 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

  1. Path feature perfomance was increased. Also, Path is suitable for NATS PullSub batch 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:

  1. await FastStream.stop() method and StopApplication exception to stop a FastStream worker are added.

  2. broker.subscriber() and router.subscriber() functions now return a Subscriber object 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)

  1. The router.publisher() function now returns the correct Publisher object 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)

  1. A list of middlewares can be passed to a broker.publisher as well:

```python broker = Broker(..., middlewares=())

@broker.subscriber(..., middlewares=()) @broker.publisher(..., middlewares=()) # new feature async def handler(): ... ```

  1. Broker-level middlewares now affect all ways to publish a message, so you can encode application outgoing messages here.

  2. ⚠️ BREAKING CHANGE ⚠️ : both subscriber and publisher middlewares 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.

  1. All .pyi files are removed, and explicit docstrings and methods options are added.

  2. 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()

  1. 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:

  1. await FastStream.stop() method and StopApplication exception to stop a FastStream worker are added.

  2. broker.subscriber() and router.subscriber() functions now return a Subscriber object 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)

  1. The router.publisher() function now returns the correct Publisher object 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)

  1. A list of middlewares can be passed to a broker.publisher as well:

```python broker = Broker(..., middlewares=())

@broker.subscriber(..., middlewares=()) @broker.publisher(..., middlewares=()) # new feature async def handler(): ... ```

  1. Broker-level middlewares now affect all ways to publish a message, so you can encode application outgoing messages here.

  2. ⚠️ BREAKING CHANGE ⚠️ : both subscriber and publisher middlewares 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(): ... ```

  1. A better FastAPI compatibility: fastapi.BackgroundTasks and response_class subscriber option are supported.

  2. All .pyi files are removed, and explicit docstrings and methods options are added.

  3. 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()

  1. 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_types warning 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:

  1. Initialize the KafkaBroker instance: Start by initializing a KafkaBroker instance with the necessary configuration, including Kafka broker address.

  2. 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

  3. 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.RedisRouter stream and list subscription
  • bug: Fix TestNatsClient with batch=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 packaging dependency
    • 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

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_batch notice
  • docs: add RabbitMQ security page
  • fix: respect retry attempts with NackMessage exception
  • 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 .env option to watch by changes in such files
    • Support faststream run -k 1 -k 2 ... as k=["1", "2"] extra options
    • Add subscriber, publisher and router include_in_schema: bool argument to disable AsyncAPI render
    • remove watchfiles from default distribution
    • Allow create broker.publisher with already running broker
    • FastAPI-like lifespan FastStream application 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 .env option to watch by changes in such files
  • Support faststream run -k 1 -k 2 ... as k=["1", "2"] extra options
  • Add subscriber, publisher and router include_in_schema: bool argument to disable AsyncAPI render
  • remove watchfiles from default distribution
  • Allow create broker.publisher with already running broker
  • FastAPI-like lifespan FastStream application 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_real tests 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