horde / rpc
RPC library
v3.0.0beta3
2026-04-09 00:00 UTC
Requires
- php: ^8.2
- horde/core: ^3 || dev-FRAMEWORK_6_0
- horde/dav: ^2 || dev-FRAMEWORK_6_0
- horde/exception: ^3 || dev-FRAMEWORK_6_0
- horde/horde-installer-plugin: dev-FRAMEWORK_6_0 || ^3 || ^2
- horde/perms: ^3 || dev-FRAMEWORK_6_0
- horde/serialize: ^3 || dev-FRAMEWORK_6_0
- horde/support: ^3 || dev-FRAMEWORK_6_0
- horde/translation: ^3 || dev-FRAMEWORK_6_0
- horde/util: ^3 || dev-FRAMEWORK_6_0
- horde/xml_element: ^3 || dev-FRAMEWORK_6_0
- psr/event-dispatcher: ^1.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.1 || ^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- horde/activesync: ^3 || dev-FRAMEWORK_6_0
- horde/http: ^3 || dev-FRAMEWORK_6_0
Suggests
- ext-soap: *
- ext-xmlrpc: *
- horde/activesync: ^3 || dev-FRAMEWORK_6_0
- horde/eventdispatcher: ^3 || dev-FRAMEWORK_6_0
- horde/http: ^3 || dev-FRAMEWORK_6_0
- horde/lock: ^3 || dev-FRAMEWORK_6_0
- horde/syncml: ^3 || dev-FRAMEWORK_6_0
This package is auto-updated.
Last update: 2026-04-09 17:04:49 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:
- ActiveSync —
lib/Horde/Rpc/ActiveSync.php→horde/activesync - WebDAV / CalDAV / CardDAV —
lib/Horde/Rpc/Webdav.php→horde/dav - SyncML —
lib/Horde/Rpc/Syncml.php→horde/syncml(deprecated) - PHPGroupware XML-RPC —
lib/Horde/Rpc/Phpgw.php(deprecated)
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.