Gremlin IDE

1,287 views
Skip to first unread message

David Bechberger

unread,
Aug 23, 2018, 9:47:59 AM8/23/18
to Gremlin-users
Hello,

I recently decided to learn React and Electron and being a graph database person I decided to build an IDE for Gremlin that to run traversals and visualize the results.  You can take a look at it here:


It is still rudimentary, only works on GraphSON v2 responses, and has been tested against Tinkergraph and CosmosDB.  

Please take a look and let me know what you think, like/dislike, or would want to see it do.

Regards,
Dave

Ray Scott

unread,
Aug 24, 2018, 7:18:14 AM8/24/18
to Gremlin-users
Hi Dave!

That looks awesome! We were discussing this a while back. Have you seen this post?...

https://groups.google.com/forum/m/?utm_medium=email&utm_source=footer#!starred/gremlin-users/gbnlw0rXWUM

I was day dreaming about using the Monaco Editor https://microsoft.github.io/monaco-editor/ (the Electron editor VS Code is built on top of) as a starting point for a Gremlin IDE.

Somewhere on my Mac I have a list of the underlying technologies that Neo are using to build their graph browser.

https://neo4j.com/graph-visualization-neo4j/

I can dig that out for you if you’re curious. I haven’t had a close look at the chart library you’ve chosen. Would it be able to support right clicking on elements to inspect properties? The ability to have sticky vertexes? The potential for expanding on current competing (graph DB) browser’s features is huge I think. There at a lot of small UX improvements to be made from looking at the Neo Browser. Better use of screen real estate. Their full screen mode wasn’t great if I recall, and it was either the default layout or that, but nothing in between.

This work you’ve done is really exciting! :-)



David Bechberger

unread,
Aug 24, 2018, 1:16:06 PM8/24/18
to gremli...@googlegroups.com
Hello Ray,

I had not actually seen that post but it is certainly very relevant.

I had not seen Monaco but I will look into it as it looks like it has some interesting aspects, might be a bit heavy though.

Yeah I have looked and used the Neo4j tools and I believe that they are using D3 for the visualizations.

In the current implementation I am using http://visjs.org/.  Right now I have it populating a sidebar with the node/edge properties when you click on one in the chart but it would likely be able to support that via a right click.

What do you mean by "sticky vertexes"?

Yeah there is a ton of additional features that I would love to add to this as well.  All the ones I have seen out there so far have some good features to copy and some bad points to avaid.

I am glad you like what I have done so far.





--
You received this message because you are subscribed to a topic in the Google Groups "Gremlin-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gremlin-users/TlCmZkDbb5I/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gremlin-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/b2947446-91e5-439f-9d2c-b504c0e1ad64%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ray Scott

unread,
Aug 24, 2018, 3:55:34 PM8/24/18
to Gremlin-users
Hi Dave,

Sorry I should have explained more. Sticky vertexes. I’ve seen some graph visualisation libraries where if you drag a vertex to a position and let go of it, it just bounces back to roughly where it was before. I haven’t run your app yet though, so not sure if this is how yours behaves. Might give it a whirl on Monday. Neo seem to have what I like, which I think is more useful, if you drag a graph element to a new position, it sticks to that position until you move it again. Does yours do this?

Ray

David Bechberger

unread,
Aug 24, 2018, 4:23:51 PM8/24/18
to gremli...@googlegroups.com
Ray,

Thanks for the clarification, I believe that it does but if not then it certainly could be implemented.  At this point it is also still early on so changing out visualization libraries would be pretty easy.  I'd love to get a list of what features you'd like to see it have.

Dave

--
You received this message because you are subscribed to a topic in the Google Groups "Gremlin-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gremlin-users/TlCmZkDbb5I/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gremlin-users+unsubscribe@googlegroups.com.

Ray Scott

unread,
Aug 25, 2018, 6:16:59 AM8/25/18
to Gremlin-users
Dave,

The main pain point/s for me driving this idea is how unproductive it can be using the Gremlin console compared to IDEs like Xcode or VS Code. The principle reason why I’m so keen on using the Monaco editor is that Gremlin code is Groovy code, so the code editor would best be a Groovy code editor. Come to think of it, you might get more mileage developing a plugin for VS Code. Just just thinking in terms of what you may get for free that way, but if you’re super keen to solve these issues yourself then by all means go for it. 😁

The first thing I wanted was “Intellisense” for the (Groovy) Code I’m writing for my Gremlin queries. It’s a pain as a newbie, constantly having to dig through the reference docs. Massive time waster when trying to get up to speed.

https://code.visualstudio.com/docs/editor/intellisense

I don’t know if a plugin for VS Code is the best way forward but at least a list of features you’d get using Monaco as a starting point are listed here...
https://code.visualstudio.com/docs/editor/editingevolved

I want to be able to have multiple Gremlin script files open at once. I start the IDE and I’m back where I left off last time. I want to be able to look through all of my work with quick context switches that don’t require having to close one file in order to view another. I’m also inspired by SQL editors that allow you to run (play button in a toolbar) an entire script or just a single statement at a time (from a play button in the margin or gutter). Just these features mentioned above, for me, are a massive step forward in terms of productivity and learning when using Gremlin.

I don’t know which IDEs/editors you’re overly familiar with, but I think it’s really cool that I can manage Docker VMs and database connections from within VS Code. That would also be a killer feature to have, to be able to manage and switch between different Gremlin servers quickly (localhost, testing, staging, production). Plus a quick Test button to make sure the Gremlin Server connection is up.

I know these aren’t small features but I do think they are the most important issues worth solving when developing an IDE. Were you perhaps looking for smaller features to start with?

David Bechberger

unread,
Aug 25, 2018, 11:25:40 AM8/25/18
to gremli...@googlegroups.com
Ray,

I actually thought about going down the plugin route for either VSCode or Intellj.  The Intellij route seemed like a real pain and I was not sure how many developers are using VSCode on a regular basis for non-.NET coding.  What are your thoughts on this?

I have added your requests to the Issues in the repo and will take a look at them as I think they are all great suggestions.

I have spent a lot of time in VS, VSCode and Intellj suite so I am pretty familiar with the features you are talking about.  One other option I had considered was to take inspiration from SQL Operations Studio which is an electron app based on VSCode to do SQL queries:  https://github.com/Microsoft/sqlopsstudio

Any thoughts on which approach you would like best would be appreciated.



--
You received this message because you are subscribed to a topic in the Google Groups "Gremlin-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gremlin-users/TlCmZkDbb5I/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gremlin-users+unsubscribe@googlegroups.com.

Russell Jurney

unread,
Aug 25, 2018, 4:19:13 PM8/25/18
to gremli...@googlegroups.com
I see many developers using VS Code outside .net, and it has become one of the largest github projects in terms of community following and network centrality measures. It is emerging as the most popular IDE, and I would love it if I could get groovy/gremlin code completion plus visualization.

To unsubscribe from this group and all its topics, send an email to gremlin-user...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/CA%2BTXmsTYtFQLVjNMNKERfNxyXZcKZd4K%2BPkAzwu4PJpw_yO%2BhQ%40mail.gmail.com.

For more options, visit https://groups.google.com/d/optout.
--

Ray Scott

unread,
Aug 28, 2018, 5:38:34 AM8/28/18
to Gremlin-users
Hi Dave,

Thanks for sharing SQL Operations Studio. I haven’t seen that before. VS Code is definitely one of the most popular editors out there. It’s available on every platform and it’s plugin architecture is part of its success. I think it’s the best free code editor out there and I use it on macOS and Linux. I’m not sure what your long term intentions are with developing this IDE. If you want to turn it into a (monetised) product I would probably avoid the plugin route, but you know developers live off of open source and freeware. Something else to consider is if Microsoft abandon VS Code developers might switch to a newer editor rendering your work unattractive but it’s difficult to see this happening anytime soon. You might have to keep the plugin compatible with the most recent VS Code release too.

So SQL Operations Studio is a stand alone app, because it looks like VS Code? Ah I see they are using Monaco and other VS Code extensions. It would be totally awesome if you could develop something stand-alone on a par with SQL Operations Studio. If you could make use of open source VS Code components to build a stand-alone IDE I would absolutely do that. Has that been your intention? To use open source to build something similar to SQL Operations Studio?

Dave Bechberger

unread,
Aug 28, 2018, 11:01:13 AM8/28/18
to gremli...@googlegroups.com
My intention has really been to build a useful tool that is FOSS for minimizing new (and old) developer friction with using graph databases.

Tooling is one area that I see a lot of struggle when beginning to use any graph DB product ( sorry Gremlin console lovers 😀). My intention is to provide a non vendor specific tool to help with that. I think that I am leaning towards something independent like SQL ops studio over a plugin but could easily be convinced in either direction.

Dave Bechberger
> --
> You received this message because you are subscribed to a topic in the Google Groups "Gremlin-users" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/topic/gremlin-users/TlCmZkDbb5I/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to gremlin-user...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/0e0789e0-de3a-4bf5-96ce-dc0de9038b29%40googlegroups.com.

Ray Scott

unread,
Aug 29, 2018, 4:37:30 AM8/29/18
to Gremlin-users
Well which ever route you choose, I’m certain your efforts will very appreciated by the Gremlin Community. Given that you could use existing open source code to avoid reinventing the wheel for common IDE features I’d be more inclined to go the non-plugin route. Another useful feature I thought of would be a transaction log.

Ray Scott

unread,
Aug 31, 2018, 12:35:27 PM8/31/18
to Gremlin-users
Dave, 

I downloaded the macOS dmg and fired it up, but I'm not running CosmosDB so it wasn't loving my JanusGraph classes, which is fine, I know it's early days. Is it possible to move the window around yet? It does have the traffic lights top left of the window but if I attempt to drag the window around it doesn't recognise the title/top/toolbar as being draggable. 

Thanks for sharing your early work, it's exciting! 

Ray

Dave Bechberger

unread,
Aug 31, 2018, 12:50:19 PM8/31/18
to gremli...@googlegroups.com
You should be able to move it around by grabbing the top where the bar should be. One of the features of electron is being able to hide that bar (Slack does this) which is what I turned on. I have tested this on my machine and it worked (insert standard programmer joke here) so I would be interested to know if it still doesn’t work for you. 

I only tested it on Cosmos and Tinkergraph but I would expect that if you have Janusgraph returning GraphSON v2 it would probably also work. Can you put the error message and some details about your setup (Janusgraph version etc) in a bug on that repo so I can take a look. Thanks. 

Thanks for trying it out. It definitely is still very early on but I appreciate the feedback as I would love to build a tool that people want to use. 

Dave Bechberger

Message has been deleted

Ray Scott

unread,
Sep 3, 2018, 6:49:17 AM9/3/18
to Gremlin-users

Dave, 

It was just my rusty skills that have a bug, not your Gremlin-IDE code, regarding JanusGraph classes, so I won't file a bug on GitHub. I've attached a screenshot of what happens when I try to grab the title/toolbar to move the window. It marks that area as a selection. The mouse pointer was above the word Gremlin when I did this for the screenshot.

gremlin-ide-moving.png

-blesstec

unread,
Sep 8, 2018, 2:44:11 AM9/8/18
to gremli...@googlegroups.com
Hi Dave,
Thanks for your efforts.
Is it possible to use this build / use this IDE in Windows OS? I've downloaded and been through the steps; but don't see any executable / steps to use it for Windows.

Many thanks?
-blesstec


--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/8e167eb0-dcc6-4d37-918e-0411fe1cdf9f%40googlegroups.com.

David Bechberger

unread,
Sep 8, 2018, 9:19:38 AM9/8/18
to gremli...@googlegroups.com
This was built as an Electron app so there should not be any problem with running it in Windows.  I have not yet built a windows package for it yet though as building Windows releases for Electron apps can be a bit tricky.  This is on my plan to figure out but I have not gotten to it yet.

In the meantime if you want to try it out and have npm installed you can run it using "npm run dev" in the directory.  

Dave

On Sat, Sep 8, 2018 at 1:44 AM, -blesstec <bles...@gmail.com> wrote:
Hi Dave,
Thanks for your efforts.
Is it possible to use this build / use this IDE in Windows OS? I've downloaded and been through the steps; but don't see any executable / steps to use it for Windows.

Many thanks?
-blesstec


On Thu, Aug 23, 2018 at 8:47 AM David Bechberger <da...@bechberger.com> wrote:
Hello,

I recently decided to learn React and Electron and being a graph database person I decided to build an IDE for Gremlin that to run traversals and visualize the results.  You can take a look at it here:


It is still rudimentary, only works on GraphSON v2 responses, and has been tested against Tinkergraph and CosmosDB.  

Please take a look and let me know what you think, like/dislike, or would want to see it do.

Regards,
Dave

--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-users+unsubscribe@googlegroups.com.

--
You received this message because you are subscribed to a topic in the Google Groups "Gremlin-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/gremlin-users/TlCmZkDbb5I/unsubscribe.
To unsubscribe from this group and all its topics, send an email to gremlin-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/CABUUsnOYapC1fXJ_vTqx%3DCcWkVnnKnOEdgcHfr4O9zrda8kEMA%40mail.gmail.com.

David Bechberger

unread,
Oct 10, 2018, 9:12:08 PM10/10/18
to Gremlin-users
Hello,

A new version of the Gremlin IDE has been released, you can find it here: https://github.com/bechbd/gremlin-ide/releases/tag/v0.2.0

This release includes the following changes:
  • Replaces the query box with a Monaco editor although it does not yet have gremlin intellisense though as I need to figure out how to write that language file
  • Fixes the issue with not being able to grab and drag by the toolbar
  • Fixes several styling issues
Thanks very much to Ray Scott and others for the feedback and feature suggestions.

Regards,
Dave

Message has been deleted

Ray Scott

unread,
Oct 11, 2018, 6:44:17 AM10/11/18
to Gremlin-users
Looking great Dave! 

I can move the window around now, and the Monaco editor looks promising, with the bracket matching already functional. :-)

If you're looking for a more conventional name for the Selection Details panel, it's most often referred to as an Inspector. If you google for "Inspector panel" you'll see how prevalent it is. But a minor detail, I just thought I'd mention.

Great work Dave, really! :-) 

Stephen Mallette

unread,
Oct 11, 2018, 7:54:35 AM10/11/18
to gremli...@googlegroups.com
Thanks for announcing this Dave. I've suggested on the dev list that we add Gremlin IDE to the Powered By section of the provider index on the TinkerPop home page:


--
You received this message because you are subscribed to the Google Groups "Gremlin-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gremlin-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gremlin-users/e15a4edd-675b-4a40-a684-28352e443613%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages