infinispan / infinispan/protostream

Implement packed fields

Open
#377 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
56
Forks
39
Avg merge
5h 36m
Merged PRs (30d)
5

Description

Quoting the protobuf docs:

repeated fields of a primitive type (any [scalar type](https://protobuf.dev/programming-guides/proto2#scalar) that is not string or bytes) can be declared as “packed”. In proto2 this is done using the field option [packed=true]. In proto3 it is the default.

Instead of being encoded as one record per entry, they are encoded as a single LEN record that contains each element concatenated. To decode, elements are decoded from the LEN record one by one until the payload is exhausted. The start of the next element is determined by the length of the previous, which itself depends on the type of the field.

Contributor guide

Open the contributing guide

Research direction

The issue names no files or tests. Start by locating the repeated primitive field encoding and decoding paths, then compare their behavior with the linked Protocol Buffers packed-field specification. Done means proto2 packed=true fields and proto3 repeated primitive fields use length-delimited packed encoding and decode all elements correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.