Skip to content

Blob binary transmission - #127

Draft
jonnyz32 wants to merge 57 commits into
mainfrom
blob-binary-transmission
Draft

Blob binary transmission#127
jonnyz32 wants to merge 57 commits into
mainfrom
blob-binary-transmission

Conversation

@jonnyz32

@jonnyz32 jonnyz32 commented Aug 26, 2025

Copy link
Copy Markdown
Collaborator

Binary data received in form
|blobQueryId (2 bytes)| replacementIndex (1 byte) | blobLength (4 bytes) | blob (blobLength bytes)| replacementIndex (1 byte) | blobLength (4 bytes) | blob (blobLength bytes)| ...

binary data sent in form
|queryIdLength (1 byte) | queryId (queryIdLength bytes) (utf8) | rowId (4 bytes) | colNameLength (1 byte) | colName (colNameLength bytes) (utf8) | blobLength (4 bytes) | blob (blobLength bytes)|

The changes for the js client are here Mapepire-IBMi/mapepire-js#55

We will need similar changes for the other clients.

Note: We shouldn't merge this before getting the other clients ready because it does have breaking changes. Namely there is a rowId field that is sent back in blob requests that is used as metadata. The field needs to be deleted once the full response is assebled on the client side.

final DataStreamProcessor io = new DataStreamProcessor(System.in, System.out, conn, testMode);

io.run();
// final DataStreamProcessor io = new DataStreamProcessor(System.in, System.out, conn, testMode);

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to figure out what to do here since the binarySender is relying on having a websocket.

@jonnyz32 jonnyz32 mentioned this pull request Aug 27, 2025
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants