node-neo4j
node-neo4j copied to clipboard
Add EventEmitter/streaming support in the API
The new neo4j streaming support provides some performance enhancements. However, clients of the node-neo4j API still have to wait for the entire result set to be collected, possibly converted to Node or Relationship objects, and then finally returned.
With neo4j streaming, a streaming JSON API such as Clarinet (https://github.com/dscape/clarinet), and an EventEmitter-based implementation, node-neo4j could return each result in a result set as it is received in something like a stream.on('result', obj) API.
This would obviously be a big win especially for large result sets.
Great request. This would require some re-thinking at both the architectural and API levels. I've been thinking of starting a wiki page for v0.3 planning -- I'd like to rethink a lot of the API. Let's consider how this could fit in for that.
Any news on that? This is a pretty neat feature I'd love to see in node-neo4j which would also make it the most promising lib for node and neo4j.
Good news — getting tackled in the currently ongoing v2 redesign!
Issue: #143 / PR: #145 WIP docs: https://github.com/thingdom/node-neo4j/blob/v2/API_v2.md
Update here: v2 won't have this 100% for now, but (a) it's now at least possible (you just have to wire things up manually, but I'll document how), and (b) an end-to-end impl. is still planned.