Skip to main content

ROAR Protocol — Python SDK. Standalone implementation of the 5-layer agent communication standard.

Project description

roar-sdk

ROAR Protocol — Python SDK. 5-layer agent communication standard.

PyPI Python License

Design by @kdairatchiProwlrBot/roar-protocol


Install

pip install roar-sdk                    # core: types, client, server (pydantic only)
pip install 'roar-sdk[http]'            # + httpx for HTTP transport
pip install 'roar-sdk[websocket]'       # + websockets transport
pip install 'roar-sdk[ed25519]'         # + Ed25519 signing (cryptography)
pip install 'roar-sdk[server]'          # + fastapi + uvicorn for serving
pip install 'roar-sdk[server,ed25519]'  # full stack

Quick Start

from roar_sdk import AgentIdentity, ROARMessage, MessageIntent, ROARClient, ROARServer

# Layer 1: identity
agent = AgentIdentity(display_name="my-agent", capabilities=["code"])

# Layer 4: build and sign a message
msg = ROARMessage(
    **{"from": agent, "to": other},
    intent=MessageIntent.DELEGATE,
    payload={"task": "review"},
)
msg.sign("shared-secret")

# Layer 3: send over HTTP
client = ROARClient(agent, signing_secret="shared-secret")
response = await client.send_remote(
    to_agent_id=other.did,
    intent=MessageIntent.DELEGATE,
    content={"task": "review"},
)

What's in the Box

Module What it gives you
AgentIdentity, AgentCard Layer 1 — W3C DID-based agent identity
AgentDirectory, SQLiteAgentDirectory Layer 2 — in-memory and persistent discovery
ROARHub Layer 2 — federated hub with REST API
DiscoveryCache Layer 2 — TTL+LRU discovery cache
ROARClient, ROARServer Layer 3 — HTTP client and server
create_roar_router Layer 3 — FastAPI router (HTTP + WebSocket + SSE)
ROARMessage, MessageIntent Layer 4 — unified message format
sign_ed25519, verify_ed25519 Layer 4 — asymmetric signing
DelegationToken, issue_token Layer 4 — scoped capability grants
EventBus, StreamFilter Layer 5 — real-time event streaming
IdempotencyGuard Layer 5 — deduplication
DIDDocument, DIDKeyMethod, DIDWebMethod Identity — W3C DID documents
AutonomyLevel, CapabilityDelegation Identity — graduated autonomy model
MCPAdapter, A2AAdapter, ACPAdapter Adapters — MCP, A2A, ACP bridges
detect_protocol Adapters — auto-detect incoming protocol

Server Example

from fastapi import FastAPI
from roar_sdk import AgentIdentity, MessageIntent, ROARMessage, ROARServer
from roar_sdk.router import create_roar_router

identity = AgentIdentity(display_name="code-reviewer", capabilities=["code-review"])
server = ROARServer(identity, signing_secret="shared-secret")

@server.on(MessageIntent.DELEGATE)
async def handle_delegate(msg: ROARMessage) -> ROARMessage:
    return ROARMessage(
        **{"from": server.identity, "to": msg.from_identity},
        intent=MessageIntent.RESPOND,
        payload={"review": "LGTM"},
        context={"in_reply_to": msg.id},
    )

app = FastAPI()
app.include_router(create_roar_router(server, rate_limit=60))
# uvicorn main:app --port 8089

Protocol Adapters

from roar_sdk import MCPAdapter, A2AAdapter, ACPAdapter
from roar_sdk.adapters.detect import detect_protocol, ProtocolType

# Auto-detect incoming format
protocol = detect_protocol(raw_json)

if protocol == ProtocolType.MCP:
    msg = MCPAdapter.mcp_to_roar(tool_name, params, agent)
elif protocol == ProtocolType.A2A:
    msg = A2AAdapter.a2a_task_to_roar(task, sender, receiver)
elif protocol == ProtocolType.ACP:
    msg = ACPAdapter.acp_message_to_roar(acp_msg, ide, agent)

Links

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

roar_sdk-0.3.2.tar.gz (39.4 kB view details)

Uploaded Source

Built Distribution

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

roar_sdk-0.3.2-py3-none-any.whl (53.9 kB view details)

Uploaded Python 3

File details

Details for the file roar_sdk-0.3.2.tar.gz.

File metadata

  • Download URL: roar_sdk-0.3.2.tar.gz
  • Upload date:
  • Size: 39.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for roar_sdk-0.3.2.tar.gz
Algorithm Hash digest
SHA256 096e49e76d2cd47bf479c0e3298274e7fa08c51d159c88e1e4933b68e69af4ec
MD5 5d5346b8ab42781ae4c7e0fae49aca78
BLAKE2b-256 0ecba99924ac5c81a6d4a72936ffaead4a851dedca0ad89a6892b454a0d7437c

See more details on using hashes here.

File details

Details for the file roar_sdk-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: roar_sdk-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 53.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for roar_sdk-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d35c5115d5ab5f0656d3777e95b5e3f9b2301f0bf1803b812133f2cc463de09c
MD5 782cbd022c7892e8e3c3e3e78240e902
BLAKE2b-256 36d20154df1b08ae769908ed4af41bff2191fdf2967dc94196813e481f905c76

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