This repository was archived by the owner on Dec 15, 2025. It is now read-only.
Add support for enforcing a limit on the size of the marshalled output #721
+172
−12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a new option to
Config,MaxMarshalledBytes, which allows limiting the size of the marshalled output. By default, it is 0 and enforces no limit (ie. the same behaviour as today).This is useful in services where marshalling a large payload could consume a large amount of memory and therefore be a denial of service vector.
I don't love that I've used
panichere, but I couldn't see any other way that wouldn't cause a backwards-incompatible change, particularly custom encoders.Running the benchmarks in
benchmarksshow no significant impact to performance as a result of this change.