haskell-servant / haskell-servant/servant

Post-841: Split Stream

Open
#995 10 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Haskell
Stars
2k
Forks
427
Avg merge
2d 23h
Merged PRs (30d)
5

Description

Currently we have `Verb` and `Stream`. After #841 refactor we'll have `Result` and `Stream`. So far so good.

Yet when considering the implementation of #841, and also serfvant-docs problem in #989 I think we need to do following:

*Split `Stream` into `FramedResults` and `StreamedResult` (aka `NoFraming`).*

Note the singular vs. plural. `StreamedResult` is still single result, the implementation of server and clients is streaming because the thing might be huge. `FramedResults` is plural: many (probably small) results in streaming fashion.

For `StreamedResult` we'll need a new pair of type-classes: `MimeStream` / `MimeUnstream` (compare to `MimeRender` / `MimeUnrender` and `ToStreamGenerator` / `FromResultStream`).

ping @gbaz, @jvanbruegge, @alpmestan, @jkarni

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.