Write clients for Meteor's DDP Protocol

The Deadpan-DDP project includes a debugging-tool, as well as a general purpose library.

DDP is the protocol that Meteor speaks between client and server.

The DDP tech-stack is: Websockets -> JSON -> EJson -> Collections -> Subscriptions + RPC.

In order to use the debugging tool, install this package and run deadpan for a usage statement.

In order to use the library, simply import Web.DDP.Deadpan.

The DSL monad is largely based around RPC calls and callbacks. In order to write an application you would call Web.DDP.Deadpan.runClient with

  • An initial application state (this includes initial callbacks)

  • A set of connection parameters

  • A Web.DDP.Deadpan.DSL.Deadpan application

There are several callback-sets provided in Web.DDP.Deadpan, however, if you want to pick in a more granular fashion, look inside Web.DDP.Deadpan.Callbacks.

The connection parameters are the triple (Domain, Port, Path)...

For convenience the function getURI is provided to turn a URI of the form websocket://localhost:3000/websocket into the triple (Right ("localhost", 3000, "websocket"))... or an error (Left "error message").

Refer to the README.md on Github for more information.