Concept: Filters

Related threads:


I'm curious about this distinction... why wouldn't a filter that takes in UTF-8 and produces a block of transcoded data be covered here? What's the missing capability?

The umbrella term I tend to myself use above "Filter"/"Codecs"/"Ports" is "Streaming". This is because of the use of the term in C++ and in Haskell in the cases I find interesting. But even in Haskell it branches off into different models, such as Conduit, Pipes and Machines

I'm glad you're putting down some concrete examples and experimenting with them. Because if one stays fully general it gets hard to know what the limits are that would inform a useful design.

Maybe we could get examples worked up and see some contrast with how those would be done e.g. in C++ (with Boost.Asio) or in Conduit/Pipes/Machines/Streams of Haskell? I feel that really helped with UPARSE to drive the design from ideas that had already been worked out.

1 Like