Skip to content

🦋 New version release#56

Merged
brentrager merged 1 commit into
mainfrom
changeset-release/main
May 12, 2026
Merged

🦋 New version release#56
brentrager merged 1 commit into
mainfrom
changeset-release/main

Conversation

@brentrager
Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@smooai/file@2.2.10

Patch Changes

  • 7ab63cc: SMOODEV-967: Lazy streaming support in Rust, Go, and .NET.

    The Python port shipped lazy streaming in SMOODEV-952; this change brings the same semantics to the other three ports. Constructing a file from a large stream no longer requires buffering the whole payload in memory.

    • Rust: New File::from_stream_lazy(reader, hint) that takes any AsyncRead + Send + Unpin + 'static and pulls only the first 64 KB (LAZY_HEAD_BYTES) for magic-byte detection. The tail stays in the reader and is consumed by read(), iter_bytes(), or upload_to_s3(). Uploads spool through a temp file so the AWS SDK gets a seekable body without RAM-buffering the payload.
    • Go: New NewFromStreamLazy(reader, hints...) and a public IterBytes(ctx) (<-chan []byte, <-chan error) method. UploadToS3WithContext streams lazy files through a temp-file spool.
    • .NET: CreateFromStreamAsync(stream, ..., lazy: true) (and a CreateFromStreamLazyAsync shorthand). New OpenReadStream() returns a HeadAndTailStream view that yields the detection head followed by the lazy tail. S3SmooFile.UploadToS3Async uses TransferUtility (multipart streaming) for lazy files.

    100 MB streaming tests in all three languages assert RSS/heap delta stays under 50 MB.

@brentrager brentrager merged commit ab3ab32 into main May 12, 2026
1 check passed
@brentrager brentrager deleted the changeset-release/main branch May 12, 2026 19:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant