Typed session snaplets and continuation-based programming for the Snap web framework.
This package provides two Snaplets implementing typed sessions in the Snap web framework, as either memory-backed arbitrary types, or as client-side cookie-backed serializable types. Unlike the standard session snaplet, sessions can be of an arbitrary type appropriate to the application. Client-side session data is encrypted for security, and sessions have a configurable timeout (optional for the client-side back end).
In addition, a library is provided for a continuation-based programming model called Snap Dialogues. Dialogues allow natural specification of stateful interactions with the client that span multiple requests. Because the session type is not serializable, this requires the memory-backed session implementation.