Propan:一款强大的事件驱动应用开源框架
基础介绍
Propan 是一个使用 Python 编写的框架,旨在帮助开发者构建与任何消息队列中间件(MQ Broker)交互的事件驱动应用程序。该项目托管在 GitHub 上,链接为 https://github.com/Lancetnik/Propan.git。它是一个高级的框架,基于流行的特定 Python 经纪人库,如 pydantic 和 FastAPI。
主要编程语言
该项目的主体编程语言是 Python。
核心功能
- 简单易用:设计上易于学习和使用。
- 直观:提供出色的编辑器支持,包括自动完成功能。
- 依赖管理:最小化代码重复,调用栈的任何层级都可以访问依赖项。
- 集成兼容:Propan 完全兼容任何你想要的 HTTP 框架。
- MQ 独立性:提供单一接口以支持多种流行消息队列,如 Redis、RabbitMQ、Kafka、SQS 和 Nats。
- RPC 支持:框架支持通过消息队列进行 RPC 请求,允许在远程服务上异步执行长时间操作。
- 开发工具:提供命令行工具,支持项目管理、应用代码热重载和健壮的应用模板。
- 文档生成:自动生成和展示项目的交互式 AsyncAPI 文档。
- 测试性:允许在不需要外部依赖项的情况下测试应用,可以使用虚拟的消息代理。
最近更新的功能
最近,项目的发展重点在于维护和改进现有的功能,同时也引入了一些新的改进:
- FastStream 的集成:Propan 推荐新的用户转向 FastStream,这是一个基于 FastKafka 和 Propan 经验与理念的新包,提供了统一的方法来编写能够处理基于不同协议的流数据的服务。
- 支持更多的消息队列:虽然目前支持 Kafka 和 RabbitMQ,但即将添加对其他消息队列的支持,如 ZeroMQ、MQTT、Redis Streams、Pulsar、ActiveMQ 和 AzureSB。
- 类型注解增强:利用 pydantic 进行类型注解,使得函数参数的类型转换更加安全和灵活。
- 依赖注入:类似于 pytest 和 FastAPI 的依赖管理策略,Propan 提供了依赖注入的功能,使得在处理消息时可以更加灵活地管理依赖项。
项目的持续维护和发展确保了它能够适应社区的需求和技术的进步。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考