I built a header-only proto3 wire-format library with one constraint: no
.proto files, no codegen, no descriptor runtime. The user writes a plain C++ struct, and that struct is the schema:#include "proto3.hpp" struct SearchRequest { std::string query; // field 1 std::int32_t page_number; // field 2 std::int32_t results_per_page; // field 3 }; SearchRequest req{"hello", 1, 10}; std::string bytes = proto3::serialize(req); // -> proto3 wire bytes SearchRequest back = proto3::deserialize<SearchRequest>(bytes);blog: Your C++ struct is the schema: a proto3 serializer in C++26 reflection
github: struct\_proto26
https://redd.it/1tcrfz4
@r_cpp