I was wondering when some of these types of libs might make their way into the world, I know I saw in Nicholas Zakas' book "High Performance JavaScript"[1] that he demonstrated how to read back (process) a large AJAX result in chunks, allowing you to begin working with the response before it was finished downloading. It was called "multipart XHR", and he shows a neat code example and then links to a site that has sample code[2].
The main difference between multipart XHR and Oboe, that I can see, is that MHXR requires you to format your data in a specific manner (using a magic delimiting character), though I'm curious if the base method is similar or not.
I haven't looked at MXHR but here's roughly what Oboe does:
1 Create XHR, listen to XHR2 progress event.
2 Use Clarinet.js SAX parser, scoop up all events.
3 From SAX events, build up actual JSON and maintain path from root to actual node.
4 Match that path (+ some other stuff) against registered JSONPath specs.
5 Fire callbacks if they pass.
Interesting. After looking at the MXHR more, it appears as though it was adapted from Digg.com[1] (aka DUI.Stream[2]), and then later adapted by Facebook[3].
Yours sounds more elegant in that it can handle JSON naturally, but I wonder if the other might be better suited for binary content (not sure in which context that would make sense, if any).
Either way, I find them all fascinating, and I've starred your project :) Will keep an eye on it.
I suppose you could make a binary equivalent if you needed to. You'd need to make some kind of binary matching language, maybe like Erlang's binary matching.
Adding XML/XPATH support would be a natural extension.
The main difference between multipart XHR and Oboe, that I can see, is that MHXR requires you to format your data in a specific manner (using a magic delimiting character), though I'm curious if the base method is similar or not.
1. http://shop.oreilly.com/product/9780596802806.do
2. http://techfoolery.com/mxhr/