v0.5.0
Download tool@version from the constructed nupkg URL — no version-index round-trip unless that GET is 404.
Exact-version download
A first ndnx stop@2.1.0 now:
- Resolves
PackageBaseAddressfrom the v3 service index (kept in memory for the process) - GETs
{base}{id}/{version}/{id}.{version}.nupkg - Lists versions only if that GET returns 404
A RID hop (stop → stop.win-x64) reuses the cached service index and the same constructed URL, so index.json is not fetched again.
Unspecified version or @* still lists the feed for latest, same as dnx. An exact version already in the global packages folder is still a cache hit with no network.
Startup time
Cold is empty-cache download → start; cached is start only (tool@version). linux-x64 (WSL2) is SDK 10.0.110; win-x64 is SDK 10.0.303.
| Tool | Runner | Cold linux-x64 | Cold win-x64 | Cached linux-x64 | Cached win-x64 |
|---|---|---|---|---|---|
stop@2.1.0 (native AOT) |
dnx |
2.2 s | 2.1 s | 580 ms | 520 ms |
ndnx |
1.2 s | 1.5 s | 10 ms | 34 ms | |
dotnetsay@1.0.0 (framework-dependent) |
dnx |
1.6 s | 1.8 s | 570 ms | 545 ms |
ndnx |
849 ms | 1.1 s | 12 ms | 50 ms |
Isolated NUGET_PACKAGES, source https://kzu.blob.core.windows.net/nuget/index.json. Cold is the median of 3 empty-cache runs. Cached is the median of 10 runs after one seed.
Sponsors
The following sponsors made this release possible: @clarius, @MFB-Technologies-Inc, @sandrock, @drivenet, @Keflon, @tbolon, @kfrancis, @rbnswartz, @jfoshee, @Mrxx99, @eajhnsn1, @Jonathan-Hickey, @KenBonny, @SimonCropp, @agileworks-eu, @arsdragonfly, @vezel-dev, @ChilliCream, @4OTC, @DominicSchell, @adalon, @torutek, @mccaffers, @SeikaLogiciel, @wizardness, @eska-gmbh, @geodata-no.
Thanks 💜