{"issue":{"created_at":"2011-11-25T19:32:58Z","state":"open","updated_at":"2011-11-25T19:32:58Z","user":{"gravatar_id":"7b3ea86a0039bd70bd83d49229f00aa7","id":177620,"url":"https://api.github.com/users/acg","login":"acg","avatar_url":"https://secure.gravatar.com/avatar/7b3ea86a0039bd70bd83d49229f00aa7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"},"comments":0,"body":"The lwpb C library doesn't enforce required fields when encoding and decoding. This is [by design](http://code.google.com/p/lwpb/#Limitations). It would require another recursive pass over all the fields in the message descriptor to see if any were omitted in the encoded message. It would also require tracking which fields have been seen and which haven't, which is a departure from the callback design of lwpb_decoder_decode, where caller is responsible for actually populating the decoded message.\r\n\r\nSince validation of required missing fields is a questionable (see [Required is Forever](http://code.google.com/apis/protocolbuffers/docs/proto.html#simple)) and less frequently used feature of protobuf, and since enforcing them imposes a penalty in decoding, this should be an optional feature of the python decoder that you must explicitly request.","assignee":null,"id":2351783,"pull_request":{"patch_url":null,"html_url":null,"diff_url":null},"number":4,"labels":[],"title":"optionally enforce required fields when encoding and decoding","closed_at":null,"html_url":"https://github.com/acg/lwpb/issues/4","url":"https://api.github.com/repos/acg/lwpb/issues/4","milestone":null},"action":"opened"}