mapbox / mapbox/vector-tile-spec

Add byte array to Values message

Open
#142 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

3.0 Specification
Dominant language
No language data
Stars
1k
Forks
213
PR merge metrics
No merged PRs in 30d

Description

We currently do not have a way to properly encode byte arrays as the value of an attribute. Ideally, this would not be an allowed type but I can see in some rare cases where this might be useful. I would like to propose adding `bytes` as the 8th value message and specifically state that it may be ignored in the decoder.

I know that from an data format standpoint that protobuffers do not have any difference between bytes and strings, however, I have come to realize that in some situations such as the python protobuf libraries it attempts to enforce a text encoding type on the values as they are set via the protobuf library. Additionally, it would be ideal for a client to know if there is a non standard string format that it could be ignored for situations where a bytes field is being used.

Thoughts?

/cc @ericfischer @joto

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review the Values message definition and the decoder behavior described in the issue, then read the existing comment discussion before deciding whether a bytes value belongs in the specification. Done means reaching and documenting a decision on the eighth value type and how decoders should handle it.

Written by the indexing model from the issue text.

Assessment

Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.