-
-
Notifications
You must be signed in to change notification settings - Fork 10
New bolt version 6 #169
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New bolt version 6 #169
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements Bolt protocol version 6, adding support for a new Vector structure type as per the Neo4j Bolt v6 specification.
Key Changes:
- Introduced the
Vectorstructure for encoding/decoding typed numerical arrays - Added protocol V6 support with version detection for Neo4j 2025.10+
- Refactored packstream handling to use native PHP pack format codes
Reviewed Changes
Copilot reviewed 16 out of 18 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/protocol/V6.php | New V6 protocol class that extends AProtocol with v6-specific traits |
| src/protocol/v6/structures/Vector.php | Implements Vector structure with encode/decode for typed numerical arrays |
| src/protocol/v6/AvailableStructures.php | Defines available structures for v6 protocol including Vector |
| tests/structures/V6/StructuresTest.php | Test suite for Vector structure operations and validation |
| tests/protocol/V6Test.php | Basic protocol instantiation test for V6 |
| tests/TestLayer.php | Updated version detection to support Neo4j 2025.10+ for v6 |
| src/Bolt.php | Added v6 to default protocol versions |
| src/packstream/v1/Packer.php | Refactored float packing and structure packing logic |
| src/packstream/v1/Unpacker.php | Updated float unpacking and renamed unpackStruct method |
| tests/structures/v1/StructuresTest.php | Added Bytes structure test |
| tests/structures/v5/StructuresTest.php | Removed duplicate trait declarations |
| src/protocol/v3/HelloMessage.php | Simplified parameter documentation |
| src/protocol/v4_1/HelloMessage.php | Simplified parameter documentation |
| README.md | Updated supported Bolt version and documentation |
| .github/workflows/neo4j.5.yml | Adjusted test matrix versions |
| .github/workflows/neo4j.2025.yml | New workflow for testing against Neo4j 2025 versions |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
First draft to implement new bolt v6 based on following documentation changes:
neo4j/docs-bolt#80
neo4j/docs-cypher#1299
Still missing phpunit test for new Vector structure in
tests/structures/V6/StructuresTest.php