Releases: airtai/faststream
v0.5.30
What's Changed
- Introducing FastStream Guru on Gurubase.io by @kursataktas in #1903
- docs: add gurubase badge to the doc by @Lancetnik in #1905
- fix: allow users to pass
nkeys_seed_str
as argument for NATS broker. by @Drakorgaur in #1908 - Add more warning's to nats subscription factory by @sheldygg in #1907
- fix: correct working with dependencies versions by @Lancetnik in #1918
New Contributors
- @kursataktas made their first contribution in #1903
- @Drakorgaur made their first contribution in #1908
Full Changelog: 0.5.29...0.5.30
v0.5.29
What's Changed
- feat: add explicit message source enum by @Lancetnik in #1866
- Change uv manual installation to setup-uv in CI by @pavelepanov in #1871
- refactor: make Task and Concurrent mixins broker-agnostic by @Lancetnik in #1873
- Add support for environment variables in faststream run command by @ulbwa in #1876
- fastapi example update by @xodiumx in #1875
- Do not import
fake_context
if not needed by @sobolevn in #1877 - build: add warning about manual lifespan_context by @vectorvp in #1878
- Add trending badge by @davorrunje in #1882
- feat: add class method to create a baggage instance from headers by @vectorvp in #1885
- ops: update docker compose commands to compose V2 in scripts by @vectorvp in #1889
New Contributors
- @pavelepanov made their first contribution in #1871
- @xodiumx made their first contribution in #1875
- @sobolevn made their first contribution in #1877
- @vectorvp made their first contribution in #1878
Full Changelog: 0.5.28...0.5.29
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
pip install faststream[prometheus]
And use PrometheusMiddleware. Also, it could be helpful to use our ASGI to serve metrics endpoint in the same app.
from prometheus_client import CollectorRegistry, make_asgi_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,
asgi_routes=[
("/metrics", make_asgi_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 #1853
- add aiogram example by @IvanKirpichnikov in #1858
- Feature: Prometheus Middleware by @roma-frolov in #1791
- Add in-progress tutorial to how-to section by @sheldygg in #1859
- docs: Add info about Grafana dashboard by @draincoder in #1863
New Contributors
- @tim-hutchinson made their first contribution in #1853
Full Changelog: 0.5.27...0.5.28
v0.5.27
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 #1828
- docs: add link to RU TG community by @Lancetnik in #1831
- docs: add dynaconf NATS HowTo example by @sheldygg in #1832
- Fix AsyncAPI 2.6.0 operation label by @KrySeyt in #1835
- fix: correct CLI factory behavior by @Lancetnik in #1838
- Autocommit precommit changes by @kumaranvpl in #1840
- Add devcontainers supporting all the brokers by @kumaranvpl in #1839
- Replace async Event with bool by @Olegt0rr in #1846
- Add support for Python 3.13 by @davorrunje in #1845
Full Changelog: 0.5.25...0.5.26
v0.5.25
v0.5.24
What's Changed
- Replace while-sleep with Event by @Olegt0rr in #1683
- feat: add explicit CLI import error by @Lancetnik in #1785
- fix (#1780): replace / in generated json refs by @Lancetnik in #1786
- Fix: this commit resolve #1765 by @Flosckow in #1789
- fix (#1792): make RMQ publisher.publish reply_to optional by @Lancetnik in #1795
- fix (#1793): FastStream Response support in FastAPI integration by @Lancetnik in #1796
- Update exception.md by @pepellsd in #1803
- Fixes the CI bug that allows PRs with failed tests to be merged. by @davorrunje in #1807
- feat: add CLI support for AsgiFastStream by @Sehat1137 in #1782
- docs: add contributors page by @kumaranvpl in #1808
- fix: correct dependency injection of custom context fields implementing partial eq/ne by @antoinehumbert in #1809
- do not assume discriminator is not a property by @lecko-cngroup in #1811
New Contributors
- @Olegt0rr made their first contribution in #1683
- @pepellsd made their first contribution in #1803
- @antoinehumbert made their first contribution in #1809
- @lecko-cngroup made their first contribution in #1811
Full Changelog: 0.5.23...0.5.24
v0.5.23
What's Changed
We made last release just a few days ago, but there are some big changes here already!
-
First of all - you can't use
faststream run ...
command withoutpip install faststream[cli]
distribution anymore. It was made to minify default (and production) distribution by removing typer (rich and click) dependencies. CLI is a development-time feature, so if you don't need - just don't install! Special thanks to @RubenRibGarcia for this change -
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 flagbroker.publish(..., no_confirm=True)
-
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:
subscriber = broker.subscriber("in")
...
msg = await subscriber.get_one(timeout=5.0)
- And the last one: @draincoder continues to develop OTEL support! Now he provides us with an ability to use OTEL spans and baggage in a comfortable FastStream-style. Just take a look at the new documentation section
Big thanks to all new and old contributors who makes such a great release!
- feat: AsgiFastStream hooks init options by @Lancetnik in #1768
- fix (#1748): add Kafka publish no_confirm option by @Lancetnik in #1749
- Fix GeneralExceptionHandler typehint by @sheldygg in #1773
- Add
broker.subscriber().get_one()
by @KrySeyt in #1726 - Add OTel baggage support by @draincoder in #1692
- build(#1430): separate cli faststream to its own distribution by @RubenRibGarcia in #1769
New Contributors
- @RubenRibGarcia made their first contribution in #1769
Full Changelog: 0.5.22...0.5.23
v0.5.22
What's Changed
- fix: FastAPI 0.112.4+ compatibility by @Lancetnik in #1766
Full Changelog: 0.5.21...0.5.22
v0.5.21
What's Changed
- feat (#1168): allow include regular router to FastAPI integration by @Lancetnik in #1747
- In case if core-subscriber receive a JetStream message. by @sheldygg in #1751
- feat: explicit final message commit status by @Lancetnik in #1754
- Fix/context get local default by @Lancetnik in #1752
- fix (#1759): correct ConfluentConfig with enums by @Lancetnik in #1762
- Adds SASLOAuthBearer flow to AIO Kafka's Faststream Security Parsing by @sifex in #1761
- fix: FastAPI 0.112.3 compatibility by @Lancetnik in #1763
Full Changelog: 0.5.20...0.5.21