rpc-framework:在Haskell中远程方法调用框架
jopen
12年前
这是一个框架用于在Haskell中远程过程调用。
特性:
-
用法非常简单
-
调用一个远程方法是类型安全的Calling a remote procedure is type safe.
-
Modal logic inspired worlds, aka hosts:
- Services run from the World IO monad, written
Host w => WIO w
- This allows world specific actions: if one world will be compiled to JS and one to x86, we could have the following types
putStrLn :: IO_World w => WIO w a installTextBox :: JS_World w => WIO w ()
- Arbitrily complex remote procedures:
- Rather than only being able to call a remote function of one argument, we can call with any number of arguments
foo :: (Sendable a1 ,..., Sendable aN, Sendable b, Host w) => a1 -> ... -> aN -> WIO w b
- It can send pure functions across the wire and now garbage collect them.
instance (Serializable a) => Sendable a a instance (Sendable a' a, Sendable b b') => Sendable (a -> b) (a' -> IO b')
-
Only local code can execute
- unlike some modal logic aproaches to mobile languages, the only code that can be executed is the code you compiled, and not code passed from world to world
-
State can be serialized with references.
</ul>
- Services run from the World IO monad, written