Portability | portable |
---|---|
Stability | experimental |
Maintainer | tanaka.hideyuki@gmail.com |
Safe Haskell | None |
This module is server library of MessagePack-RPC. The specification of MessagePack-RPC is at http://redmine.msgpack.org/projects/msgpack/wiki/RPCProtocolSpec.
A simple example:
import Network.MessagePackRpc.Server add :: Int -> Int -> Method Int add x y = return $ x + y main = serve 1234 [("add", toMethod add)]
RPC method types
class MethodType f m | f -> m whereSource
(OBJECT o, MethodType r m) => MethodType (o -> r) m | |
(MonadThrow m, MonadBaseControl IO m, OBJECT o) => MethodType (MethodT m o) m |
MonadTrans MethodT | |
Monad m => Monad (MethodT m) | |
Functor m => Functor (MethodT m) | |
Applicative m => Applicative (MethodT m) | |
MonadIO m => MonadIO (MethodT m) | |
(MonadThrow m, MonadBaseControl IO m, OBJECT o) => MethodType (MethodT m o) m |
Start RPC server
:: forall m . (MonadIO m, MonadThrow m, MonadBaseControl IO m) | |
=> Int | Port number |
-> [(String, RpcMethod m)] | list of (method name, RPC method) |
-> m () |
Start RPC server with a set of RPC methods.