@hackage yaml-rpc0.2
Simple library for network (TCP/IP) YAML RPC
Installation
Dependencies (12)
Dependents (3)
@hackage/yaml-rpc-scotty, @hackage/acme-everything, @hackage/yaml-rpc-snap
YAML-RPC README
Ilya V. Portnov portnov84@rambler.ru
The yaml-rpc package contains a small library to organize remote procedure call (RPC) over TCP/IP network, using YAML as data serialization format.
RPC server should supply a set of "RPC methods", which are simply functions ::
a -> IO b, a' and 'b' should be of class IsYamlObject. This class guarantees that values of given type can be serialized to YAML and de-serialized. Network.YAML.Instances module provides some instances declaration for this typeclass. Moreover, Network.YAML.Derive module contains (TemplateHaskell) function deriveIsYamlObject, which will help you to declare instance
IsYamlObject ...' for almost any ADT.
RPC-client calls RPC-methods usually using one of two ways. First is to use
call' (or callDynamic') function from Network.YAML.Caller module. One need to
give method name as it's parameter. Second way is to use (TemplateHaskell-)
function `remote' from Network.YAML.WrapMethods module to declare wrapper
functions for RPC-methods. These wrappers will have same names as source
functions, and almost same behaivour. Single difference is that wrappers
require pair: (RPC-server host name, port number) as their first argument.
You can see examples of usage in files Test.hs and TestCall.hs. Haddock documentation is here: http://iportnov.ru/files/yaml-rpc/html/index.html.
Depends: ghc >= 6.10, network, data-object, data-object-yaml, yaml, data-default, convertible-text.