melf
v2.2.13
Published
(A)Synchronous remote procedure calls
Maintainers
Readme
Melf
npm module to perform (a)synchronous remote procedure calls for JavaScript processes. Synchronous remote procedure calls can be interleaved (only) by locally declared remote procedures without deadlocks.
Client API
require("melf")(address, alias, callback)
address :: string | object | melf.Receptoralias :: stringcallback(error, melf)error :: Error | nullmelf :: melf.Melf
output = melf.rpcall(recipient, rpname, input)
recipient :: stringrpname :: stringinput :: JSONoutput :: JSON
melf.rpcall(recipient, rpname, input, (error, output) => {...})
recipient :: stringrpname :: stringinput :: JSONerror :: Error | nulloutput :: JSON
melf.rprocedures[rpname] = (origin, input, callback) => {...}
rpname :: stringorigin :: stringinput :: JSONcallback(error, output)error :: Error | nulloutput :: JSON
melf.destroy()
melf.terminate()
melf.onterminate = () => { ... }
Server API
distributor = require("melf/distributor")(logger)
logger(origin, recipient, meteor) | undefined | booleanorigin :: stringrecipient :: stringmeteor :: string
distributor :: melf.Distributor
listener = orchestrator.ConnectionListener()
listener(net.Socket)
middleware = distributor.RequestMiddleware(splitter)
splitter :: string | undefinedhandled = middleware(request, response, next)request :: http.Requestresponse :: http.Responsenext()handled :: boolean
middleware = distributor.UpgradeMiddleware(splitter)
splitter :: string | undefinedhandled = middleware(request, socket, head, next)request :: http.Requestsocket :: net.Sockethead :: Buffernext()handled :: boolean
