# Protocol Buffers - Protobuf Editions design documents

This directory contains historical design documents that describe plans for
implementing Protobuf Editions. For an up-to-date overview of this feature of
Protocol Buffers, see
[Protobuf Editions Overview](https://protobuf.dev/editions/overview/).

These files represent the state that the original documents were in at the time
that they were published to this repository. While some updates *may* be made to
the files after their initial upload, you should consider the possibility that
they are outdated as you read them. These are purely for historical value and
should not be treated as documentation of the current state.

Note that the authors listed in the topics were the authors of the *original*
version of the document; it may have changed since they last worked on the
document.

## Design Documents

The following topics are in this repository:

*   [What are Protobuf Editions?](what-are-protobuf-editions.md)
*   [Life of an Edition](life-of-an-edition.md)
*   [Protobuf Editions Design: Features](protobuf-editions-design-features.md)
*   [Editions: Life of a Featureset](editions-life-of-a-featureset.md)
*   [Protobuf Editions for Schema Producers](protobuf-editions-for-schema-producers.md)
*   [Stricter Schemas with Editions](stricter-schemas-with-editions.md)
*   [Edition Zero: Converged Semantics](edition-zero-converged-semantics.md)
*   [Edition Naming](edition-naming.md)
