-
Notifications
You must be signed in to change notification settings - Fork 959
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: migrate to quick-protobuf #3312
Merged
Merged
Changes from all commits
Commits
Show all changes
79 commits
Select commit
Hold shift + click to select a range
c250f68
Add generated directory
kckeiks cac57a0
Add generated code
kckeiks 44b3465
Add ci
kckeiks 4dca4d0
Try adding quotes
kckeiks 6b19385
Add input variable
kckeiks 9d4b864
Move inputs
kckeiks c9853f7
Move inputs 2
kckeiks 9716fe5
Glob into variable
kckeiks 1d1dff0
Glob into variable 2
kckeiks b2aabcd
Use glob
kckeiks 559a1d3
Remove quotes
kckeiks d62b50d
Remove refs
kckeiks b894ac7
Test glob pattern
kckeiks 391a892
Bad commit
thomaseizinger 2991994
Remove explicit echo
thomaseizinger 8a25c84
Fail CI on untracked files
thomaseizinger ccc4541
Revert "Bad commit"
thomaseizinger f464e3b
Cache installed `pb-rs` binary
thomaseizinger d2ed2c6
Show bad proto files to the user
thomaseizinger c6dd4e4
Don't duplicate command
thomaseizinger 367a1a4
Only run on files in `generated/` directory
thomaseizinger 8896f81
Resolve conflict
kckeiks 78a483f
Remove prost from core
kckeiks 78be5d5
Fix core tests
kckeiks 430a9fb
Fmt code
kckeiks d7b6b27
Merge remote-tracking branch 'origin/add-quickprotobuf-take2' into ad…
kckeiks f1967b8
Include generated in proto mod
kckeiks 76dd1d1
Remove prost from autonat
kckeiks 840887a
Update changelog
kckeiks 2a97315
Merge branch 'master' into add-quickprotobuf-take2
kckeiks 448765a
Rename to quick-protobuf-codec
kckeiks 651b9c9
Remove prost-codec
kckeiks a6b63ac
Don't use `Cow`
thomaseizinger 2e2bbe7
Fix core
kckeiks 59ff24d
Run fmt
kckeiks a8762f8
Remove prost from identify
kckeiks fc13432
Fix autonat
kckeiks 4bd8ab0
Update changelogs
kckeiks 55d6f4d
Update docs
kckeiks b5cfe29
Remove prost from floodsub
kckeiks c2eaefd
Remove prost from gossipsub
kckeiks fa5fa4d
Update changelog in identify
kckeiks 86579c3
Remove prost from kad
kckeiks f6552da
Clean up relay
kckeiks 326ddee
Remove prost from rendezvous
kckeiks 9ea8ce4
Remove prost from noise
kckeiks a2f3cd4
Remove prost from plaintext
kckeiks dad962a
Remove prost from webrtc
kckeiks 469699a
Clean up
kckeiks 02d642b
Fix cargo check with all features
kckeiks 929d96c
Fix webrtc tests
kckeiks 2a1ff8c
Fix clippy errors
kckeiks c38e9e3
Fix clippy errors take 2
kckeiks 003de70
Fix CI
kckeiks 8b3398d
Merge branch 'master' into add-quickprotobuf-take2
kckeiks 75c6715
Merge branch 'master' into add-quickprotobuf-take2
kckeiks ee44340
Merge branch 'master' into add-quickprotobuf-take2
kckeiks 4f7605a
Fix pb-rs version
kckeiks 23526e6
Use long option name
kckeiks c42a5a8
Address changelog feedback
kckeiks ece12c1
Remove line
kckeiks 67e657c
Merge branch 'add-quickprotobuf-take2' of github.com:kckeiks/rust-lib…
kckeiks 3acc5f9
Merge branch 'master' into add-quickprotobuf-take2
kckeiks 90ebad6
Zeroize Data
kckeiks 66a2af5
Remove protoc installation from ci
kckeiks c014e1e
Remove protoc installation from interop-tests
kckeiks a4335ce
Revert ci changes
kckeiks 8531ac4
Fmt relay
kckeiks 6cf4fe5
Merge branch 'master' into add-quickprotobuf-take2
kckeiks 5ca8747
Remove transparent
kckeiks 98e302b
Add protoc installation to ci
kckeiks b0a41ec
Remove display impl
kckeiks da3e088
Box error
kckeiks 2b1b274
Change DecodeError
kckeiks 08ce33f
Merge branch 'master' into add-quickprotobuf-take2
kckeiks dfc55b8
Make an error type that does not expose anything
kckeiks 99cee6e
Merge branch 'master' into add-quickprotobuf-take2
thomaseizinger f939e06
Merge branch 'master' into add-quickprotobuf-take2
mxinden d2be0bf
Merge branch 'master' into add-quickprotobuf-take2
mxinden File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the reasoning for not using
Cow
? I am assuming code simplicity? I find it a neat feature, though I would assume that the performance gain is not worth the additional complexity in most cases. Can we easily useCow
on a case-by-case basis in the future?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem / feature is that when using
Cow
, the deserialised data structure retains a reference to the byte buffer.This doesn't play well with
asynchronous-codec
whereEncoder
passes you a byte buffer and expects you to create an owned type, without references to the original buffer.I think
Encoder
would have to undergo some serious refactoring to make this possible. Perhaps now that GATs are stable, this is actually a viable interface. For the time being, we opted to not go down this route.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We would be able to use
Cow
on a case-by-case basis if we find a way to run this CI check on all proto files, without having to enumerate them all so we don't forget adding new ones but also have a list of files that we want to enableCow
for.