Hello from Igor Clark

Hi Neo4J folks, I'm a London-based freelance tech consultant and programmer, and I run backend systems for an art listings site & app API running on Neo. Started working with Neo in Cypher around v2.0. Wish neo4j-shell wasn't getting deprecated - am I the only one who uses all the actual shell utils in it, like ls/cd/mkrel etc? :slight_smile:


Welcome Igor,

I mostly use neo4j-shell for testing with large stores directly on disk. But never warmed up to those "shell-like" commands :) neo4j-shell-utils that I wrote has mostly been superceded by apoc.
You could simulate those commands with procedures :) then you only have to add a call in front of it. But you can also keep a fork of neo4j-shell around. Basically it's a 5 line-wrapper around an embedded graphdb instance.

Thanks Michael! Yes I've found the apoc calls to replace GraphML import/export, and of course there's also neo4j-admin for dumps, so that's all fine. It's just I really do find it very useful to navigate and investigate the graph using ls [-a|-r|-p] and filters.

So keeping a neo4j-shell fork is a great idea, thanks. But when I go to GitHub - neo4j/cypher-shell: A command line shell where you can execute Cypher against an instance of Neo4j it just redirects to cypher-shell, do you know where the repo I should fork is, or is it just a case of forking Neo itself and building the stuff in neo4j/tree/3.4/community/shell/src/main/java/org/neo4j/shell? I tend to use binary Neo distributions so this would mean setting up all the maven etc that I've never had to get into...

Also does it not use the remote shell service on dbms.shell.[host]/[port]? Will that stay around?


Yes you'd have to keep that directory. And no the server side component will not be maintained.

Actually thinking about it, you'd be fastest if you just write a tiny client yourself in the language that you like that implements the same API just by calling cypher statements via the driver. Shouldn't be more than 20 lines or so.

Thanks Michael. Wow. I guess there really can't be many people using the non-cypher shell components if the whole thing is going to just disappear. :cry: Do you have any idea what time-frame we're talking about?

Also, if such big components are going to be removed, it seems worth checking - will the Cypher HTTP endpoint /db/data/cypher continue to be maintained? The current HTTP API docs don't seem to mention it. Seems like dropping that would effectively reduce the number of client languages to those with Bolt drivers, which would be a real problem for us, as all of our Lua code uses that endpoint and we have a fair bit of HTTP-based infrastructure around Neo.

No, we will maintain the/db/transactin/commit* endpoint for transactional cypher. the other one is not streaming.
Which is what all non-bolt drivers should use. Can you point us to the Lua driver you're using?

Those things to be removed have been deprecated for almost 2 years now :slight_smile:
Let's move this discussion to a separate topic, e.g. in #server

Sure, moving to #server, thanks!