A static nuget feed generator for Azure Storage, AWS S3, and more.
C#
415
548 commits
updated Oct 17, 2026
A static NuGet package feed generator. ☁️ + 📦 = ❄️
Sleet creates and updates NuGet v3 feeds as static files on Azure Blob Storage, Amazon S3, S3-compatible storage, or a local folder. NuGet clients restore packages straight from those files, so there is no server to run.
Documentation: emgarten.github.io/Sleet
.pdb files to debuggers from the same feed. See symbol server.Cache-Control headers for immutable and mutable feed files. See CDN and caching.Sleet requires the .NET 8 SDK or later. See Install Sleet for all options.
dotnet tool install -g sleet
sleet should now be on your PATH.
In CI scripts, pin a major version so a new major release can't change your build unexpectedly:
dotnet tool install -g sleet --version "7.*"
A local tool manifest pins an exact Sleet version for a repository:
dotnet new tool-manifest
dotnet tool install sleet
Commit the dotnet-tools.json file it creates, then run dotnet tool restore and use dotnet sleet.
With the .NET 10 SDK or later, dnx downloads and runs Sleet in one step:
dnx sleet createconfig
The SleetExe package contains a self-contained Sleet.exe for Windows x64 that doesn't need .NET installed.
Install the SleetLib NuGet package to access Sleet functionality programmatically from your own .NET applications. See SleetLib.
Create a feed on Azure Storage in three steps:
# 1. Generate a config file
sleet createconfig --azure
# 2. Edit sleet.json with your storage account URL and credentials
# 3. Push packages (the feed is created automatically on first push)
sleet push mypackage.1.0.0.nupkg
Then add the feed's index.json URL as a package source in NuGet. See Use a feed with NuGet.
For other storage backends see the documentation.
| Command | Description |
|---|---|
createconfig | Create a new sleet.json config file |
init | Initialize a new feed |
push | Push packages to a feed |
delete | Delete a package from a feed |
stats | Display package count on a feed |
validate | Verify all packages and resources are valid |
download | Download all packages from a feed to a local folder |
destroy | Delete all files from a feed |
recreate | Rebuild a feed from its packages |
feed-settings | Read or modify feed settings |
retention prune | Apply package retention rules |
retention settings | Configure package retention limits |
See commands for full details and options.
The documentation is published at emgarten.github.io/Sleet. The source files are in /doc.
Get started:
Guides:
Reference and help:
Also see this getting started blog post for a walkthrough.
We welcome contributions! If you are interested in contributing to Sleet, report an issue or open a pull request to propose a change. See CONTRIBUTING.md for how to build, test, and preview the documentation.
To build and run the unit tests locally:
# Linux / macOS
./build.sh
# Windows
./build.ps1
The functional tests run against Azure Storage and Amazon S3. By default, they run against local emulators in Docker, so you don't need a cloud account:
# Linux / macOS
./functional-tests.sh
# Windows
./functional-tests.ps1
See functional tests to run them against real accounts.
CI runs on Linux, macOS, and Windows.
Sleet was created to achieve the original goals of the NuGet v3 feed format: provide maximum availability and performance for NuGet restore by using only static files.
The v3 feed format was designed to do all compute when pushing a new package since updates are infrequent compared to the number of times a package is read for restore. Static files also remove the need to run a specific server to host the feed, allowing a simple file service to handle it.
Sleet is.. cold static packages from the cloud. ☁️ + 📦 = ❄️
152 followers · starred Jun 2021
1,474 followers · starred Mar 2018
726 followers · starred Jun 2026
433 followers · starred Oct 2022
A static nuget feed generator for Azure Storage, AWS S3, and more.
C#
415
548 commits
updated Oct 17, 2026
A static NuGet package feed generator. ☁️ + 📦 = ❄️
Sleet creates and updates NuGet v3 feeds as static files on Azure Blob Storage, Amazon S3, S3-compatible storage, or a local folder. NuGet clients restore packages straight from those files, so there is no server to run.
Documentation: emgarten.github.io/Sleet
.pdb files to debuggers from the same feed. See symbol server.Cache-Control headers for immutable and mutable feed files. See CDN and caching.Sleet requires the .NET 8 SDK or later. See Install Sleet for all options.
dotnet tool install -g sleet
sleet should now be on your PATH.
In CI scripts, pin a major version so a new major release can't change your build unexpectedly:
dotnet tool install -g sleet --version "7.*"
A local tool manifest pins an exact Sleet version for a repository:
dotnet new tool-manifest
dotnet tool install sleet
Commit the dotnet-tools.json file it creates, then run dotnet tool restore and use dotnet sleet.
With the .NET 10 SDK or later, dnx downloads and runs Sleet in one step:
dnx sleet createconfig
The SleetExe package contains a self-contained Sleet.exe for Windows x64 that doesn't need .NET installed.
Install the SleetLib NuGet package to access Sleet functionality programmatically from your own .NET applications. See SleetLib.
Create a feed on Azure Storage in three steps:
# 1. Generate a config file
sleet createconfig --azure
# 2. Edit sleet.json with your storage account URL and credentials
# 3. Push packages (the feed is created automatically on first push)
sleet push mypackage.1.0.0.nupkg
Then add the feed's index.json URL as a package source in NuGet. See Use a feed with NuGet.
For other storage backends see the documentation.
| Command | Description |
|---|---|
createconfig | Create a new sleet.json config file |
init | Initialize a new feed |
push | Push packages to a feed |
delete | Delete a package from a feed |
stats | Display package count on a feed |
validate | Verify all packages and resources are valid |
download | Download all packages from a feed to a local folder |
destroy | Delete all files from a feed |
recreate | Rebuild a feed from its packages |
feed-settings | Read or modify feed settings |
retention prune | Apply package retention rules |
retention settings | Configure package retention limits |
See commands for full details and options.
The documentation is published at emgarten.github.io/Sleet. The source files are in /doc.
Get started:
Guides:
Reference and help:
Also see this getting started blog post for a walkthrough.
We welcome contributions! If you are interested in contributing to Sleet, report an issue or open a pull request to propose a change. See CONTRIBUTING.md for how to build, test, and preview the documentation.
To build and run the unit tests locally:
# Linux / macOS
./build.sh
# Windows
./build.ps1
The functional tests run against Azure Storage and Amazon S3. By default, they run against local emulators in Docker, so you don't need a cloud account:
# Linux / macOS
./functional-tests.sh
# Windows
./functional-tests.ps1
See functional tests to run them against real accounts.
CI runs on Linux, macOS, and Windows.
Sleet was created to achieve the original goals of the NuGet v3 feed format: provide maximum availability and performance for NuGet restore by using only static files.
The v3 feed format was designed to do all compute when pushing a new package since updates are infrequent compared to the number of times a package is read for restore. Static files also remove the need to run a specific server to host the feed, allowing a simple file service to handle it.
Sleet is.. cold static packages from the cloud. ☁️ + 📦 = ❄️
152 followers · starred Jun 2021
1,474 followers · starred Mar 2018
726 followers · starred Jun 2026
433 followers · starred Oct 2022