Comments (1)
FWIW, it looks like the C++ runtime will actually recursively validate nested messages in extension field values. Unlike the other implementations, which statically build the evaluators for nested messages based on the known field descriptors, the C++ implementation uses reflection to iterate set fields and recursively evaluates messages it discovers that way. It does not actually validate field constraints on the extensions though -- but it will evaluate constraints inside message values.
Relevant links:
- C++: https://github.com/bufbuild/protovalidate-cc/blob/main/buf/validate/validator.cc#L42
- Go: https://github.com/bufbuild/protovalidate-go/blob/main/internal/evaluator/builder.go#L231
- Java: https://github.com/bufbuild/protovalidate-java/blob/main/src/main/java/build/buf/protovalidate/internal/evaluator/EvaluatorBuilder.java#L187
- Python: https://github.com/bufbuild/protovalidate-python/blob/main/protovalidate/internal/constraints.py#L723
from protovalidate.
Related Issues (20)
- [BUG] Conformance test suite has test cases that are unspecified by the proto3 spec HOT 2
- Add package documentation for Protobuf packages
- [Feature Request] PHP Support
- [Feature Request] Ruby Support
- [Question] Deprecated field validation HOT 1
- [Question] I can't generate a validator with buf, is the plugin used by the buf.gen.yaml file incorrect? HOT 1
- Protoc does not generate validation code [BUG] HOT 1
- [Feature Request] Have URI validations for string but also allow empty HOT 1
- [Feature Request]: Add wellknown regex for URL encoded parameters HOT 1
- Cannot resolve import HOT 1
- [Question] Migration from protoc-gen-validate to protovalidate HOT 2
- [Feature Request] Add to scalapb common protos HOT 3
- [Question] Carrying Patches from protoc-gen-validate HOT 1
- How do you use protovalidate on grpc-gateway? HOT 2
- [Feature Request] How to replace error messages in standard constraints? HOT 1
- [BUG] Regex in CEL with non-capturing group issue HOT 1
- [BUG] migrate: tmp on different partition than target [invalid cross-device link] HOT 1
- [BUG] migration tool: repeated strings with ignore_empty doesn't work HOT 2
- Add access to custom options (of host messages).
- [BUG] Migrator uses wrong field path for string ignore HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from protovalidate.