fix(deps): update all dependencies #2
Reference in New Issue
Block a user
No description provided.
Delete Branch "renovate/all"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
0.7.1->0.9.00.6.2->0.6.50.2.22->0.19.00.6.8->0.6.121.28.0->1.48.0Release Notes
rmanoka/async-scoped (async-scoped)
v0.9.0FuturesOrderedinsideScope. #19Miscellaneous Tasks
v0.8.0Compare Source
Cargo.toml
eyre-rs/eyre (color-eyre)
v0.6.5Compare Source
v0.6.4Compare Source
v0.6.3Compare Source
dagger/dagger (dagger-sdk)
v0.19.8Compare Source
Added
WithDirectoryandWithFileto avoid copying file data on disk in more cases by @sipsma in https://github.com/dagger/dagger/pull/11497These APIs now avoid copying data on disk in all cases except when an owner, permission or timestamp is modified as part of the operation.
.envfiles by @alexcb in https://github.com/dagger/dagger/pull/11442@otr/mocha-testlib by @TomChv in https://github.com/dagger/dagger/pull/11508File.AsJSON()to simplify handling JSON file contents by @suprjinx in https://github.com/dagger/dagger/pull/11408Changed
Fixed
Contributors
Special thanks to our external contributors this release!
What to do next?
v0.19.7Compare Source
Added
--eager-runtimeflag todagger functionsby @TomChv in https://github.com/dagger/dagger/pull/11413Fixed
Contributors
Special thanks to our external contributors this release!
What to do next?
v0.19.6Compare Source
Fixed
Contributors
Special thanks to our external contributors this release!
What to do next?
v0.19.5Compare Source
Fixed
Contributors
Special thanks to our external contributors this release!
What to do next?
v0.19.4Compare Source
Added
Function calls now have configurable caching behavior, including TTLs. Function calls with cached results can skip execution, which often significantly speeds up your workflows. Instructions and more details on the configuration options can be found in the docs.
🚨 Modules initialized before v0.19.4 will need to explicitly opt-in to the new caching behavior.
GitRepository.uncommitedAPI to get changeset of dirty changes in the working directory by @jedevc in https://github.com/dagger/dagger/pull/11241engine clientsAPI by @matipan in https://github.com/dagger/dagger/pull/11308Fixed
Dependencies
Contributors
Special thanks to our external contributors this release!
What to do next?
v0.19.3Compare Source
Added
This is for instance really useful from inside self-chainable blocks (using with) where an error can't be returned.
Changeset.isEmptyAPI by @jedevc in https://github.com/dagger/dagger/pull/11237Fixed
Directory.diffon identical directories by @jedevc in https://github.com/dagger/dagger/pull/11268Dependencies
What to do next?
v0.19.2Compare Source
Fixed
What to do next?
v0.19.1Compare Source
Added
User defaults: persist any dagger function argument to .env by @shykes in https://github.com/dagger/dagger/pull/11034
This feature allows user to save arguments to their dagger functions to a local file, instead of re-typing them at every call. This way, the sandboxing of functions is preserved without sacrificing end-user convenience.
To use this feature, simply add variables to a local
.envfile reachable from your working directory. The format of the variables should be as follows:v0.19.0Compare Source
🔥 Breaking Changes
GitRepository.branch/GitRepository.tag/GitRepository.commitnow only accept valid branches/tags/commits by @jedevc in https://github.com/dagger/dagger/pull/11038GitRepository'swithAuthTokenandwithAuthHeaderare now no-ops by @jedevc in https://github.com/dagger/dagger/pull/11032Instead authentication should only be provided at the top-level
gitquery, since it's now queried immediately.Host.setSecretFilemethod by @jedevc in https://github.com/dagger/dagger/pull/11115Use the
file://secret provider instead.LocalCache.keepBytesfield by @jedevc in https://github.com/dagger/dagger/pull/11115Instead use the more specific
LocalCache.reservedSpace, which it was an alias for.Container.buildAPI by @jedevc in https://github.com/dagger/dagger/pull/11118Use
Directory.dockerBuildinstead.Added
engine.jsonby @matipan in https://github.com/dagger/dagger/pull/11040Fixed
What to do next?
v0.18.19Compare Source
Added
addressAPI: a unified address to load containers, directories, secrets, etc by @shykes in https://github.com/dagger/dagger/pull/10770Changeset.exportfunction to allow exporting changesets from the API by @jedevc in https://github.com/dagger/dagger/pull/11064Fixed
Directory.withFileswhich set the wrong path by @jedevc in https://github.com/dagger/dagger/pull/11087What to do next?
v0.18.18Compare Source
Added
EnvFiletype by @shykes in https://github.com/dagger/dagger/pull/10949~/.config/dagger/ca-certificatesto engine by @jedevc and @matipan in https://github.com/dagger/dagger/pull/11019Changesettype by @vito in https://github.com/dagger/dagger/pull/10946Directory.findUpperforms a find-up search in a directory snapshotHost.findUp(): performs a find-up search in the host filesystemFixed
originon git checkouts by @jedevc in https://github.com/dagger/dagger/pull/11031defaultPathvalues to contain/by @jedevc in https://github.com/dagger/dagger/pull/11048What to do next?
v0.18.17Compare Source
🔥 Breaking Changes
Automatically apply
.gitignorepatterns on directory loading for module call by @TomChv and @jedevc in https://github.com/dagger/dagger/pull/10883 \Add
NoGitAutoIgnoreargument toHost.Directoryto disable this behavior.Added
Host.containerImageAPI to load images from the host container image store by @jedevc in https://github.com/dagger/dagger/pull/10810Container.combinedAPI to get both standard output and standard error afterwithExecby @eunomie https://github.com/dagger/dagger/pull/10924GitRepository.urlAPI to get the fully resolved URL of a git repository by @jedevc in https://github.com/dagger/dagger/pull/10959Containers,Directorys and runningServicesby @jedevc in https://github.com/dagger/dagger/pull/10867.netrcfile by @jedevc in https://github.com/dagger/dagger/pull/10957Fixed
gitnow automatically determines the protocol when using a scheme-less URL (instead of defaulting tohttps://) by @jedevc in https://github.com/dagger/dagger/pull/10960What to do next?
v0.18.16Compare Source
What to do next?
v0.18.15Compare Source
Added
container.Existsanddirectory.ExistsAPI for testing if a file exists, and optionally type (e.g. file or directory) by @alexcb in https://github.com/dagger/dagger/pull/10449containerpodmannerdctlfinchgitRef.commonAncestorAPI to find the common ancestor between two references by @jedevc in https://github.com/dagger/dagger/pull/10849Fixed
httpandgitstdlib commands by @helderco in https://github.com/dagger/dagger/pull/10845includeDeprecatedarg by @jedevc in https://github.com/dagger/dagger/pull/10889Contributors
Special thanks to our external contributors this release!
What to do next?
v0.18.14Compare Source
Fixed a regression causing the LLM to see malformed non-string scalar responses.
What to do next?
v0.18.13Compare Source
Added
GitRepository.latestVersionfield to get a git ref of the latest semver tag by @jedevc in https://github.com/dagger/dagger/pull/10679Fixed
~), commonly used in Bitbucket Server for user-scoped repositories (e.g.,extranet.example.com/bitbucket/scm/~user/repo.git) by @grouville in https://github.com/dagger/dagger/pull/10692What to do next?
v0.18.12Compare Source
Changed
OrbStack users were by default ending up with a custom CA in their engine and automatically installed in each container, adding overhead. We now ignore that CA cert by default to improve performance in the default case.
Fixed
What to do next?
v0.18.11Compare Source
🔥 Breaking Changes
value) for SDKs that support enum members (see SDK-specific release notes).
This may break loading modules (including in compat mode) that were
previously setting enum default values in function signatures, if those values
weren't valid - these would only trigger an error on calling that function,
while now it's triggered during module initialization.
namespaceargument fromCacheVolumeby @sipsma in https://github.com/dagger/dagger/pull/10586This arg was only ever meant for internal usage within the API's
implementation, but previously couldn't be hidden from the public API. Now it
is properly internal-only and thus not accessible to external clients. Any use
of the arg should just be removed.
sweepengine option name tosweepSizeby @jedevc in https://github.com/dagger/dagger/pull/10560This option was previously incorrectly named - the docs were correct, but the
code was not properly updated.
Added
New top-level
cloudAPI for getting information about the dagger cloud session by @marcosnils in https://github.com/dagger/dagger/pull/10580This includes the
cloud.traceURLfield for getting the current trace URL.Allow
--no-mod/-Mflag in more places to disable automatic module loading by @jedevc in https://github.com/dagger/dagger/pull/10595Propagate exit codes properly in shell by @helderco in https://github.com/dagger/dagger/pull/10438
The
.exitbuiltin was added.The
.waitbuiltin now accepts a list of job ids to wait for. For example:The above example should exit with status code 1 because
.waitreturnsthe exit of the first command that failed. This is different from Bash
which returns the exit status of the last command in the list, even if
it succeeded when others have failed.
Add
httpAuthUsernameparameter togitto allow basic auth with usernames by @grouville in https://github.com/dagger/dagger/pull/10605Additionally this field is populated from the client's git credential helper,
similarly to passwords.
You can now set
$DAGGER_PROGRESSto configure your preferred progress format globally, instead of passing the--progressflag every time by @vito in https://github.com/dagger/dagger/pull/10617Added a new
dotsprogress format, which is a much quieter alternative toplainsuitable for use in CI by @vito in https://github.com/dagger/dagger/pull/10617This format focuses on printing logs and reduces everything else to just
green dots and red Xes for success/failure, similar to test runners like RSpec.
Demo
Changed
.help <module>by @helderco in https://github.com/dagger/dagger/pull/10487ExecErrorso you can see the stdout/stderr and exit code programmatically by @vito in https://github.com/dagger/dagger/pull/10585Fixed
In one scenario this reduced heap usage from 14GB to 7GB.
In the same scenario as the high log volume fix, this further reduced heap usage from 7GB to 1.4GB.
plainprogress format being way more verbose than intended by @vito in https://github.com/dagger/dagger/pull/10636Directory.withSymlinkaccidentally escaping from the selected sub-directory by @alexcb in https://github.com/dagger/dagger/pull/10563What to do next?
v0.18.10Compare Source
Added
Improved TUI progress visualizer by @vito in https://github.com/dagger/dagger/pull/10468
Added
Ehotkey in TUI for-E/--no-exitat runtime by @vito in https://github.com/dagger/dagger/pull/10511Add support for using engine-wide default GC policy when triggering manual local cache prunes by @sipsma in https://github.com/dagger/dagger/pull/10505
The manual prune API now supports an optional arg to enable honoring the engine-wide default automatic GC configuration. e.g.
dagger core engine local-cache prune --use-default-policy
New
container.WithSymlinkanddirectory.WithSymlinkAPI for creating symbolic links by @alexcb in https://github.com/dagger/dagger/pull/10435Unbundle the SDK interface to support partial implementation by @TomChv in https://github.com/dagger/dagger/pull/10525
When you implement a custom SDK, you can now choose to just implement part of the
SDKinterface depending on your needs.That means:
dagger developno longer fails if your SDK just implement theRuntimeinterface, it will simply not callCodegenif not defined.dagger callanddagger functionsgive a clear error message if it's not supported by the SDK.See https://github.com/dagger/dagger/issues/7707 for more information.
Fixed
Dependencies
What to do next?
v0.18.9Compare Source
Added
gc.sweepSizesetting forengine.jsonby @jedevc in https://github.com/dagger/dagger/pull/10420This setting allows controlling how much data to clear in a single GC sweep.
Changed
noCachearg toHost.directoryto auto reload contextual directories in persistent shell/prompt sessions by @cwlbraa in https://github.com/dagger/dagger/pull/10342Fixed
_prefix not being reserved for interpreter builtins by @helderco in https://github.com/dagger/dagger/pull/10452What to do next?
v0.18.8Compare Source
Fixed
What to do next?
v0.18.7Compare Source
Fixed
gitAPI calls consistently respect proxy settings by @jedevc in https://github.com/dagger/dagger/pull/10352Added
Query.httpby @jedevc in https://github.com/dagger/dagger/pull/10317nameallows overriding the filename to downloadpermissionsallows setting the permissions on the resulting fileauthHeaderallows passing a secret in theAuthorizationHTTP headerWhat to do next?
v0.18.6Compare Source
🔥 Breaking Changes
Cache URI-based secrets based on their plaintext value rather than the URI by @sipsma in https://github.com/dagger/dagger/pull/10311
Previously, the "cache key" for URI-based secrets (e.g.
env://FOO,file:///some/path, etc.) was the URI string. This meant that operations including the secret (e.g. as an environment variable in a Container) would be cached based on the URI value. If two secrets from different clients had the same URI but different plaintext values, cache for operations that include them would be shared.In many cases, even when URIs were the same, the plaintext of secrets could be meaningfully different, which made this behavior surprising and lead to unexpected results.
Now, URI-based secrets are cached based on secure hashes of their plaintext value. Two secrets that have the same URI but different plaintext values will be cached separately, and operations that include them will not share cache.
However, there are cases where users do want secrets with different plaintexts to share cache, e.g. secrets that rotate in plaintext value frequently but aren't meaningfully different and thus shouldn't bust the cache of operations that include them.
To continue supporting those use cases, there is a new optional
cacheKeyargument toSecretthat can be used to specify a custom cache key. If provided, the cache key will be used instead of the default plaintext-based cache key, allowing any secrets sharing that cache-key to be cached together.SDKs can provide this as an optional argument to the
Secretconstructor. Other example usages:dagger shell:
dagger shell -c "some-function --secret-arg $(secret env://FOO --cache-key my-cache-key)"dagger call (supports a special syntax that sets the cache key via a query param in the URI):
dagger call some-function --secret-arg env://FOO?cacheKey=my-cache-keyAdded
GitRepository.branchesAPI by @jedevc in https://github.com/dagger/dagger/pull/10250Filetop-level field added to allow easier creation ofFileobjects by @jedevc in https://github.com/dagger/dagger/pull/10290Fixed
GitRepository.tagspatternsarg is now respected for local git repositories by @jedevc in https://github.com/dagger/dagger/pull/10250dagger callby @helderco in https://github.com/dagger/dagger/pull/10305Container.buildwith a Dockerfile that isFROM scratchby @sipsma in https://github.com/dagger/dagger/pull/10332What to do next?
v0.18.5Compare Source
Added
deptharg toGitRef.treeto control the depth of a clone by @jedevc in https://github.com/dagger/dagger/pull/9980GitRef.reffield for resolving the full ref string for a reference by @jedevc in https://github.com/dagger/dagger/pull/9980Fixed
Git.treecheckouts by @jedevc in https://github.com/dagger/dagger/pull/9980withExecwhen secrets created bySetSecretin function calls are included by @sipsma in https://github.com/dagger/dagger/pull/10260What to do next?
v0.18.4Compare Source
Fixed
DirectoryandFileflags by @helderco in https://github.com/dagger/dagger/pull/10169CurrentModuleAPI during SDK module initialization by @sipsma in https://github.com/dagger/dagger/pull/10213llm.withModelfrom a module function by @sipsma in https://github.com/dagger/dagger/pull/10230.plaintexton a URI-based secret from a module w/ cache hit by @sipsma in https://github.com/dagger/dagger/pull/10223setSecretprovided empty plaintext value and passed between function calls by @sipsma in https://github.com/dagger/dagger/pull/10223Experimental
What to do next?
v0.18.3Compare Source
Added
--recursiveflag fordagger developby @jedevc in https://github.com/dagger/dagger/pull/9860Container.buildandDirectory.dockerBuildby @sipsma in https://github.com/dagger/dagger/pull/10088ttlfor local secret caching for vault by @rajatjindal in https://github.com/dagger/dagger/pull/9997Fixed
Experimental
What to do next?
v0.18.2Compare Source
Changed
with-execpositional arguments by @helderco in https://github.com/dagger/dagger/pull/10063Fixed
What to do next?
v0.18.1Compare Source
Added
addressAPI: a unified address to load containers, directories, secrets, etc by @shykes in https://github.com/dagger/dagger/pull/10770Changeset.exportfunction to allow exporting changesets from the API by @jedevc in https://github.com/dagger/dagger/pull/11064Fixed
Directory.withFileswhich set the wrong path by @jedevc in https://github.com/dagger/dagger/pull/11087What to do next?
v0.18.0Compare Source
Changed
Fixed
What to do next?
v0.17.2Compare Source
Added
Directory.filterAPI for improved ergonomics by @rajatjindal in https://github.com/dagger/dagger/pull/9976This was previously possible by doing
Query.directory.withDirectory("", dir), but this breaks the chain.Changed
What to do next?
v0.17.1Compare Source
dag.Llm. To fix, simply change todag.LLMWhat to do next?
v0.17.0Compare Source
Added
Stabilized Dagger Shell by @helderco in https://github.com/dagger/dagger/pull/9896
Find out more at https://docs.dagger.io/features/shell/
New top-level
LLMAPI to allow integrating LLMs with native Dagger types in https://github.com/dagger/dagger/pull/9628Find out more at https://docs.dagger.io/ai-agents/
Changed
/run/dagger/engine.sockby @sipsma in https://github.com/dagger/dagger/pull/9866The previous socket path still exists for backwards compatibility but may be removed in a future version.
Directory.globandDirectory.entriesnow return a trailing slash to distinguish from regular files by @jedevc in https://github.com/dagger/dagger/pull/9118What to do next?
v0.16.3Compare Source
Added
Directory.asGitAPI for converting a directory into a git repository by @jedevc in https://github.com/dagger/dagger/pull/9730dagger callforGitRepositoryandGitReftypes by @jedevc in https://github.com/dagger/dagger/pull/9844Container.asTarballby @jedevc in https://github.com/dagger/dagger/pull/9395Changed
Dependencies
What to do next?
v0.16.2Compare Source
Added
Directory.namefield to retrieve current directory name by @TomChv in https://github.com/dagger/dagger/pull/9617Fixed
dagger callordagger functionscalled in directory with no modules - it now errors cleanly by @sipsma in https://github.com/dagger/dagger/pull/9658dagger.jsonby @sipsma in https://github.com/dagger/dagger/pull/9659Dependencies
What to do next?
v0.16.1Compare Source
Fixed
cannot sub-select 1th item from *dagql.PostCallTypedby @sipsma in https://github.com/dagger/dagger/pull/9634What to do next?
v0.16.0Compare Source
🔥 Breaking Changes
To match automatic configuration,
insecure-entitlementsnow includessecurity.insecurewhen configuring the engine manually by @jedevc in https://github.com/dagger/dagger/pull/9513Module load performance is improved and related API refactored by @sipsma in https://github.com/dagger/dagger/pull/9505
Loading of modules (the
load modulestep shown in progress output) is faster now in many cases. In particular:Users of modules with large numbers of dependencies or in large git repositories are expected to see the most immediate benefit.
For some concrete numbers, here are
load moduletimes for thedagger-dev's module in Dagger's repository under different scenarios:dagger call --helpon new engines with an empty cachedagger call --helpwith no file changes in the repo:dagger call --helpafter making a change to a random source code file in the repo:These improvements in cache utilization are also setup for future improvements not only in
load moduletimes but function call times more generally.This improvement comes with a few breaking changes that are not expected to impact most users. However, the changes require that users upgrade their CLI to v0.16.0 in order to connect to v0.16.0 engines. Older CLIs will error when connecting to newer engines.
In terms of the breaking changes, impacted users are those who:
They may need to update their dagger.json configuration file to add an explicit
"include"setting to ensure those extra files or directories are loaded with the module. This is because numerous files previously implicitly loaded are now skipped by default, which contributes to the performance improvements.For example, if your module code is in
.daggerand relies on thego.modfile in the parent directory, you would add the following to yourdagger.jsonfile:The values in the
"include"array are relative to the directory containingdagger.json. They can be also be glob patterns (e.g."**/*.txt"). To explicitly exclude some files matched by a previous include pattern, you can prepend the include pattern with a!character (e.g."!**/foo.txt").excludesetting existed but has now been superseded by prefixing an include pattern with a!character. However, this is backwards-compatible, so existingexcludesettings will be automatically turned into equivalent!-prefixed include settings when runningdagger develop. No user intervention is needed.The core API's
ModuleSourceandModuletypes have also undergone some cleanup that includes breaking changes. Most users do not interact with these APIs, but any that do may need some minor adjustments to their code. In particular:Module.initializeno longer needs to be called; the module is initialized on creationResolveFromCallerno longer needs to be called for local module sources; context is automatically loaded and resolved efficiently as needed by other API callsAdded
dag.Hostoperations by @jedevc in https://github.com/dagger/dagger/pull/9610What to do next?
v0.15.4Compare Source
Added
dagger.jsonsdkfield tosdk.sourceby @rajatjindal in https://github.com/dagger/dagger/pull/9454Fixed
What to do next?
v0.15.3Compare Source
Added
Note: the precision of float is limited to float64 inside the engine.
Fixed
Container.WithFilesby @jedevc in https://github.com/dagger/dagger/pull/9457Dependencies
What to do next?
v0.15.2Compare Source
Added
dagger updatecommand to update dependencies indagger.jsonby @rajatjindal in https://github.com/dagger/dagger/pull/8839$schemaproperty indagger.jsonby @JacobLey in https://github.com/dagger/dagger/pull/9069Changed
CacheVolumesare now namespaced between different modules by @rajatjindal in https://github.com/dagger/dagger/pull/8724CACHEDoperations for--progress=plainoutput by @marcosnils in https://github.com/dagger/dagger/pull/9344Fixed
AsServiceby @marcosnils in https://github.com/dagger/dagger/pull/9247Container.terminalby @jedevc in https://github.com/dagger/dagger/pull/9338Container.upbehaves as identically as possible toContainer.AsService.upby @jedevc in https://github.com/dagger/dagger/pull/9231dagger installalways inserts dependencies in the right order by @jedevc in https://github.com/dagger/dagger/pull/9052What to do next?
v0.15.1Compare Source
Fixed
What to do next?
v0.13.7Added
expectarg forContainer.withExecby @jedevc in https://github.com/dagger/dagger/pull/8466This enum arg allows specifying valid return statuses for which the command
can return without failing immediately.
Container.exitCodefield to get the exit code of the lastwithExecby @jedevc in https://github.com/dagger/dagger/pull/8466Changed
The new policies attempt to co-operate with other applications using the disk
and will adjust its cache usage accordingly.
Previously, when a function chain in
dagger callended in an object, we'dprint all functions that return a simple value and don't have any arguments.
Now, only object fields will be included, not all functions.
Fixed
withExecs using theExperimentalPrivilegedNestingflag by @sipsma in https://github.com/dagger/dagger/pull/8776What to do next?
v0.11.9Compare Source
Fixed
What to do next?
v0.9.8Compare Source
🔥 Breaking Changes
Added
What to do next?
v0.3.3Compare Source
v0.3.2Compare Source
v0.3.1Compare Source
v0.3.0Compare Source
tokio-rs/tokio (tokio)
v1.48.0: Tokio v1.48.0Compare Source
1.48.0 (October 14th, 2025)
The MSRV is increased to 1.71.
Added
File::max_buf_size(#7594)ChainofAsyncReadExt::chain(#7599)SocketAddr::as_abstract_name(#7491)TcpStream::quickackandTcpStream::set_quickack(#7490)AsRef<Self>forTcpStreamandUnixStream(#7573)LocalKey::try_get(#7666)Ordfortask::Id(#7530)Changed
max_buf_sizewhen cloning aFile(#7593)clippy::unwrap_in_resultin#[tokio::main](#7651)PollEventednoise from Debug formats (#7675)Command::spawn_withto useFnOnce(#7511)SetOnce(#7554)UnsafeCell::get_mutinMutex::get_mutandRwLock::get_mut(#7569)Timeout<T>::poll(#7535)Fixed
join!andtry_join!(#7638)wake_by_ref()even if already woken (#7622)broadcast::Senderinbroadcast::Sender::new()(#7629)RwLock::try_*methods (#7587)Unstable
--cfgflags fortaskdumpandio_uring(#7655, #7621)io_uringinfs::write(#7567)io_uringwithFile::open()(#7617)io_uringwithOpenOptions(#7321)localruntime flavor (#7375, #7597)Documented
AsyncRead::poll_read(#7580)AsyncFdreadiness guards (#7583)UCred::pid()on Cygwin (#7611)set_reuseport()andreuseport()(#7628)SO_REUSEADDRis only set on Unix (#7533)Handle::block_on(#7665)Builder::global_queue_interval()(#7605)tokio::sync::watch::Receiver(#7584)SetOnce::wait(#7506)parking_lotfeature flag (#7663)UnboundedSender::send(#7661)sync::watch(#7601)spawn_localmethods (#7669)poll_proceed(#7586)v1.47.2Compare Source
v1.47.1: Tokio v1.47.1Compare Source
1.47.1 (August 1st, 2025)
Fixed
asyncio.EventinSetOncedocs (#7485)v1.47.0: Tokio v1.47.0Compare Source
1.47.0 (July 25th, 2025)
This release adds
poll_proceedandcooperativeto thecoopmodule forcooperative scheduling, adds
SetOnceto thesyncmodule which providessimilar functionality to [
std::sync::OnceLock], and adds a new methodsync::Notify::notified_owned()which returns anOwnedNotifiedwithouta lifetime parameter.
Added
cooperativeandpoll_proceed(#7405)SetOnce(#7418)sync::Notify::notified_owned()(#7465)Changed
AtomicWaker::wakeperformance (#7450)Documented
Readiness<'_>(#7415)v1.46.1: Tokio v1.46.1Compare Source
1.46.1 (July 4th, 2025)
This release fixes incorrect spawn locations in runtime task hooks for tasks spawned using
tokio::spawnrather thanRuntime::spawn. This issue only effected the spawn location inTaskMeta::spawned_at, and did not effect task locations in Tracing events.Unstable
TaskMeta::spawn_locationtracking where a task was spawned (#7440)v1.46.0: Tokio v1.46.0Compare Source
1.46.0 (July 2nd, 2025)
Fixed
TcpStream::shutdownincorrectly returning an error on macOS (#7290)Added
mpsc::OwnedPermit::{same_channel, same_channel_as_sender}methods (#7389)biasedoption forjoin!andtry_join!, similar toselect!(#7307)pope::OpenOptions::read_writeon Android (#7426)Cloneimplementation fornet::unix::SocketAddr(#7422)Changed
queue::Local<T>(#7340)LocalSet::{poll,drop}(#7372)Unstable
TaskMeta::spawn_locationtracking where a task was spawned (#7417)LocalOptionsparameter toruntime::Builder::build_local(#7346)Documented
start_seekis not used (#7366)AsyncWriteExt::flush(#7364)recv_buffer_sizemethod (#7336)RawFdinTcpSocketdocs (#7416)AsRawFddoc link to current Rust stdlib location (#7429)on_*_task_pollis unstable (#7311)time::advance(#7394)v1.45.1: Tokio v1.45.1Compare Source
1.45.1 (May 24th, 2025)
This fixes a regression on the wasm32-unknown-unknown target, where code that previously did not panic due to calls to
Instant::now()started failing. This is due to the stabilization of the first time-based metric.Fixed
v1.45.0: Tokio v1.45.0Compare Source
Added
worker_total_busy_duration,worker_park_count, andworker_unpark_count(#6899, #7276)Command::spawn_with(#7249)Changed
Unpinfor some trait impls (#7204)runtime::Handleas unwind safe (#7230)Unstable
v1.44.2: Tokio v1.44.2Compare Source
This release fixes a soundness issue in the broadcast channel. The channel
accepts values that are
Sendbut!Sync. Previously, the channel calledclone()on these values without synchronizing. This release fixes the channelby synchronizing calls to
.clone()(Thanks Austin Bonander for finding andreporting the issue).
Fixed
clone()call in broadcast channel (#7232)v1.44.1: Tokio v1.44.1Compare Source
1.44.1 (March 13th, 2025)
Fixed
block_in_placecontext (#7216)v1.44.0: Tokio v1.44.0Compare Source
1.44.0 (March 7th, 2025)
This release changes the
from_stdmethod on sockets to panic if a blocking socket is provided. We determined this change is not a breaking change as Tokio is not intended to operate using blocking sockets. Doing so results in runtime hangs and should be considered a bug. Accidentally passing a blocking socket to Tokio is one of the most common user mistakes. If this change causes an issue for you, please comment on #7172.Added
task::coopmodule (#7116)Command::get_kill_on_drop()(#7086)broadcast::Sender::closed(#6685, #7090)broadcast::WeakSender(#7100)oneshot::Receiver::is_empty()(#7153)oneshot::Receiver::is_terminated()(#7152)Fixed
Fileshould not start a background read (#7139)start_killon exited child should not fail (#7160)CTRL_CLOSE,CTRL_LOGOFF,CTRL_SHUTDOWNon windows (#7122)Changes
select!budget-aware (#7164)from_std(#7166)Changes to unstable APIs
Documented
select!alternatives (#7110)send_to(#7146)Childstdout (#7141)Child::killbehavior (#7162)ChildStdinstruct doc comment (#7192)worker_threadsinstead ofcore_threads(#7186)v1.43.3Compare Source
v1.43.2: Tokio v1.43.2Compare Source
1.43.2 (August 1st, 2025)
Fixed
v1.43.1Compare Source
v1.43.0: Tokio v1.43.0Compare Source
1.43.0 (Jan 8th, 2025)
Added
UdpSocket::peekmethods (#7068)Command::into_std()(#7014)SignalKind::infoon illumos (#6995)Fixed
set_lenbefore initializing vector inBlocking(#7054)clippy::needless_returnin#[tokio::main](#6874)Changes
unsync_load(#7073)Buf::put_bytesinRepeatread impl (#7055)Changes to unstable APIs
Documented
ReadBuf::uninitallows initialized buffers as well (#7053)TcpStream::try_write_vectoreddocs (#7067)LocalRuntimedoc links (#7074)watch::Receiver::wait_for(#7038)OnceCelldocs (#7047)v1.42.1: Tokio v1.42.1Compare Source
This release fixes a soundness issue in the broadcast channel. The channel accepts values that are
Sendbut!Sync. Previously, the channel calledclone()on these values without synchronizing. This release fixes the channel by synchronizing calls to.clone()(Thanks Austin Bonander for finding and reporting the issue).Fixed
clone()call in broadcast channel (#7232)v1.42.0: Tokio v1.42.0Compare Source
1.42.0 (Dec 3rd, 2024)
Added
AsyncFd::{try_io, try_io_mut}(#6967)Fixed
ptr->ref->ptrroundtrip in RegistrationSet (#6929)yield_nowinsideblock_in_place(#6999)Changes
Documented
tokio::net::unix::{pid_t, gid_t, uid_t}(#6791)Instantdocs (#6982)v1.41.1: Tokio v1.41.1Compare Source
1.41.1 (Nov 7th, 2024)
Fixed
netrequirement fornet::UdpSocketin docs (#6938)TcpStreaminternal comment (#6944)v1.41.0: Tokio v1.41.0Compare Source
1.41.0 (Oct 22th, 2024)
Added
global_queue_depth(#6854, #6918)SocketAddr(#6868)watch::Sender::sender_count(#6836)mpsc::Receiver::blocking_recv_many(#6867)Idapis (#6793, #6891)Added (unstable)
LocalRuntime(#6808)Changed
#[must_use]toNotified(#6828)watchcooperative (#6846)broadcast::Receivercooperative (#6870)cfg_fsforwasitarget (#6822)Fixed
Documented
OwnedFdwithAsyncFd(#6821)AsyncFdmethods (#6890)joinandtry_join(#6814, #6841)TcpSocket::set_nodelayandTcpSocket::nodelay(#6840)v1.40.0: Tokio v1.40.0Compare Source
1.40.0 (August 30th, 2024)
Added
util::SimplexStream(#6589)Command::process_group(#6731){TrySendError,SendTimeoutError}::into_inner(#6755)JoinSet::join_all(#6784)Added (unstable)
Builder::{on_task_spawn, on_task_terminate}(#6742)Changed
write_all_bufwhen possible (#6724)UnwindSafe(#6783)SleepandBatchSemaphoreinstrumentation explicit roots (#6727)NonZeroU64fortask::Id(#6733)JoinError(#6753)#[must_use]toJoinHandle::abort_handle(#6762)Documented
[build]section doesn't go in Cargo.toml (#6728)select!(#6774)v1.39.3: Tokio v1.39.3Compare Source
1.39.3 (August 17th, 2024)
This release fixes a regression where the unix socket api stopped accepting the abstract socket namespace. (#6772)
v1.39.2: Tokio v1.39.2Compare Source
1.39.2 (July 27th, 2024)
This release fixes a regression where the
select!macro stopped accepting expressions that make use of temporary lifetime extension. (#6722)v1.39.1: Tokio v1.39.1Compare Source
1.39.1 (July 23rd, 2024)
This release reverts "time: avoid traversing entries in the time wheel twice" because it contains a bug. (#6715)
v1.39.0: Tokio v1.39.0Compare Source
1.39.0 (July 23rd, 2024)
Added
AsyncSeekforEmpty(#6663)num_alive_tasks(#6619, #6667)Command::as_std_mut(#6608)watch::Sender::same_channel(#6637){Receiver,UnboundedReceiver}::{sender_strong_count,sender_weak_count}(#6661)Defaultforwatch::Sender(#6626)CloneforAbortHandle(#6621)consume_budget(#6622)Changed
ReadBuf::put_slice()(#6629)copy_bidirectionalandcopy(#6532)num_cpuswithavailable_parallelism(#6709)block_on(#6692)IntoFuturewithtimeout(#6666)IntoFuturewithjoin!andselect!(#6710)Fixed
Interval(#6612)Added (unstable)
unhandled_panicbehavior for#[tokio::main]and#[tokio::test](#6593)spawned_tasks_count(#6114)worker_park_unpark_count(#6696)Documented
tokio::io::stdoutdocumentation (#6674)join.rsandtry_join.rs(#6641)unhandled_panic(#6660)JoinSet::try_join_nextwhen all tasks are running (#6671)v1.38.2: Tokio v1.38.2Compare Source
This release fixes a soundness issue in the broadcast channel. The channel accepts values that are
Sendbut!Sync. Previously, the channel calledclone()on these values without synchronizing. This release fixes the channel by synchronizing calls to.clone()(Thanks Austin Bonander for finding and reporting the issue).Fixed
clone()call in broadcast channel (#7232)v1.38.1: Tokio v1.38.1Compare Source
1.38.1 (July 16th, 2024)
This release fixes the bug identified as (#6682), which caused timers not
to fire when they should.
Fixed
wake_upwhile holding all the locks of sharded time wheels (#6683)v1.38.0: Tokio v1.38.0Compare Source
This release marks the beginning of stabilization for runtime metrics. It
stabilizes
RuntimeMetrics::worker_count. Future releases will continue tostabilize more metrics.
Added
File::create_new(#6573)copy_bidirectional_with_sizes(#6500)AsyncBufReadforJoin(#6449)CloneforNamedPipeInfo(#6586)Notify::notify_last(#6520)mpsc::Receiver::{capacity,max_capacity}(#6511)splitmethod to the semaphore permit (#6472, #6478)tokio::task::join_set::Builder::spawn_blocking(#6578)Changed
#[tokio::test]append#[test]at the end of the attribute list (#6497)blocking_threadscount (#6551)RuntimeMetrics::worker_count(#6556)lifo_slotinblock_in_place(#6596)global_queue_intervalis zero (#6445)Semaphorefor task dumps (#6499)LocalKey::getwork with Clone types (#6433)true_whenfield inTimerShared(#6563)Fixed
Interval::poll_tick(#6487)is_emptyon mpsc block boundaries (#6603)Documented
stdindocumentation (#6581)ReadHalf::unsplit()documentation (#6498)select!(#6468)NamedPipeServerexample (#6590)SemaphorePermit,OwnedSemaphorePermit(#6477)Barrier::waitis not cancel safe (#6494)watch::Sender::{subscribe,closed}(#6490)spawn_blockingtasks (#6571)LocalSet::run_until(#6599)v1.37.0: Tokio v1.37.0Compare Source
1.37.0 (March 28th, 2024)
Added
set_max_buf_sizetotokio::fs::File(#6411)try_newandtry_with_interesttoAsyncFd(#6345)forget_permitsmethod to semaphore (#6331)is_closed,is_empty, andlento mpsc receivers (#6348)rwlock()method to ownedRwLockguards (#6418)Cloneforwatch::Sender(#6388)TaskLocalFuture::take_value(#6340)FromIteratorforJoinSet(#6300)Changed
io::splituse a mutex instead of a spinlock (#6403)Fixed
Documented
AsyncBufReadExt::fill_buf(#6431)AsyncReadExt's primitive read functions (#6337)Runtimeto#[tokio::main](#6366)enterexample deterministic (#6351)mpsc::Sender::downgradewith#[must_use](#6326)const_newbeforenew_with(#6392)Changed (unstable)
Idin taskdumps (#6328)unhandled_panicis enabled when not supported (#6410)v1.36.0: Tokio v1.36.0Compare Source
1.36.0 (February 2nd, 2024)
Added
tokio::io::Join(#6220)AsyncWriteforEmpty(#6235)UnixSocket(#6290)TcpSocket(#6311){Receiver,UnboundedReceiver}::poll_recv_many(#6236)Sender::{try_,}reserve_many(#6205)watch::Receiver::mark_unchanged(#6252)JoinSet::try_join_next(#6280)Changed
copycooperative (#6265)repeatandsinkcooperative (#6254)Documented
clear_readydocs (#6304)*Fdtraits onTcpSocketare unix-only (#6294)tokio::sync::Mutex(#6279)v1.35.1: Tokio v1.35.1Compare Source
1.35.1 (December 19, 2023)
This is a forward part of a change that was backported to 1.25.3.
Fixed
tokio::runtime::io::registration::async_io(#6221)v1.35.0: Tokio v1.35.0Compare Source
1.35.0 (December 8th, 2023)
Added
Changed
Sizedrequirements fromAsyncReadExt.read_buf(#6169)Runtimeunwind safe (#6189)Fixed
--cfg docsrswork without net feature (#6166)unsync_loadon miri (#6179)Documented
AsyncWriteExtexamples (#6149)LocalSet::run_until(#6147)v1.34.0: Tokio v1.34.0Compare Source
Fixed
clear_readinessafter io driver shutdown (#6067)take(#6080)broadcast::channellink (#6100)Changed
::corequalified imports instead of::stdinsidetokio::testmacro (#5973)Added
fs::read_dirto includeaix(#6075)mpsc::Receiver::recv_many(#6010)v1.33.0: Tokio v1.33.0Compare Source
1.33.0 (October 9, 2023)
Fixed
Interest::addwith#[must_use](#6037)watch::Receiver::wait_for(#6021)spawn_localsource location (#5984)Changed
watch(#6018)Added
tokio::fs::File(#5958)Interest::removemethod (#5906)DuplexStream(#5985)?Sizedbound to{MutexGuard,OwnedMutexGuard}::map(#5997)watch::Receiver::mark_unseen(#5962, #6014, #6017)watch::Sender::new(#5998)OnceCell::from_value(#5903)Removed
statsfeature (#5952)Documented
Child::waitis cancel safe (#5977)Semaphore(#5939, #5956, #5978, #6031, #6032, #6050)broadcastcapacity is a lower bound (#6042)const_newis not instrumented (#6002)mpsc::Sender::send(#5947)watchchannel (#5954)Unstable
v1.32.1: Tokio v1.32.1Compare Source
1.32.1 (December 19, 2023)
This is a forward part of a change that was backported to 1.25.3.
Fixed
tokio::runtime::io::registration::async_io(#6221)v1.32.0: Tokio v1.32.0Compare Source
Fixed
broadcast::Receiver(#5925)Added
Command::raw_arg(#5930)Unstable
v1.31.0: Tokio v1.31.0Compare Source
Fixed
WriteHalf::poll_write_vectored(#5914)Unstable
v1.30.0: Tokio v1.30.0Compare Source
1.30.0 (August 9, 2023)
This release bumps the MSRV of Tokio to 1.63. (#5887)
Changed
--cfg mio_unsupported_force_poll_pollflag (#5881)const_newmethods always available (#5885)Added
broadcast::Sender::new(#5824)UCredfor espidf (#5868)File::options()(#5869)Interval(#5878){ChildStd*}::into_owned_{fd, handle}(#5899)Removed
tokio_*cfgs (#5890)Documented
broadcast::send(#5820)AsyncReadExt::read_exact(#5863)Sleepas!Unpinin docs (#5916)raw_argnot showing up in docs (#5865)Unstable
v1.29.1: Tokio v1.29.1Compare Source
Fixed
block_in_placewith ablock_onbetween (#5837)v1.29.0: Tokio v1.29.0Compare Source
Technically a breaking change, the
Sendimplementation is removed fromruntime::EnterGuard. This change fixes a bug and should not impact most users.Breaking
EnterGuardshould not beSend(#5766)Fixed
fs::read_dir(#5653)JoinSet(#5693)EnterGuarddropped incorrect order (#5772)File(#5803)Changed
Added
broadcast::Receiver::blocking_recv(#5690)raw_argmethod toCommand(#5704)JoinSet::poll_join_next(#5721)Unstable
v1.28.2: Tokio v1.28.2Compare Source
1.28.2 (May 28, 2023)
Forward ports 1.18.6 changes.
Fixed
v1.28.1: Tokio v1.28.1Compare Source
1.28.1 (May 10th, 2023)
This release fixes a mistake in the build script that makes
AsFdimplementations unavailable on Rust 1.63. (#5677)Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Renovate Bot.
3c44e1eb1ctod9f03cb623fix(deps): update rust crate tokio to 1.28.1to fix(deps): update rust crate tokio to 1.28.2fix(deps): update rust crate tokio to 1.28.2to fix(deps): update rust crate tokio to 1.29.0d9f03cb623to56c0a8c100fix(deps): update rust crate tokio to 1.29.0to fix(deps): update rust crate tokio to 1.29.156c0a8c100toa78e755d61fix(deps): update rust crate tokio to 1.29.1to fix(deps): update rust crate tokio to 1.30.0a78e755d61toe1c0f2d517fix(deps): update rust crate tokio to 1.30.0to fix(deps): update rust crate tokio to 1.31.0e1c0f2d517tob08c9d805cb08c9d805cto4b442869adfix(deps): update rust crate tokio to 1.31.0to fix(deps): update all dependencies4b442869adto93b28e62eb93b28e62ebto90b99f2d6990b99f2d69to9822839f709822839f70toc76fa7a091c76fa7a091to68881b8b8168881b8b81tofc079e8ecbfc079e8ecbto37413b456237413b4562to32ce43345932ce433459to2ac81a9ee02ac81a9ee0to93533ce9d193533ce9d1tocefaf2c397cefaf2c397to6ec337119a6ec337119ato2cf26fec192cf26fec19tob0a09dce48b0a09dce48to5c626dfd585c626dfd58to0bc6f1f4eb0bc6f1f4ebtoe05ec441ffe05ec441ffto6ee9489e046ee9489e04tod466cdafe8d466cdafe8to50a1172a8f50a1172a8fto4f0503a9104f0503a910tob60bb24cdeb60bb24cdeto15d1b85c4f15d1b85c4ftoc078847d1ec078847d1eto86009fd0e386009fd0e3toa730fd9dc1a730fd9dc1to0afd01de1a0afd01de1ato66e4205bdc66e4205bdctofee0f8b94dfee0f8b94dtode2b72f3edde2b72f3edto43956115a043956115a0to1f6aea00f71f6aea00f7to3585c7860a3585c7860ato26a90622b826a90622b8toe3d1419a3ee3d1419a3eto3fb19806cf3fb19806cfto29a88e4b4129a88e4b41to2cf3346733View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.