Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions modules/ROOT/pages/bolt-compatibility.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,19 @@ As soon as a decision is made, it will be documented here.]]

== Bolt 6.x

[cols="^,^",options="header"]
[cols="^,^,^",options="header"]
|===
| Neo4j version
| Bolt `6.0`
| Bolt `6.1`

| `2025.10` - current{fn-version-plus}

| `2025.10` - `2026.08`
| `x`
|

| `2026.09` - current{fn-version-plus}
| `x`
| `x`

|===
Expand Down
6 changes: 6 additions & 0 deletions modules/ROOT/pages/bolt/message.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2171,6 +2171,12 @@ RECORD [{"point": [1, 2]}, "example_data", 123]
The sections below list the changes of messages compared to the previous version.
Please also check for changes in xref:./structure-semantics.adoc#structure-summary[Structure Semantics].

[[messages-summary-61]]
=== Version 6.1

** Update to PackStream `1.1` (introducing `UUID` type)


[[messages-summary-6]]
=== Version 6.0

Expand Down
49 changes: 48 additions & 1 deletion modules/ROOT/pages/packstream/index.adoc
Comment thread
robsdedude marked this conversation as resolved.
Comment thread
robsdedude marked this conversation as resolved.
Comment thread
robsdedude marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,24 @@

PackStream is a binary presentation format for the exchange of richly-typed data. It provides a syntax layer for the Bolt messaging protocol.

== Version 1
== Versioning

PackStream is versioned independently of the bolt protocol.
Only one version of PackStream is supported in each bolt protocol version.


|===
|Bolt Protocol Version |PackStream Version

|< 6.0
|1.0

|>= 6.1
| 1.1

|===

== Definition

PackStream is a general purpose data serialisation format, originally inspired by (but incompatible with) link:https://msgpack.org/[MessagePack].

Expand Down Expand Up @@ -38,6 +55,9 @@ The core data types are described in the table below.
| <<data-type-string, `String`>>
| unicode text, *UTF-8*

| <<data-type-uuid, `UUID`>>
| 128-bit identifier

| <<data-type-list, `List`>>
| ordered collection of values

Expand Down Expand Up @@ -493,6 +513,20 @@ N.B. While the unsigned 32-bit integer following `D3` could hold a bigger number
| `D0 12 47 72 C3 B6 C3 9F 65 6E 6D 61 C3 9F 73 74 C3 A4 62 65`
|===

[[data-type-uuid]]
=== `UUID`
label:new[PackStream 1.1]

A UUID (Universally Unique Identifier, https://www.rfc-editor.org/rfc/rfc9562.html[RFC 9562]) is a 128-bit value used to uniquely identify information.
UUIDs are commonly represented as a hyphenated hexadecimal string such as `550e8400-e29b-41d4-a716-446655440000`, which encodes the 16 bytes in big-endian order across five groups separated by hyphens.

A UUID type is represented with marker byte `E0` followed by the 16 bytes that represent the UUID as defined in RFC 9562.

For example the UUID `550e8400-e29b-41d4-a716-446655440000` is represented as follows:

```
E0 55 0E 84 00 E2 9B 41 D4 A7 16 44 66 55 44 00 00
```
[[data-type-list]]
=== `List`

Expand Down Expand Up @@ -876,3 +910,16 @@ The *tag byte* is used to identify the type or class of the structure and may ho

PackStream itself does not define semantics for different structures.
Instead, refer to the xref:bolt/structure-semantics.adoc[] for the Bolt version in question.

[[changelog]]
== Changelog

[[packsteam-summary-1-1]]
=== Version 1.1

** Introduction of `UUID` type.

[[packstream-summary-1]]
=== Version 1.0

** Initial version consisting of `NULL`, `Boolean`, `Integer`, `Float`, `Bytes`, `String`, `List` `Dictionary` and `Structure` types.
Loading