Jumping in. If you only need a graph data structure, TinkerGraph-js could certainly help. IIRC, the TinkerGraph Java code is quite simple and the JavaScript port doesn't have to change much over time, so it's easy to keep track of the changes. A graph is basically an object with an array of vertices and an array of edges, where each vertex holds two arrays referencing in-going and out-going edges. Add properties on both and you're set.
However, the real maintenance nightmare is https://github.com/jbmusso/gremlin-core-js: I managed to have about a dozen steps working while TP3 was still under heavy development (I think back around oct. 2014). This would have to be written from scratch in a more JavaScript idiomatic way, or be automatically compiled. So, if you also need process (JavaScript traversal), that'd be way trickier :). I also managed to have it work somehow with sigma.js. https://github.com/jbmusso/gremlin-sigma I was thinking about rewriting tinkergraph-js from scratch with ES2015/2016 code. I'll be happy to discuss this. We could also support Immutable.js (or multiple/pluggable backends, Titan-style). I'm pretty sure a good JavaScript graph structure will be needed soon considering the recent giant-leaps in front-end web development, ie. centralized states (tree-ish structures) and immutability. I'm thinking about Flux, Redux, Immutable.js, Relay, GraphQL, Falcor, etc. Have Gremlin Server only stream the diffs and, woa ! Cheers, JB. On Wednesday, 16 March 2016, Fred Eisele <fredrick.eis...@gmail.com> wrote: > > Somehow I think it would be simpler to extend gremlin-server's > > functionality with a DDP plugin. > > I'm not sure what the extent of the work required for this would > > be but I would expect it to be less work than a port, and at > > least it would give access to all the features with much less > maintenance. > > Have you considered this and reject it for some reason? > > Yes, I have considered it and that is a big part of what I have planned. > This project https://github.com/coreyauger/reactive-gremlin looks very > similar to parts of DDP. > What I am really asking about is the client-side-cache contribution to DDP. > http://info.meteor.com/blog/introducing-ddp > > > On Tue, Mar 15, 2016 at 10:40 AM, Stephen Mallette <spmalle...@gmail.com > <javascript:;>> > wrote: > > > Hi, Fred, thanks for sharing your project. I don't know much about DDP, > so > > I can't comment much on that. Can you clarify what you mean by "Port the > > in-memory version to javascript using the google closure compiler." Do > you > > mean port TinkerGraph to javascript? > > Yes (that might be what I mean) > Hmm, maybe this? > https://github.com/jbmusso/tinkergraph-js > The idea is that the client-side-cache is a "miniGremlin" containing a > subgraph of the server-side-graph-database. > This allows for better performance in low-bandwidth conditions, > and leaves the door open for limited off-line work. > > > > > On Tue, Mar 15, 2016 at 10:13 AM, Fred Eisele <fredrick.eis...@gmail.com > <javascript:;>> > > wrote: > > > > > I am beginning an investigation into making a Distributed Data Protocol > > > version of Tinkerpop3. > > > https://www.meteor.com/ddp > > > > > > I have been using Tinkerpop3 for a while now but not as a developer. > > > Here is my plan. > > > * Port the in-memory version to javascript using the google closure > > > compiler. > > > * Build a DDP mechanism based on the tinkerpop3 API > > > * Integrate into AppShare https://github.com/zubairq/AppShare > > > > > > Questions: > > > * Is there some compelling reason why this is a bad idea? > > > * What portion of the code base is relevant? > > > * Has this been tried before? > > > * Is there a synchronization already present? > > > > > > Thanks > > > > > > -- Jean-Baptiste