This is an archive of the discontinued Mercurial Phabricator instance.

wireprotov2: define response data as CBOR
ClosedPublic

Authored by indygreg on Apr 14 2018, 8:21 PM.

Details

Summary

Previously, response data was defined as a stream of bytes. We had
the option to declare it as CBOR using a frame flag.

We've converged all wire protocol commands exposed on version 2 to
CBOR. I think consistency is important. The overhead to encoding
things with CBOR is minimal. Even a very large bytestring can be
efficiently encoded using an indefinite length bytestring. Now,
there are limitations with consumers not being able to efficiently
stream large CBOR values. But these feel like solvable problems.

This commit removes the "is CBOR" frame flag from command response
frames and defines the frame as always consisting of a stream of
CBOR values.

The framing protocol media type has been bumped to reflect this
BC change.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

indygreg created this revision.Apr 14 2018, 8:21 PM
durin42 accepted this revision.Apr 16 2018, 6:52 PM
This revision is now accepted and ready to land.Apr 16 2018, 6:52 PM
This revision was automatically updated to reflect the committed changes.