scotty v0.10.0 Release Notes

    • The monad parameters to ScottyT have been decoupled, causing the type of the ScottyT constructor to change. As a result, ScottyT is no longer a MonadTrans instance, and the type signatures ofscottyT, scottyAppT, and scottyOptsT have been simplified. [ehamberg]

    • ๐Ÿ—„ socketDescription no longer uses the deprecated PortNum constructor. Instead, it uses the Show instance for PortNumber. This changes the bytes from host to network order, so the output of socketDescription could change. [ehamberg]

    • Alternative, MonadPlus instances for ActionT

    • scotty now depends on transformers-compat. As a result, ActionT now uses ExceptT, regardless of which version of transformers is used. As a result, several functions in Web.Scotty.Trans no longer require a ScottyError constraint, since ExceptT does not require an Error constraint (unlike ErrorT).

    • โž• Added support for OPTIONS routes via the options function [alvare]

    • โž• Add scottySocket and scottySocketT, exposing Warp Unix socket support [hakujin]

    • โœ… Parsable instance for lazy ByteString [tattsun]

    • โž• Added streaming uploads via the bodyReader function, which retrieves chunks of the request body. [edofic]

      • ActionEnv had a getBodyChunk field added (in Web.Scotty.Internal.Types)
      • RequestBodyState and BodyPartiallyStreamed added to Web.Scotty.Internal.Types
    • jsonData uses aeson's eitherDecode instead of just decode [k-bx]