Neo4j Driver For Go Releases


(Ali Ince) #1

This is the release announcement topic for our brand new official go driver.

You can find full instructions (in addition to go get github.com/neo4j/neo4j-go-driver/neo4j) on how to use the official go driver at https://github.com/neo4j/neo4j-go-driver.


(Ali Ince) #2

Neo4j Go Driver v1.7.0-beta01 has been released.


(Jeremy) #3

Do you have to have Seabolt ? no pure Go ?


(Matthew Browning) #4

Yes it is required to use seabolt. It's a pretty simple installation process. I believe they require seabolt so the driver is consistent across all languages that are supported.


(Ali Ince) #5

Neo4j Go Driver v1.7.0-beta02 is now released with Bolt V3 support.


(Mikhail) #7

without pure Go version it's not possible to use this driver in serverless env, like AWS Lambda for ex.


(M. David Allen) #8

That's good feedback and certainly true at the moment. A thing to keep in mind though is that on serverless, a lot of the cloud vendors are moving towards supporting Docker containers for running cloud functions. Google already does, so does Azure, and it's kind of expected that AWS Lambda will support Docker containers too though I don't know the timeline.

If you're one of the serverless providers, docker makes sense as a support endpoint because there are too many different runtimes to support (python, node, golang, etc. etc.) and supporting individual runtimes comes with those drawbacks like this that you identify.


(Lucas Wade) #9

Great. Any breaking changes?


(Ali Ince) #10

It doesn't introduce any breaking changes. You can always see a full list of changes at https://github.com/neo4j/neo4j-go-driver/wiki/1.7-changelog.


(Nigel Small) #11

On the seabolt requirement question...

As part of our long term plan to support as many languages, platforms and frameworks as possible with our official drivers, we're working towards a more modular architecture for our client-side libraries. Concretely, this means that drivers will be built on top of lower level libraries, called connectors.

Seabolt is one such connector, and has been built in C to ensure both great performance and broad compatibility. Connectors will in general encompass all protocol, type system and routing logic and will surface a "Connector API" on which drivers and other tooling can be built. Note that connectors are not intended for direct use by application software.

We do recognise that there are a small subset of platform configurations that might struggle to work with a C dependency library. This is obviously unfortunate for those in this position, but we do hope that the greater breadth of language support we can offer for the wider Neo4j community will offset these limitations. Over time, we may even be able to plug some of these gaps with pure language code, should we see a great enough need.

In terms of the extra steps required for the installation of a C dependency, we are also looking at ways to streamline this process. So watch this space!


(Ali Ince) #12

Neo4j Go Driver v1.7.0-beta03 is now released. For a list of changes, you can have a look at the change log by visiting https://github.com/neo4j/neo4j-go-driver/wiki/1.7-changelog#v170-beta03.


(Ali Ince) #13

Neo4j Go Driver v1.7.0-rc01 is now released. For a list of changes, you can have a look at the change log by visiting https://github.com/neo4j/neo4j-go-driver/wiki/1.7-changelog#v170-rc01.


(Ali Ince) #14

Go Driver v1.7.0-rc02 and Seabolt v1.7.0-rc02 are released last Friday, with experimental binary packages for seabolt available here. Please try them out and let us know any problems you run into.

For a list of changes, you can have a look at change logs -> https://github.com/neo4j/neo4j-go-driver/wiki/1.7-changelog#v170-rc02 and https://github.com/neo4j-drivers/seabolt/wiki/1.7-changelog#v170-rc02.


(Ali Ince) #15

Seabolt 1.7.0-rc03 and Go Driver 1.7.0-rc03 are now released. Seabolt now has a static library output which is a step towards statically linkable go-driver!

Changelogs are available at https://github.com/neo4j-drivers/seabolt/wiki/1.7-changelog#v170-rc03 and https://github.com/neo4j/neo4j-go-driver/wiki/1.7-changelog#v170-rc03 respectively.