Skip to main content

Event-Driven State Machine - 去中心化的事件驱动状态机引擎,pip install 即装即用

Project description

lzm-edsm

编码:utf8 | 作者:Lzm | 日期:2026-07-15

项目定位

Event-Driven State Machine——去中心化的事件驱动状态机引擎。

一句话:状态转移 = 事件发布,事件消费 = 状态响应。不再分"状态机"和"事件总线"两个概念。

lzm-edsm 将状态机、事件总线、蓝图合并成一个统一的 Python 包,安装即可使用,不绑定任何框架或中间件。

核心理念

旧架构:                      新架构:
StateBlueprint  ← 定义状态    Domain(统一容器)
EventRegistry   ← 注册事件        ├── state() 注册状态
EventBus        ← 发布/消费       ├── transition() 注册转移(自动派生事件)
Subscribers     ← 监听事件        └── on() 注册监听

状态机引擎                        Engine(执行器)
事件总线                          Transport(可插拔传输层)

技术栈

技术 版本
语言 Python >= 3.11
核心(零依赖) 纯 asyncio
传输:Redis redis-py >= 5.0(可选)
传输:RabbitMQ aio-pika >= 9.0(可选)
存储:SQLite aiosqlite 内置
测试 pytest >= 8.0

项目状态

快速安装(待发布)

# 核心(零依赖)
pip install lzm-edsm

# 带 Redis 传输
pip install lzm-edsm[redis]

# 带 RabbitMQ 传输
pip install lzm-edsm[rabbitmq]

# 全量
pip install lzm-edsm[all]

目录结构

lzm-edsm/
├── pyproject.toml          # 项目元数据 + 可选依赖
├── src/
│   └── lzm/edsm/
│       ├── __init__.py     # 导出 Domain, Engine, Event
│       ├── core/
│       │   ├── domain.py   # Domain 类(状态+转移+事件容器)
│       │   ├── engine.py   # Engine 执行器(Pipeline)
│       │   ├── event.py    # Event 数据结构
│       │   └── exceptions.py
│       ├── transports/
│       │   ├── base.py     # Transport 抽象基类
│       │   ├── inprocess.py
│       │   ├── redis.py
│       │   └── rabbitmq.py
│       └── contrib/
│           ├── store.py    # SQLiteStore 事件溯源
│           └── mermaid.py  # 可视化
├── tests/
├── examples/
└── docs/
    ├── timeline.md
    ├── common-errors.md
    ├── coding-standards.md
    ├── todo.md
    └── logic-records/

相关文档

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lzm_edsm-0.1.0.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lzm_edsm-0.1.0-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

Details for the file lzm_edsm-0.1.0.tar.gz.

File metadata

  • Download URL: lzm_edsm-0.1.0.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for lzm_edsm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7d3992227c9571e1bd0bef5c0095ca13e252a2312c6e877a8af321a078ef365c
MD5 14e4a474a9e1ce7cf9a3bd615c6f6a6c
BLAKE2b-256 01e2ff98cf09a6cf47946d55b9bc0bb1676d9a06cb0e637186d316b6cb87d7a4

See more details on using hashes here.

File details

Details for the file lzm_edsm-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: lzm_edsm-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 34.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for lzm_edsm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 67811e3c3c9af7496d3b33a86819e25167e5266db65c63cbe3c6734db952a7ff
MD5 683ffbec71052fcafd99ac78fd11f0cf
BLAKE2b-256 f584cc566b49a9bf25926b2ca32adf0e8dd0356f194e3dd0521a4cf230d18019

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page