Conversation
210aced to
248f584
Compare
hoytak
left a comment
There was a problem hiding this comment.
Per discussion, I think we should get this in and then iterate rather than hold it up longer. Many todos, but let's merge and then update it.
assafvayner
left a comment
There was a problem hiding this comment.
Some comments.
I do have 2 additional requests for this revision, then more content can go in in the future.
- Add a README.md in xet_session, should be easy just generate and review. This should describe the general interface exposed and the motivation.
- ^ should fix this, If you run cargo doc on this crate, the first page is pretty empty, so we should fill something in there, doesn't have to be final/release version, just something.
Code Review SummaryWell-structured session API with a clean hierarchical design (XetSession → UploadCommit/DownloadGroup). The sync-over-async approach is appropriate for FFI consumers. Existing review feedback already covers: inner struct visibility/ P0 — Must Fix
P1 — Should Fix
P2 — Nice to Fix
See inline comments for exact locations of P0/P1 issues. |
rajatarya
left a comment
There was a problem hiding this comment.
Inline comments on high-priority issues.
rajatarya
left a comment
There was a problem hiding this comment.
Don't block on feedback from Claude - but I think the P0/P1 feedback sounds reasonable to address - either prior to merging or after merging in a subsequent PR.
Derived from this plan
This PR introduces a new
xet_sessioncrate that provides a session-based hierarchical API: Users create a XetSession to manage runtime and configuration, then batch uploads into UploadCommit objects and downloads into DownloadGroup objects — each of which runs transfers in the background by the inner XetRuntime.All pub functions are exposed as sync functions - making them easy to use in other languages, e.g. Python, C, ...
Will expose another interface for Rust async native environment.
Example
Next steps
get_process()function to FileUploadSession and FileDownloadSession so XetSession can pull.