Propan
spec
Propan | spec | |
---|---|---|
16 | 42 | |
466 | 3,853 | |
- | 1.3% | |
8.8 | 7.9 | |
about 1 month ago | 7 days ago | |
Python | JavaScript | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Propan
-
FastStream: Python's framework for Efficient Message Queue Handling
Later, we discovered Propan, a library created by Nikita Pastukhov, which solved similar problems but for RabbitMQ. Recognizing the potential for collaboration, we joined forces with Nikita to build a unified library that could work seamlessly with both Kafka and RabbitMQ. And that's how FastStream came to be—a solution born out of the need for simplicity and efficiency in microservices development.
-
How we deprecated two successful projects and joined forces to create an even more successful one
The next step was to figure out what to do next. We posted questions on a few relevant subreddits and got quite a few feature requests, mostly around supporting other protocols, encoding schemas etc. But, we also got a message from a developer of a similar framework Propan that was released at about the same time and was gaining quite a traction in the RabbitMQ community. That developer was Nikita Pastukhov and he made an intriguing proposal: let's join our efforts and create one framework with the best features of both. Both projects were growing at roughly the same speed but targeted different communities. So the potential for double growth was there. After a quick consideration, we realized there was not much to lose and there was a lot to gain. Of course, we would lose absolute control over the project but losing control to the community is the only way for an open-source project to succeed. On the positive side, we would gain a very skilled maintainer who single-handedly created a similar framework all by himself. The frameworks were conceptually very similar so we concluded there would not be much friction of ideas and we should be able to reach consensus on the most important design issues.
-
Introducing FastStream: the easiest way to write microservices for Apache Kafka and RabbitMQ in Python
FastStream simplifies the process of writing producers and consumers for message queues, handling all the parsing, networking and documentation generation automatically. It is a new package based on the ideas and experiences gained from FastKafka and Propan. By joining our forces, we picked up the best from both packages and created a unified way to write services capable of processing streamed data regardless of the underlying protocol. We'll continue to maintain both packages, but new development will be in this project.
-
FastStream: the easiest way to add Kafka and RabbitMQ support to FastAPI services
FastStream (https://github.com/airtai/faststream) is a new Python framework, born from Propan and FastKafka teams' collaboration (both are deprecated now). It extremely simplifies event-driven system development, handling all the parsing, networking, and documentation generation automatically. Now FastStream supports RabbitMQ and Kafka, but supported brokers are constantly growing (wait for NATS and Redis a bit). FastStream itself is a really great tool to build event-driven services. Also, it has a native FastAPI integration. Just create a StreamRouter (very close to APIRouter) and register event handlers the same with the regular HTTP-endpoints way:
-
Propan – Python Framework for building messaging services has a big update
Hello everyone!
Two months ago I told you about Propan - the Python framework to build messaging services based on Any Message Broker. So, there were a lot of changes for this time and I want you to tell me again about them.
At first, we added Kafka, Redis Pub/Sub, SQS, and NatsJS support (to RabbitMQ and regular NATS). At now you can interact with these brokers via the same Propan interfaces.
Also, we added an AsyncAPI schema autogeneration, so you already have documentation for your services if you are using Propan.
And the last (but not least) - PydanticV2 support! You can use V1 and V2 both, but V2 is much faster - it is a preferred way to write new services.
By the way: we have a new Propan major version draft, so if you want to participate in the discussion and suggest a new feature, it is time to join our discord and tell about it!
Propan: https://github.com/Lancetnik/Propan
- Looking for Python contributors to a new Messaging Framework
-
Help wanted: support for PR
Also it is important for my own Propan package implementing some custom routers.
- FLaNK Stack Weekly 29 may 2023
-
Propan is a best way to interact SQS from Python
As you may know, I am developing Propan framework to interact with various message brokers single way. When I published a post about the existence of the framework, users immediately asked "When to expect SQS support?". Now!
-
Propan 0.1.2 - new way to interact with Kafka from Python
A couple of days ago I wrote about the release of my framework for working with various message brokers - Propan!
spec
-
10 realtime data sources you won't believe are free!
AsyncAPI: Interested in how to define your WebSocket APIs? One of the most advanced realtime specifications is the AsyncAPI specification, which comes with various generators for code and documentation, as well as renderers for the specifications.
- Comunicar microservicios con: ¿Kafka, RabbitMQ u otro? ¿Por qué?
-
FastStream: Python's framework for Efficient Message Queue Handling
Our journey with FastStream started when we needed to integrate our machine learning models into a customer's Apache Kafka environment. To streamline this process, we created FastKafka using AIOKafka, AsyncAPI, and asyncio. It was our first step in making message queue management easier.
-
Introducing FastStream: the easiest way to write microservices for Apache Kafka and RabbitMQ in Python
Automatic Docs: Stay ahead with automatic AsyncAPI documentation
-
FastStream: the easiest way to add Kafka and RabbitMQ support to FastAPI services
FastStream supports in-memory testing, AsyncAPI schema generation and more... If you are interested, please support our project by giving a GH start and joining our discord server.
-
An AsyncAPI Example: Building Your First Event-driven API
However, in order for the system to work effectively, there must be a common understanding between the components regarding events and their data structures. This is where AsyncAPI comes in; it helps define a contract that describes how the components communicate and behave effectively.
-
Is this a viable approach to a chat microservice?
You can also take a look at https://www.asyncapi.com/ (a spec for asynchronous APIs). It's useful for this use case, that is, building a well structured websocket interface with pub/sub.
- OpenAPI v4 Proposal
-
Propan 0.1.2 - new way to interact Kafka from Python
Sure! Next step I am working on AsyncAPI scheme generation by your application code. It's also includes a project generation from scheme, scheme web view (lika the Swagger for OpanAPI), etc. It will a much difficult than just another broker implementation...
-
Make API product lifecycle management easy
Onboarding - Enable developers to quickly learn how to consume the exposed APIs. For example, offer OpenAPI or AsyncAPI documentation and provide a portal and sandbox.
What are some alternatives?
DB-GPT - AI Native Data App Development framework with AWEL(Agentic Workflow Expression Language) and Agents
springdoc-openapi - Library for OpenAPI 3 with spring-boot
faststream - FastStream is a powerful and easy-to-use Python framework for building asynchronous services interacting with event streams such as Apache Kafka, RabbitMQ, NATS and Redis.
WatermelonDB - 🍉 Reactive & asynchronous database for powerful React and React Native apps ⚡️
kafka-native - Kafka broker compiled to native using Quarkus and GraalVM.
asyncapi-react - React component for rendering documentation from your specification in real-time in the browser. It also provides a WebComponent and bundle for Angular and Vue
fastgron - High-performance JSON to GRON (greppable, flattened JSON) converter
mqtt-venstar-bridge - Simple MQTT bridge to the venstar HTTP API
bunny-storm - RabbitMQ asynchronous connector library for Python with built in RPC support
eventbridge-atlas - Open-source tool to document, discover, and share your Amazon EventBridge schemas.
FastDepends - FastDepends - FastAPI Dependency Injection system extracted from FastAPI and cleared of all HTTP logic. Async and sync modes are both supported.
Flask-SocketIO - Socket.IO integration for Flask applications.