horde / rpc
RPC library
v3.1.0
2026-07-18 00:00 UTC
Requires
- php: ^8.2
- 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/core: ^3 || dev-FRAMEWORK_6_0
- horde/dav: ^2 || 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
Provides
None
Conflicts
None
Replaces
None
- dev-FRAMEWORK_6_0 / 3.x-dev
- v3.1.0
- v3.0.0
- v3.0.0RC1
- v3.0.0beta4
- v3.0.0beta3
- v3.0.0beta2
- v3.0.0beta1
- v3.0.0alpha5
- v3.0.0alpha4
- v3.0.0alpha3
- 3.0.0alpha2
- 3.0.0alpha1
- 2.1.9
- 2.1.8
- 2.1.7
- 2.1.6
- 2.1.5
- dev-feat/search-streaming
- dev-feat/sync-response-streaming
- dev-feat/soap-client
- dev-feat/dispatch-refactor
- dev-feat/modern-rpc
- dev-refactor/modernize-test-suite
- dev-FRAMEWORK_5_2
- dev-master
This package is auto-updated.
Last update: 2026-09-14 08:36:52 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.