horde/rpc

RPC library

Package info

github.com/horde/Rpc

Homepage

Type:horde-library

pkg:composer/horde/rpc

Statistics

Installs: 2 856

Dependents: 7

Suggesters: 0

Stars: 1

Open Issues: 0

v3.0.0RC1 2026-06-24 00:00 UTC

Requires

Requires (Dev)

Suggests

Provides

None

Conflicts

None

Replaces

None

LGPL-2.1-only 4561e40009348eaa798c5e21dbf1eb8037ffffff

  • Jan Schneider <jan.woop@horde.org>
  • Michael J Rubinsky <mrubinsk.woop@horde.org>
  • Chuck Hagenbuch <chuck.woop@horde.org>

soapjson-rpcjsonrpcpsr-15activesync


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.