Web Programming and Streaming Data in Haskell - Part 2 of 2
summary
Conduit claims practical streaming but is coroutine based so Conduit is single-threaded and requires explicit concurrency — use async + STM for concurrent read/write; chunking matters (process ByteString chunks, not byte-by-byte) for big data; leftovers exist so a naive takeWhileC drops the boundary value (one through five then seven through ten) and using leftover preserves that value; Yesod scaffolds type-safe routes, session-in-cookie defaults, selectRep and streaming responses, file uploads hook into Conduit and Warp runs the app.
AI-written summary · about
chapters (43)
- 0:00Intro
- 0:51AVERAGE GOOD
- 2:57TAKEAWAYS
- 8:57MONADIC FOLDS
- 9:21CHUNKED DATA
- 11:12MUCH BETTER
- 13:59LET'S IMPLEMENT TAKEWHILEC
- 15:10LET'S FIX THAT
- 15:51MORE LEFTOVERS EXAMPLES
- 19:29OUTPUT FROM PREVIOUS SLIDES
- 21:29LEFTOVER LESSONS
- 21:49LIBRARY ECOSYSTEM
- 22:23MY RECOMMENDATION
- 22:44STRETCH
- 25:36HOW IT WORKS
- 28:27FLEXIBILITY
- 29:17STANDARD WORKFLOW
- 30:11WHAT WE'LL COVER TODAY
- 30:39COMMON STUFF
- 31:00LANGUAGE EXTENSIONS
- 31:56IMPORTS
- 32:42ROUTE DEFINITION AND
- 33:35ROUTE EXAMPLE
- 35:45YESOD TYPECLASS
- 36:41DEFINING YOUR HANDLERS
- 38:05RUN IT!
- 38:49HELLO WORLD
- 39:40JSON OUTPUT
- 40:14WHY NOT BOTH?
- 43:20ARBITRARY MIME TYPES
- 44:20ROUTE PARAMETERS
- 46:32QUERY STRING PARAMETERS
- 48:27POST PARAMETERS
- 49:26POST FILES
- 51:29JSON REQUEST BODY
- 52:37HEADER ECHO
- 53:11PERMISSIONS
- 55:21SESSION VALUES
- 56:12REAL WORLD AUTH
- 56:25STREAMING REQUEST BODY
- 56:47STREAMING RESPONSE BODY
- 57:47CONVENIENT STREAMING
- 58:01CONFIG FILES (1)
related talks
48mStreamly: Declarative Concurrency And Dataflow Programming In Haskell
47mYour First Haskell Web App With WAI And Warp
01h 04mHaskell - A Peek Inside the Ivory Tower
01h 15mHaskell Adventures in IO
46mPainless software development with Haskell
40mContinuations on the Web and in your OS
49mConcurrency and Streaming in the Age of Loom
18mA better way of doing Async Rust
