SimpleCDN 0.8.0
dotnet add package SimpleCDN --version 0.8.0
NuGet\Install-Package SimpleCDN -Version 0.8.0
<PackageReference Include="SimpleCDN" Version="0.8.0" />
paket add SimpleCDN --version 0.8.0
#r "nuget: SimpleCDN, 0.8.0"
// Install SimpleCDN as a Cake Addin #addin nuget:?package=SimpleCDN&version=0.8.0 // Install SimpleCDN as a Cake Tool #tool nuget:?package=SimpleCDN&version=0.8.0
SimpleCDN
SimpleCDN is one of the simplest and easiest-to-use CDN servers. All you need for a basic setup is two extra lines in your startup code:
var builder = WebApplication.CreateBuilder();
+ var cdnBuilder = builder.Services.AddSimpleCDN(options => options.DataRoot = "/var/www/static");
var app = builder.Build();
+ app.MapGroup("/cdn").MapSimpleCDN();
This will map the SimpleCDN endpoint to /cdn
and serve files from /var/www/static
.
Features
- Automatic compression (currently supported: gzip, deflate, brotli)
- In-memory caching
- Redis caching, with the SimpleCDN.Extensions.Redis package. Although it's a few milliseconds slower than the in-memory cache, it saves a load of memory with multiple instances.
[!WARNING]
While Redis support is available, it may be unstable, especially in high-load scenario's (tens of requests per second). By implementing a custom connection manager, it's brought down to a minimum but failures still happen. In such cases, SimpleCDN will load the data from disk directly instead of using the cache.
SimpleCDN is also available as a standalone application with a docker container: ghcr.io/jonathanbout/simplecdn.
Configuration
General configuration
This configuration is for general settings for the CDN server.
var cdnBuilder = builder.Services.AddSimpleCDN(options => { ... });
// or
cdnBuilder.Configure(options => { ... });
options.DataRoot
: The root directory to serve files from. This is a required property.options.Footer
: Set a custom footer for generated index pages. Default isPowered by SimpleCDN
, with a link to the github repo.options.PageTitle
: Set a custom title for generated index pages. Default isSimpleCDN
.options.AllowDotfileAccess
: Whether to allow access to files starting with a dot. Default isfalse
.options.ShowDotFiles
: Whether to show files starting with a dot. Default isfalse
. Ifoptions.AllowDotfileAccess
isfalse
, this option is ignored.options.BlockRobots
: Whether to block robots from indexing the CDN. Default istrue
.
General caching configuration
This configuration is used by the Cache Manager and uses it to configure the caching provider.
cdnBuilder.ConfigureCaching(options => { ... });
options.MaxAge
: The maximum time a file can be unused before it is removed from the cache. Default is 1 hour.options.MaxItemSize
: The maximum size of a file to cache in kB. When the size of a file exceeds this threshold, it will be streamed directly from disk. Default is8_000
(8 MB).
In-memory caching configuration
This configuration is used by the in-memory cache provider.
cdnBuilder.AddInMemoryCache(options => { ... });
options.MaxSize
: The maximum size of the cache in kB. Default is500_000
(500MB). When this limit is passed, the least recently used files are removed from the cache until the size is below the limit.options.PurgeInterval
: The interval at which the cache is purged of unused files, in minutes. Default is5
. Set to0
to disable purging. Note that disabling purging means the MaxAge cache configuration property will not be respected.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on SimpleCDN:
Package | Downloads |
---|---|
SimpleCDN.Extensions.Redis
An extension for using Redis with SimpleCDN, the static file server. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.8.0 | 0 | 1/23/2025 |
0.8.0-rc7 | 0 | 1/23/2025 |
0.8.0-rc6 | 36 | 1/21/2025 |
0.8.0-rc5 | 28 | 1/17/2025 |
0.8.0-rc4 | 32 | 1/16/2025 |
0.8.0-rc3 | 29 | 1/15/2025 |
0.8.0-pre9 | 26 | 1/15/2025 |
0.8.0-pre8 | 25 | 1/15/2025 |
0.8.0-pre7 | 29 | 1/15/2025 |
0.8.0-pre6 | 21 | 1/14/2025 |
0.8.0-pre5 | 23 | 1/14/2025 |
0.8.0-pre4 | 32 | 1/11/2025 |
0.8.0-pre3 | 38 | 1/11/2025 |
0.8.0-pre11 | 29 | 1/17/2025 |
0.8.0-pre10 | 28 | 1/17/2025 |