Skip to content

Skiff to full: execute the in-tree plan, phases 1-5 #69

Description

@sshaplygin

Part of #63.

The plan is in-tree and authoritative: docs/skiff-full-support-plan.md. This issue tracks its execution and nothing more — anything that reads differently there wins.

It came out of auditing this crate against the real C++ implementation rather than against its own idea of Skiff, and the shape of the finding is worth repeating: the bytes are right, the vocabulary is short. Nothing in phases 1–3 changes what this crate writes today; every item is a type, a rule or a framing tag that is currently absent.

  • Phase 1 — serialization parity. Byte-level, small, and every later phase encodes through it, which is why it is first.
  • Phase 2 — table schema matching. Where a cluster-written schema is most likely to be refused today: a control column in the wrong place is a real schema someone will hand us, not a hypothetical.
  • Phase 3 — YT logical types. The largest, and it depends on both above. decimal and list<T> cannot be expressed at all right now.
  • Phase 4 — typed rows. Ergonomics; can slip without blocking anything.
  • Phase 5 — a standing gate against C++. What keeps the other four from decaying.

Demoted below dynamic tables by the decision of 16 August 2026. That is about order, not about doubt.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestparityClosing a gap against the official C++/Go clients

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions