horde/rpc

RPC library

Maintainers

Package info

github.com/horde/Rpc

Homepage

Type:horde-library

pkg:composer/horde/rpc

Statistics

Installs: 1 649

Dependents: 5

Suggesters: 0

Stars: 1

Open Issues: 0

v3.0.0beta3 2026-04-09 00:00 UTC

README

RPC adapters for Horde's API system. Modern implementations share a dispatch layer (ApiProviderInterface, MethodInvokerInterface) across protocols — write a provider once, serve it over JSON-RPC, MCP, and SOAP.

Protocols

JSON-RPC

Modern src/JsonRpc/ — PSR-7/15/18, JSON-RPC 1.1 and 2.0
Legacy lib/Horde/Rpc/Jsonrpc.php
Docs doc/JSONRPC-USAGE.md

MCP (Model Context Protocol)

Modern src/Mcp/MCP spec, Streamable HTTP transport
Docs doc/MCP-USAGE.md

SOAP

Modern src/Soap/ — PSR-15, ext-soap (optional) in WSDL-less mode
Legacy lib/Horde/Rpc/Soap.php
Docs doc/SOAP-USAGE.md

XML-RPC

Legacy lib/Horde/Rpc/Xmlrpc.php — requires ext-xmlrpc, will probably not work in most modern PHP installations XML-RPC spec

Delegation Protocols

These delegate to other Horde packages:

Shared Dispatch Layer

JsonRpcHandler ──┐
McpServer ───────┤── ApiProviderInterface / MethodInvokerInterface
SoapHandler ─────┘

Providers

CallableMapProvider - a generic map of callables to API names MathApiProvider - an educational example API provider HordeRegistryApiProvider - Integrates the Horde Registry Inter-App API

All modern handlers implement both RequestHandlerInterface and MiddlewareInterface for flexible middleware stacking.