Catalog PyPI
Back to packageRELEASE DETAILS

0.1.5

PyPI

a2a-registry

A2A Registry - Protocol buffer definitions and Python client for A2A message registry

Published7 Aug 2025
Direct dependencies39
Transitive dependenciesNot calculated

README

Version 0.1.5 documentation

A2A Registry

CI Python Version PyPI Version License

Production-Ready Agent Discovery Platform

A2A Registry is the definitive solution for agent discovery, registration, and management in distributed Agent-to-Agent (A2A) networks. Built on A2A Protocol v0.3.0 and FastA2A standards, it provides a robust, scalable infrastructure for dynamic agent ecosystems.

Version Information

  • Current Version: 0.1.5
  • Protocol Version: A2A Protocol v0.3.0
  • Status: Production-Ready

Key Highlights

  • Universal Agent Coordination
  • Multi-Protocol Support (JSON-RPC 2.0, REST, GraphQL)
  • High-Performance Architecture
  • Comprehensive Security Model
  • Flexible Extension System

Quick Start

Prerequisites

  • Python 3.9+
  • pip package manager

Installation

pip install a2a-registry

Basic Usage

Start Registry Server

# Start with default configuration
a2a-registry serve

# Custom configuration
a2a-registry serve --host 0.0.0.0 --port 8080 --log-level DEBUG

Agent Registration

from a2a_registry import A2ARegistryClient

# Initialize client
client = A2ARegistryClient('http://localhost:8000')

# Define and register agent
weather_agent = {
    "name": "weather-agent",
    "description": "Provides real-time weather information",
    "version": "0.420.0",
    "protocol_version": "0.3.0",
    "preferred_transport": "JSONRPC",
    "skills": [
        {"id": "get_current_weather", "description": "Current weather data"},
        {"id": "get_forecast", "description": "7-day weather forecast"}
    ]
}

# Register agent
client.register_agent(weather_agent)

# Discover agents
forecast_agents = client.search_agents(skills=['get_forecast'])

Documentation

For comprehensive guides, API references, and tutorials:

Supported Protocols

  • JSON-RPC 2.0 (Primary)
  • REST API
  • GraphQL

Contributing

We welcome contributions! Please see our Contributing Guide for details on how to get started.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments


Built for the Future of Agent Ecosystems

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 39

Native requirements
39 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
fastapi
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
fastapi>=0.95.0runtime
httpx
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
httpx>=0.28.1runtime
httpx-sse
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
httpx-sse>=0.4.0runtime
pydantic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pydantic>=2.11.3runtime
sse-starlette
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
sse-starletteruntime
starlette
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
starletteruntime
protobuf
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
protobuf>=5.29.5runtime
google-api-core
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
google-api-core>=1.26.0runtime
grpcio
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
grpcio>=1.60runtime
grpcio-tools
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
grpcio-tools>=1.60runtime
grpcio_reflection
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
grpcio_reflection>=1.7.0runtime
fasta2a
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
fasta2aruntime
uvicorn
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
uvicorn>=0.20.0runtime
click
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
click>=8.0.0runtime
jsonrpcserver
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
jsonrpcserver>=5.0.0runtime
strawberry-graphql
Environment
{
  "extras": "fastapi",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
strawberry-graphql[fastapi]>=0.234.0runtime
pyjwt
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pyjwt>=2.8.0runtime
redis
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
redis>=5.0.0runtime
sentence-transformers
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
sentence-transformers>=2.2.0runtime
numpy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
numpy>=1.21.0runtime
faiss-cpu
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
faiss-cpu>=1.7.0runtime
black
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
black>=23.0.0; extra == "dev"runtime
ruff
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
ruff>=0.1.0; extra == "dev"runtime
mypy
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
mypy>=1.0.0; extra == "dev"runtime
mypy-protobuf
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
mypy-protobuf>=3.4.0; extra == "dev"runtime
types-grpcio
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
types-grpcio>=1.0.0; extra == "dev"runtime
pytest
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pytest>=7.0.0; extra == "dev"runtime
pytest-asyncio
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pytest-asyncio>=0.21.0; extra == "dev"runtime
pytest-cov
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pytest-cov>=4.0.0; extra == "dev"runtime
build
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
build>=0.10.0; extra == "dev"runtime
twine
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
twine>=4.0.0; extra == "dev"runtime
pre-commit
Environment
{
  "extras": "",
  "marker": "extra == \"dev\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pre-commit>=3.0.0; extra == "dev"runtime
mkdocs
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
mkdocs>=1.5.0; extra == "docs"runtime
mkdocs-material
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
mkdocs-material>=9.4.0; extra == "docs"runtime
mkdocstrings
Environment
{
  "extras": "python",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
mkdocstrings[python]>=0.24.0; extra == "docs"runtime
mkdocs-gen-files
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
mkdocs-gen-files>=0.5.0; extra == "docs"runtime
mkdocs-literate-nav
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
mkdocs-literate-nav>=0.6.0; extra == "docs"runtime
mkdocs-section-index
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
mkdocs-section-index>=0.3.0; extra == "docs"runtime
mkdocs-autorefs
Environment
{
  "extras": "",
  "marker": "extra == \"docs\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
mkdocs-autorefs>=0.5.0; extra == "docs"runtime

Distribution files

2 collected
a2a_registry-0.1.5-py3-none-any.whl

bdist_wheel · 74.27 KB · Python py3

Source file
a2a_registry-0.1.5.tar.gz

sdist · 78.57 KB · Python source

Source file

Repository

PENDING
allenday/a2a-registry

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 16:28 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:e26d4bb970a49f38d78825a079090f6183df4650f12574d5a22a8e8e2bbaad2b

Other collected versions

View all collected versions →