Personally I just use small JSON records delimited by newlines in my 'streaming' applications. Best of both worlds IMO.<span></span><br><br>On Monday, 3 August 2015, Brendan Eich <<a href="mailto:brendan@mozilla.org">brendan@mozilla.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Exactly! Incremental and async, i.e., streaming.<br>
<br>
XML quickly needed such APIs (<a href="https://en.wikipedia.org/wiki/Simple_API_for_XML" target="_blank">https://en.wikipedia.org/wiki/Simple_API_for_XML</a>, <a href="https://en.wikipedia.org/wiki/StAX" target="_blank">https://en.wikipedia.org/wiki/StAX</a>). JSON's in the same boat.<br>
<br>
/be<br>
<br>
Bruno Jouhier wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
A common use case is large JSON feeds: header + lots of entries + trailer<br>
<br>
When processing such feeds, you should not bring the whole JSON in memory all at once. Instead you should process the feed incrementally.<br>
<br>
So, IMO, an alternate API should not be just asynchronous, it should also be incremental.<br>
<br>
FWIW, I have implemented an incremental/evented parser for V8 with a simple API. This parser is incremental but not async (because V8 imposes that materialization happen in the main JS thread). But, if the V8 restriction could be lifted, it could be made async with the same API. See <a href="https://github.com/bjouhier/i-json" target="_blank">https://github.com/bjouhier/i-json</a><br>
<br>
i-json's API is a simple low level API. A more sophisticated solution would be a duplex stream.<br>
<br>
There was also a long discussion on this topic on node's GitHub: <a href="https://github.com/joyent/node/issues/7543" target="_blank">https://github.com/joyent/node/issues/7543</a><br>
<br>
Bruno<br>
_______________________________________________<br>
es-discuss mailing list<br>
<a>es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote>
_______________________________________________<br>
es-discuss mailing list<br>
<a>es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote>