iopipe v0.2.0 - safe update

aberba karabutaworld at gmail.com
Tue Jun 30 09:05:21 UTC 2020


On Monday, 29 June 2020 at 11:58:10 UTC, Steven Schveighoffer 
wrote:
> On 6/28/20 8:37 PM, aberba wrote:
>> On Sunday, 28 June 2020 at 20:26:43 UTC, JN wrote:
>>> What's iopipe and what does it do? How does it compare with 
>>> std.process?
>> 
>> I my line of words, its what you'd use to stream large files 
>> and do processing on it. Like CSV, video??, Json, and the 
>> like. Its high performance cus it optimized to haven great 
>> performance even for large files. Designed to let you chain 
>> the processing pipeline using reusable functions...and  you 
>> can compose one yourself.
>
> Yes, the emphasis is on being able to handle large sets of data 
> similarly to how you would handle an array, but not having to 
> load the whole thing into an array. It uses buffering to 
> present an array-like interface. The only difference between it 
> and arrays is you have to tell it how much data is important to 
> you at the moment.
>
> There is also a focus on composability -- I want you to be able 
> to build any type of harness to take what you have and turn it 
> into something you can feed into a parser/handler.
Thanks for the expansion. I could really use this for an article. 
Added to my to-do list.


>
> Take for example, jsoniopipe [1], which is a library that uses 
> iopipe to parse JSON. You can feed it any source -- a string, a 
> zipped file, a network socket, and all you have to do is 
> compose the pieces to get it to be a text iopipe (an iopipe 
> where the window type is a string type). Then the json library 
> will parse it and provide you with a stream of JSON data. 
> Because everything is available to the compiler, it can 
> optimize/inline across all the layers, and provide the best 
> performance possible (see my presentation at dconf 2017 [2] for 
> how this works out, also linked by Clarice).
Will looking into that library more.

> and all you have to do is compose the pieces to get it to be a 
> text iopipe (an iopipe where the window type is a string type).
No sure I understand this statement.

>
>> 
>> I'm curious myself how it differs from the NodeJs Stream API. 
>> Would you say iopipe is a Streaming API by definition?
>
> I'm not familiar with NodeJs in general so I can't comment on 
> that. I would say iopipe is focused on making streaming more 
> like dealing with arrays, with as high performance as possible. 
> One thing I've always disliked about most streaming libraries 
> is that they hide the buffer as an implementation detail, but 
> it should be the focus.
How well does iopipe work in a multi-threaded environment?

>
> -Steve
>
> [1] https://code.dlang.org/packages/jsoniopipe
> [2] https://www.youtube.com/watch?v=un-bZdyumog
I'll probably re-watch it before writing the article.




More information about the Digitalmars-d-announce mailing list