neo4j-php / neo4j-php-client

Php client and driver for neo4j database
https://neo4j.com/developer/php/
MIT License
159 stars 40 forks source link

Bolt v4.0 support for AWS Neptune #177

Open KorvinSzanto opened 1 year ago

KorvinSzanto commented 1 year ago

Is your feature request related to a problem? Please describe. Neptune supports only up to bolt 4.0.0

Describe the solution you'd like It'd be nice if this library supported connecting to bolt v4.0. From what I can tell it's currently limited to 4.4.x and 5.0

Describe alternatives you've considered The best alternative I have if I'd like to continue using bolt is to use https://github.com/neo4j-php/Bolt directly which does work.

transistive commented 1 year ago

Hello @KorvinSzanto,

Thank you for bringing this to my attention.

Bolt 4 should indeed still work with the bolt library, or you can use this driver version 2.8.

I'll run this up the chain of command and see if we can do something about this.

Let me circle back to you once I have a response.

Kind regards,

Ghlen

KorvinSzanto commented 1 year ago

Using 2.8 isn't an option for a couple reasons:

  1. 2.8 uses a version of the bolt library that doesn't support neptune https://github.com/neo4j-php/neo4j-php-client/issues/153#issuecomment-1324069877
  2. ~2.8 only supports protocol v3: https://github.com/neo4j-php/neo4j-php-client/blob/2.8.3/src/Bolt/ProtocolFactory.php#L40-L42~ Looks like v3 does work: https://gist.github.com/KorvinSzanto/045118c19d8242d9a163de64e5e05c8e
stefanak-michal commented 1 year ago

I see the client has requesting only 5 and 4.4 bolt version https://github.com/neo4j-php/neo4j-php-client/blob/main/src/Bolt/ProtocolFactory.php#L31

Client is meant to support only active versions? https://neo4j.com/developer/kb/neo4j-supported-versions/

I understand it can be difficult to implement all changes by each bolt version and maintain the client to look from outside as it doesn't matter.

stefanak-michal commented 1 month ago

I think this issue can be closed. This driver is primary for Neo4j. If there is a need to connect to Amazon Neptune you should use https://github.com/neo4j-php/Bolt library. It supports all versions of bolt protocol.