CosmoS3 1.7.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package CosmoS3 --version 1.7.0
                    
NuGet\Install-Package CosmoS3 -Version 1.7.0
                    
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="CosmoS3" Version="1.7.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CosmoS3" Version="1.7.0" />
                    
Directory.Packages.props
<PackageReference Include="CosmoS3" />
                    
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 CosmoS3 --version 1.7.0
                    
#r "nuget: CosmoS3, 1.7.0"
                    
#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.
#:package CosmoS3@1.7.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CosmoS3&version=1.7.0
                    
Install as a Cake Addin
#tool nuget:?package=CosmoS3&version=1.7.0
                    
Install as a Cake Tool

CosmoS3

An Amazon S3-compatible object storage server built on CosmoApiServer.Core.

NuGet Package

dotnet add package CosmoS3

Quick Start (Executable Host)

dotnet run --project src/CosmoS3.Host

Example Configuration

Create src/CosmoS3.Host/appsettings.json (SQLite example):

{
  "Port": 8100,
  "ValidateSignatures": false,
  "HeaderApiKey": "x-api-key",
  "AdminApiKey": "changeme-admin-key",
  "RegionString": "us-east-1",
  "Database": {
    "DatabaseType": "sqlite",
    "ConnectionString": "Data Source=./data/cosmos3.db;"
  },
  "Storage": {
    "StorageType": "Disk",
    "DiskDirectory": "./disk/",
    "TempDirectory": "./temp/"
  }
}

Run

dotnet run --project src/CosmoS3.Host

Example (SQL Server)

Set DatabaseType to mssql:

{
  "Database": {
    "DatabaseType": "mssql",
    "ConnectionString": "Server=localhost,1433;Database=cosmos3;User Id=sa;Password=YourPassword;TrustServerCertificate=True;"
  }
}

Performance

CosmoS3 is optimized for high-throughput streaming. Recent benchmarks using the MinIO warp tool show that CosmoS3's asynchronous, pipeline-based architecture allows it to compete with and sometimes exceed specialized S3 servers for common workloads.

Benchmark: CosmoS3 vs. MinIO (Throughput in MiB/s)

Operation Concurrency Object Size MinIO (Docker) CosmoS3 (Optimized)
PUT 32 1 MiB 397.55 451.60
PUT 32 16 MiB 476.21 794.90
GET 8 16 MiB 848.62 890.11

Benchmarks conducted on local NVMe storage using SQLite for metadata. Higher concurrency performance (+240% throughput gain over previous versions) was achieved by eliminating thread-blocking calls and optimizing database indexing.

Features

  • S3 service operations: list buckets, service exists.
  • Buckets: create/delete, list objects, location, ACLs, tags, versioning, website config, list versions, list multipart uploads.
  • Objects: PUT/GET/HEAD, range GET, copy (server-side), delete, multi-delete, ACLs, tags.
  • Multipart upload: initiate, upload part, list parts, complete, abort.
  • Authentication: Signature V4, Signature V2, presigned URLs.
  • URL styles: path-style and virtual-hosted-style buckets.
  • Static website hosting: index document, redirects, routing rules.
  • Storage: disk backend (pluggable storage driver interface).
  • Metadata: SQL-backed (SQLite, PostgreSQL, MySQL, SQL Server).
  • Admin API: header-based admin access (HeaderApiKey/AdminApiKey).
  • CORS and basic logging controls via appsettings.json.

For deeper details, see src/CosmoS3/README.md.

Supported Databases

Database Host Project Default Port
SQLite CosmoS3Host.SQLite 18002
PostgreSQL CosmoS3Host.Postgres 18003
MySQL CosmoS3Host.MySQL 18004
SQL Server CosmoS3Host.SqlServer 18005

Configuration

Each host reads from appsettings.json. See samples/CosmoS3Host.SQLite/appsettings.json for an example.

License

MIT

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.9.16 39 4/26/2026
1.9.15 45 4/25/2026
1.9.14 39 4/25/2026
1.9.13 42 4/25/2026
1.9.12 37 4/25/2026
1.9.11 99 4/13/2026
1.9.10 86 4/7/2026
1.9.9 90 4/4/2026
1.9.8 79 4/4/2026
1.9.7 101 4/4/2026
1.9.6 86 4/4/2026
1.9.5 90 4/4/2026
1.9.4 96 3/31/2026
1.9.3 94 3/30/2026
1.9.2 150 3/28/2026
1.9.1 92 3/26/2026
1.9.0 89 3/24/2026
1.8.0 97 3/17/2026
1.7.0 98 3/17/2026
1.0.1 86 4/7/2026
Loading failed