| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Mu.GRpc.Server
Contents
Description
This module allows you to server a Mu Server
as a WAI Application using gRPC as transport layer.
The simples way is to use runGRpcApp, all other
variants provide more control over the settings.
Synopsis
- runGRpcApp :: (KnownName name, KnownName (FindPackageName anns), GRpcMethodHandlers ServerErrorIO methods handlers) => Port -> ServerT Maybe (Service name anns methods) ServerErrorIO handlers -> IO ()
- runGRpcAppTrans :: (KnownName name, KnownName (FindPackageName anns), GRpcMethodHandlers m methods handlers) => Port -> (forall a. m a -> ServerErrorIO a) -> ServerT Maybe (Service name anns methods) m handlers -> IO ()
- runGRpcAppSettings :: (KnownName name, KnownName (FindPackageName anns), GRpcMethodHandlers m methods handlers) => Settings -> (forall a. m a -> ServerErrorIO a) -> ServerT Maybe (Service name anns methods) m handlers -> IO ()
- data Settings
- runGRpcAppTLS :: (KnownName name, KnownName (FindPackageName anns), GRpcMethodHandlers m methods handlers) => TLSSettings -> Settings -> (forall a. m a -> ServerErrorIO a) -> ServerT Maybe (Service name anns methods) m handlers -> IO ()
- data TLSSettings
- gRpcApp :: (KnownName name, KnownName (FindPackageName anns), GRpcMethodHandlers ServerErrorIO methods handlers) => ServerT Maybe (Service name anns methods) ServerErrorIO handlers -> Application
- raiseErrors :: MonadIO m => ServerErrorIO a -> m a
- liftServerConduit :: MonadIO m => ConduitT a b ServerErrorIO r -> ConduitT a b m r
Run a Server directly
runGRpcApp :: (KnownName name, KnownName (FindPackageName anns), GRpcMethodHandlers ServerErrorIO methods handlers) => Port -> ServerT Maybe (Service name anns methods) ServerErrorIO handlers -> IO () Source #
Run a Mu Server on the given port.
runGRpcAppTrans :: (KnownName name, KnownName (FindPackageName anns), GRpcMethodHandlers m methods handlers) => Port -> (forall a. m a -> ServerErrorIO a) -> ServerT Maybe (Service name anns methods) m handlers -> IO () Source #
Run a Mu Server on the given port.
runGRpcAppSettings :: (KnownName name, KnownName (FindPackageName anns), GRpcMethodHandlers m methods handlers) => Settings -> (forall a. m a -> ServerErrorIO a) -> ServerT Maybe (Service name anns methods) m handlers -> IO () Source #
Various Warp server settings. This is purposely kept as an abstract data
type so that new settings can be added without breaking backwards
compatibility. In order to create a Settings value, use defaultSettings
and the various 'set' functions to modify individual fields. For example:
setTimeout 20 defaultSettings
runGRpcAppTLS :: (KnownName name, KnownName (FindPackageName anns), GRpcMethodHandlers m methods handlers) => TLSSettings -> Settings -> (forall a. m a -> ServerErrorIO a) -> ServerT Maybe (Service name anns methods) m handlers -> IO () Source #
Run a Mu Server using the given TLSSettings and Settings.
Go to WarpTLS to declare TLSSettings
and to Warp to declare Settings.
data TLSSettings #
Settings for WarpTLS.
Convert a Server into a WAI application
gRpcApp :: (KnownName name, KnownName (FindPackageName anns), GRpcMethodHandlers ServerErrorIO methods handlers) => ServerT Maybe (Service name anns methods) ServerErrorIO handlers -> Application Source #
Turn a Mu Server into a WAI Application.
These Applications can be later combined using,
for example, wai-routes, or you can add middleware
from wai-extra, among others.
Raise errors as exceptions in IO
raiseErrors :: MonadIO m => ServerErrorIO a -> m a Source #
Raises errors from ServerErrorIO as exceptions
in a monad which supports IO.
This function is useful to interoperate with other
libraries which cannot handle the additional error
layer. In particular, with Conduit, as witnessed
by liftServerConduit.