You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I propose we formally deprecate @std/io: @deprecated tags on every export with a migration target, a notice in the module docs and README, and JSR archival once the one real migration gap closes. This isn't a new decision. When #5003 was closed, the stated plan was to stop stabilizing the package and "nudge people to use @std/streams instead", with a detailed follow-up issue to come. That issue never landed. Today nothing in the package tells users any of this.
The module doc says "many of these utilities are also deprecated", but zero exports carry a @deprecated JSDoc tag. Editors and JSR docs surface nothing.
JSR lists 131 dependent packages, so people keep adopting it without knowing its status.
Web streams are async only, so readAllSync and writeAllSync have no replacement today. #6284 tracks the main use case (fully written sync output to stdout/stderr), and the suggested fix lives in the runtime, not std. I'd deprecate everything now, point the sync functions' @deprecated notes at #6284, and gate removal and JSR archival on that resolving.
Proposed steps
Add @deprecated tags to all exports with the targets above. Happy to send the PR.
Add the deprecation notice to the module doc and the README package table.
Summary
I propose we formally deprecate
@std/io:@deprecatedtags on every export with a migration target, a notice in the module docs and README, and JSR archival once the one real migration gap closes. This isn't a new decision. When #5003 was closed, the stated plan was to stop stabilizing the package and "nudge people to use@std/streamsinstead", with a detailed follow-up issue to come. That issue never landed. Today nothing in the package tells users any of this.Current state
@std/io#5003.@deprecatedJSDoc tag. Editors and JSR docs surface nothing.StringReader(BREAKING(io): removeStringReader#6062),StringWriter(BREAKING(io): removeStringWriter#6061), andMultiReader(BREAKING(io): removeMultiReader#6059) are gone.Migration targets
BufferBufferfrom@std/streamscopyreadable.pipeTo(writable)iterateReaderReadableStreamis async iterablereadAlltoBytesfrom@std/streamstoReadableStream/toWritableStream/readerFromStreamReader.readable/.writablenativelywriteAllReadableStream.from([data]).pipeTo(writable, { preventClose: true })readAllSync/writeAllSyncThe sync gap
Web streams are async only, so
readAllSyncandwriteAllSynchave no replacement today. #6284 tracks the main use case (fully written sync output to stdout/stderr), and the suggested fix lives in the runtime, not std. I'd deprecate everything now, point the sync functions'@deprecatednotes at #6284, and gate removal and JSR archival on that resolving.Proposed steps
@deprecatedtags to all exports with the targets above. Happy to send the PR.writeAllandwriteAllSync? #6284 resolves: archive on JSR and remove from the workspace.