SimpleCDN 1.0.2

dotnet add package SimpleCDN --version 1.0.2
                    
NuGet\Install-Package SimpleCDN -Version 1.0.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SimpleCDN" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SimpleCDN" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="SimpleCDN" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SimpleCDN --version 1.0.2
                    
#r "nuget: SimpleCDN, 1.0.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=SimpleCDN&version=1.0.2
                    
Install SimpleCDN as a Cake Addin
#tool nuget:?package=SimpleCDN&version=1.0.2
                    
Install SimpleCDN as a Cake Tool

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 you from having files in memory multiple times with multiple instances.

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 is Powered by SimpleCDN, with a link to the github repo.
  • options.PageTitle: Set a custom title for generated index pages. Default is SimpleCDN.
  • options.AllowDotfileAccess: Whether to allow access to files starting with a dot. Default is false.
  • options.ShowDotFiles: Whether to show files starting with a dot. Default is false. If options.AllowDotfileAccess is false, this option is ignored.
  • options.BlockRobots: Whether to block robots from indexing the CDN. Default is true.

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 is 8_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 is 500_000 (500MB). When this limit is passed, the least recently used files are removed from the cache until the size is below the limit.
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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
1.0.2 101 2/21/2025
1.0.1 101 2/11/2025
1.0.0 106 2/11/2025
0.9.0-pre1 74 1/29/2025
0.8.0 100 1/23/2025
0.8.0-rc7 87 1/23/2025
0.8.0-rc6 88 1/21/2025
0.8.0-rc5 74 1/17/2025
0.8.0-rc4 74 1/16/2025
0.8.0-rc3 68 1/15/2025
0.8.0-pre9 66 1/15/2025
0.8.0-pre8 67 1/15/2025
0.8.0-pre7 66 1/15/2025
0.8.0-pre6 64 1/14/2025
0.8.0-pre5 63 1/14/2025
0.8.0-pre4 77 1/11/2025
0.8.0-pre3 84 1/11/2025
0.8.0-pre11 76 1/17/2025
0.8.0-pre10 74 1/17/2025