Transporte
urirun hält den URI-Vertrag vom Transport getrennt. Dieselbe URI
kann lokal, über einen Service-Endpunkt oder von einem Flow-Orchestrator aufgerufen werden. Die Registry, das JSON
Schema und das Policy-Gate bilden den Vertrag; ein Transport bewegt lediglich {uri, payload} dorthin,
wo die Runtime sie ausführt.
Lokal und Shell
local-function— ruft eine per Code registrierte In-Process-Funktion auf.argv-template— rendert eine argv-Liste und führt sie ohne Shell aus.shell-template— rendert einen Shell-String und erfordert eine explizite Policy-Freigabe.
Queue und Serverless
- Ein Queue-/Event-Consumer ordnet eine Topic-Nachricht einem URI-Lauf zu (MQTT/NATS/Kafka).
- Eine Serverless-Funktion ist ein reiner
handler(event), der pro Anfrage eine URI ausführt, wobei die Registry im Speicher kompiliert wird.
Docker
Docker-Beispiele verwenden URI-Ziele als Service-Namen:
python://python-worker/text/normalize
node://node-worker/text/slugify
shell://shell-worker/report/write
HTTP und Browser
Ein Backend lädt ein Binding-Dokument, rendert URI-Formulare und führt sie über POST /api/run aus.
Logs, jüngste Aufrufe, MCP-Tools und A2A-Karten können aus derselben Registry projiziert werden — sodass Frontend-Aktionen
dieselben URI-Namen wie das Backend verwenden. Dies ist derselbe Vertrag, den IFURI
in seinen Flows verwendet.
gRPC
urirun.v2_grpc stellt eine kleine RPC-Oberfläche bereit: Auflisten von Routen, unäre Aufrufe und Stream-Aufrufe.
pip install "urirun[grpc] @ git+https://github.com/if-uri/urirun.git@main#subdirectory=adapters/python"
MCP und A2A
Da Bindings ein JSON Schema enthalten, kann die Registry projiziert werden in:
- MCP
tools/list - MCP
tools/call - A2A Agent-Card-Skills
Die Ausführung läuft weiterhin über dasselbe urirun-Policy-Gate.