feat: two-stage builder API for async Avro reader#9462
Open
mzabaluev wants to merge 1 commit intoapache:mainfrom
Open
feat: two-stage builder API for async Avro reader#9462mzabaluev wants to merge 1 commit intoapache:mainfrom
mzabaluev wants to merge 1 commit intoapache:mainfrom
Conversation
Expose the read_header method in reader::async_reader::ReaderBuilder, returning another builder typestate that exposes the writer schema as it was read from the file header.
EmilyMatt
reviewed
Feb 22, 2026
|
|
||
| impl<R: AsyncFileReader> ReaderBuilder<R> { | ||
| async fn read_header(&mut self) -> Result<(Header, u64), AvroError> { | ||
| impl<R> ReaderBuilder<R> |
Contributor
There was a problem hiding this comment.
I wonder, do we want to allow maybe a with_header function as well? that will accept a user's header directly?
Contributor
There was a problem hiding this comment.
Not the typical usecase, but makes it more flexible
Contributor
Author
There was a problem hiding this comment.
What would be the behavior with this method? Skip reading the header from the file, and start decoding from...?
Contributor
There was a problem hiding this comment.
Presumable the range?
The behaviour would be the exact same, since the header ends with the magic I believe? and we start the actual decoding from the first magic we encounter
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Which issue does this PR close?
What changes are included in this PR?
Expose the
read_headermethod inreader::async_reader::ReaderBuilder, returning another builder typestate that exposes the writer schema as it was read from the file header.Are these changes tested?
Tests and doc tests to be added for the new API, showing possible use.
Are there any user-facing changes?
The new API augments the existing ReaderBuilder in a backward-compatible way.