ipld/edelweiss

add type ByteString for backwards compat with IPLD schema

Open

#16 opened on Mar 11, 2022

 (5 comments) (0 reactions) (0 assignees)Go (5 forks)auto 404
good first issue

Repository metrics

Stars
 (17 stars)
PR merge metrics
 (PR metrics pending)

Description

Edelweiss type String definitionally holds valid Unicode strings only, and encodes/decodes them from IPLD strings with valid UTF8 encodings.

However, there may be pre-existing IPLD schemas that place non-UTF8 byte sequences in IPLD string objects. By design requirement, Edelweiss must provide a way for working with pre-existing schemas.

One way of doing this without violating Edelweiss's type semantics is to introduce a new Edelweiss type, say called ByteString, which:

  • is a list of bytes on the user-facing end
  • encodes/decodes as an IPLD string of arbitrary bytes on the wire

Contributor guide