APIXIS 提供两个可组合的运行时:
- 一个异步事件系统,支持通配符订阅、有序处理器、背压和本地事件队列;
- 一个有状态图运行时,支持命令驱动的步骤、并行节点、快照、流式处理以及中断/恢复工作流。
需要 Python 3.12+。运行时 API 专为
asyncio设计。
安装
pip install apixis
要安装本地检出,请在仓库根目录运行:
python -m pip install .
如需开发和发布工具:
python -m pip install -e ".[dev]"
python -m pytest
使用 uv 时,请使用 uv sync --extra dev --locked 和 uv run --extra dev pytest。
有关构建和发布到 PyPI,请参阅发布指南。
快速开始
import asyncio
from apixis import GraphManager
def increment(state: dict) -> dict:
return {"value": state["value"] + 1}
async def master() -> None:
graph = (
GraphManager()
.add_node(increment)
.compile_graph(entry_point="increment")
)
try:
result = await graph.invoke({"value": 1})
print(result) # {'value': 2}
finally:
graph.decompose()
asyncio.run(master())
文档
许可证
根据 Apache License 2.0 授权。请参阅 LICENSE。 捆绑的 IdGenerator 组件采用 MIT 许可证;请参阅第三方声明。
APIXIS
English | 中文
Event-driven graph orchestration for Python asyncio applications.
Source · Issues · API Reference · Example
APIXIS provides two composable runtimes:
- an asynchronous event system with wildcard subscriptions, ordered handlers, backpressure, and a local event queue;
- a stateful graph runtime with Command-driven steps, parallel nodes, snapshots, streaming, and interruption/resume workflows.
Python 3.12+ is required. Runtime APIs are designed for
asyncio.
Install
pip install apixis
To install a local checkout, run from the repository root:
python -m pip install .
For development and release tools:
python -m pip install -e ".[dev]"
python -m pytest
With uv, use uv sync --extra dev --locked and uv run --extra dev pytest.
See the release guide for building and publishing to PyPI.
Quick start
import asyncio
from apixis import GraphManager
def increment(state: dict) -> dict:
return {"value": state["value"] + 1}
async def master() -> None:
graph = (
GraphManager()
.add_node(increment)
.compile_graph(entry_point="increment")
)
try:
result = await graph.invoke({"value": 1})
print(result) # {'value': 2}
finally:
graph.decompose()
asyncio.run(master())
Documentation
License
Licensed under the Apache License 2.0. See LICENSE. The bundled IdGenerator component is MIT licensed; see third-party notices.
Metadata
Release files for apixis 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| apixis-1.1.1.tar.gz | 212.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| apixis-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 284.4 kB
Release files / apixis-1.1.1.tar.gz
| Download URL | apixis-1.1.1.tar.gz |
|---|---|
| Size | 212.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f5f224591d4c89cc05b01c27a0121f4650f96395f85d9c6e36529237a605efb
|
|
BLAKE2b-256 checksum How to use checksums |
d7b9b219352c4823db0c54100e78ed2bbe902f76b9e4ac6c0eed1e22be9c1a5f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / apixis-1.1.1-py3-none-any.whl
| Download URL | apixis-1.1.1-py3-none-any.whl |
|---|---|
| Size | 71.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
175a8b2eb3f4d13cc73d349aa3439992e7823d818dcd620865c11671a4c55d2a
|
|
BLAKE2b-256 checksum How to use checksums |
74c0a9c9f663190ab2c3db19dcc1f3bae107cc9e6f862f7af9617e780da8240a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Security for apixis 1.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.