In addition to the Neo4j REST server, you can also connect to Neo4j through Rexster (<a href="http://neo4j-user-list.438527.n3.nabble.com/Neo-Rexster-being-ready-to-test-td792156.html" rel="nofollow">http://neo4j-user-list.438527.n3.nabble.com/Neo-Rexster-bein...</a>), an open-source REST server optimized for recommendations and paging (binary bindings are also in the works).<p>Rexster is part of the TinkerPop stack (<a href="http://www.tinkerpop.com/" rel="nofollow">http://www.tinkerpop.com/</a>). TinkerPop is a developer group founded by Marko Rodriguez and Peter Neubauer, and Peter is also a founder and the COO of Neo4j.<p>Here's the basic Rexster API (<a href="https://github.com/tinkerpop/rexster/wiki/Basic-REST-API" rel="nofollow">https://github.com/tinkerpop/rexster/wiki/Basic-REST-API</a>). In addition, Rexster has tight integration with Gremlin (<a href="https://github.com/tinkerpop/gremlin/wiki" rel="nofollow">https://github.com/tinkerpop/gremlin/wiki</a>), the graph query language, which also came out of the TinkerPop group.<p>Gremlin makes traversals easy and allows you to do stuff like calculate PageRank in 2 lines. Here's a short screencast that will give you a flavor for what you can do with Gremlin (<a href="http://www.youtube.com/watch?v=5wpTtEBK4-E_" rel="nofollow">http://www.youtube.com/watch?v=5wpTtEBK4-E_</a>).<p>There is a Python persistence framework in the works called Bulbs that connects to Neo4j through Rexster, and there is also a Web toolkit called Bulbflow (<a href="http://bulbflow.com" rel="nofollow">http://bulbflow.com</a>) that is based on Bulbs and Flask. Both are due to be released next week.<p>If you are interested in the emerging graph landscape, I encourage you to join the discussions going on in the Gremlin User group (<a href="https://groups.google.com/forum/#!forum/gremlin-users" rel="nofollow">https://groups.google.com/forum/#!forum/gremlin-users</a>) -- it's not just for Gremlin stuff (anything graph-related goes).
A Neo4j REST API seems strange to me. I could see, as it evolves, it being pretty useful for some use cases. Especially with these maturing graph query languages.<p>However, it just seems counter productive in light of the many lost benefits of the embedded approach. I quite like the software transactional domain objects wrapped around nodes and relationships.<p>I think it would make more sense to develop a distinct distributed graph database, rather than force Neo4j to support both embedded and server use cases.