Awesome
Build Status
AppVeyor | Azure Pipelines | Github |
---|---|---|
What is Sleet?
Sleet is a static NuGet package feed generator.
- Serverless. Create static feeds directly on Azure Storage, Amazon S3 or another S3 compatible storage. No compute required.
- Cross platform. Sleet is built in .NET, it can run on .NET Framework, Mono, or dotnet CLI
- Fast. Static feeds are created using the NuGet v3 feed format.
- Simple. Sleet is a simple command line tool that can add, remove, and update packages.
- Flexible. Configuration and credentials can be set using files, env vars, command line args, or AWS specific patterns to support a variety of workflows and CI builds.
Why use static feeds?
- Package binaries are typically kept outside of git repos, static feeds provide a long term storage solution that can be paired with checked in code.
- NuGet feeds are typically read for restore far more than they are updated.
- Cloud storage accounts are a cheap and secure way to share nupkgs for public feeds.
- You keep full control of your packages.
Getting Sleet
Manually getting sleet.exe (Windows and Mono)
- Download the latest SleetExe nupkg from NuGet.org
- Extract tools/Sleet.exe to a local folder and run it.
Install dotnet global tool
dotnet tool install -g sleet
sleet
should now be on your PATH
Read the guides
Documentation can be found in this repo under /doc
Quick start guides
These provide a walk through on the basics of configuring sleet, creating, and using a feed.
- Setting up an Azure feed
- Setting up an AWS S3 feed
- Setting up a local feed with IIS hosting
- Integration with CI Server
- Setting up a private feed on AWS using S3 + CloudFront + Lambdas
Check out the full getting started guide here.
CI builds
CI builds are located on the following NuGet feed:
https://nuget.blob.core.windows.net/packages/index.json
The list of packages on this feed is here.
Contributing
We welcome contributions. If you are interested in contributing to Sleet report an issue or open a pull request to propose a change.
Sleet is..
Cold static packages from the cloud. ☁️ + 📦 = ❄️
History
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.
Related projects
- Sleet.Azure provides MSBuild props/targets for running Sleet.
- Sleet.Search provides a search service for Sleet feeds.