Check out this new RemoteGraph business for 3.2.0... gremlin> graph = RemoteGraph.open('conf/remote-graph.properties') ==>remotegraph[DriverServerConnection-localhost/127.0.0.1:8182 [graph=graph]] gremlin> g = graph.traversal() ==>graphtraversalsource[remotegraph[DriverServerConnection-localhost/ 127.0.0.1:8182 [graph=graph]], standard] gremlin> g.V().valueMap(true) ==>[label:person, name:[marko], id:1, age:[29]] ==>[label:person, name:[vadas], id:2, age:[27]] ==>[label:software, name:[lop], id:3, lang:[java]] ==>[label:person, name:[josh], id:4, age:[32]] ==>[label:software, name:[ripple], id:5, lang:[java]] ==>[label:person, name:[peter], id:6, age:[35]]
So what's happening here? RemoteGraph is a lightweight proxy Graph implementation. Traversals generated from this Graph are automatically serialized and sent to a "remote" - in this case Gremlin Server - where it can be executed and results returned. With this model we say good-bye to doing long strings of gremlin embedded in our code and submitted through the driver and we can just write gremlin directly in the IDE. Some limitations you will encounter right out of the gate: * RemoteGraph is not a full Graph implementation. you use it to call graph.traversal() and that's about it * It does not support lambdas as they are not serializable, but you likely shouldn't be using lambdas anyway in your gremlin so hopefully that's not too big a problem. We have lots of room for improvement on this work, but this is a good functional beginning. Let the feedback begin. Enjoy! Stephen