A collection of two complementary protobuf tools:
.proto source files from compiled protobuf
descriptor sets (.pb files produced by protoc --descriptor_set_out).Lossless, bidirectional converter between binary protobuf wire format and human-readable text.
protoc --decode output| Spec | Title | Status |
|---|---|---|
| 0003 | prototext CLI design | implemented |
| 0004 | Enum annotation syntax and #@ delimiter | implemented |
| 0006 | Fixture coverage model and gap-filling fixtures | implemented |
| 0007 | String and bytes field encoding policy | implemented |
| 0008 | NaN encoding for float and double fields | implemented |
| 0009 | Protocraft port and end-to-end test suite | implemented |
| 0010 | protoc --decode compatibility for canonical wire input | implemented |
| 0011 | Replace hand-rolled schema with prost-reflect | implemented |
| 0012 | Extension field rendering | implemented |
| 0013 | Protocraft schema-aware builder | implemented |
| 0014 | PyO3 Python extension (prototext-pyo3) | draft |
Reconstructs .proto source files from compiled protobuf descriptor sets
(.pb files produced by protoc --descriptor_set_out).
| Spec | Title | Status |
|---|---|---|
| 0021 | Variant bundle layout and uniform resource loading | implemented |
| 0024 | Rendering anomaly taxonomy and reporting | draft |
| Spec | Title | Status |
|---|---|---|
| 0019 | Field labels, synthetic oneofs, default values, json_name, import weak, extensions | implemented |
| 0020 | Proto3 inconsistency guards (required, groups, message_set_wire_format) | implemented |
| 0023 | Allow extend *Options blocks (custom options) | implemented |
| Spec | Title | Status |
|---|---|---|
| 0025 | Editions rendering strategy — why it is harder than proto3 | — |
| 0026 | Editions feature resolution engine | implemented |
| 0029 | Editions rendering: complete edition output | implemented |
| 0030 | Editions roundtrip tests | implemented |
| Spec | Title | Status |
|---|---|---|
| 0038 | default.nix: unify and deduplicate the build definition | implemented |