FastEndpoints 1.0.0-beta2

Prefix Reserved
This is a prerelease version of FastEndpoints.
There is a newer version of this package available.
See the version list below for details.
dotnet add package FastEndpoints --version 1.0.0-beta2                
NuGet\Install-Package FastEndpoints -Version 1.0.0-beta2                
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="FastEndpoints" Version="1.0.0-beta2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FastEndpoints --version 1.0.0-beta2                
#r "nuget: FastEndpoints, 1.0.0-beta2"                
#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.
// Install FastEndpoints as a Cake Addin
#addin nuget:?package=FastEndpoints&version=1.0.0-beta2&prerelease

// Install FastEndpoints as a Cake Tool
#tool nuget:?package=FastEndpoints&version=1.0.0-beta2&prerelease                

FastEndpoints

An easy to use Web API framework (which encourages CQRS and Vertical Slice Architecture) built as an extension to the Asp.Net pipeline. FastEndpoints is 2X faster; uses only half the memory; and outperforms a traditional MVC controller by about 39,0000 requests per second on a typical desktop computer. It is a great alternative to the new minimal APIs that require manual endpoint mapping.

Try it out...

install from nuget: Install-Package FastEndpoints (currently beta)

note: the minimum required sdk version is .net 6.0 (preview at the moment)

Code Sample:

Program.cs

using FastEndpoints;

var builder = WebApplication.CreateBuilder();
builder.Services.AddFastEndpoints();
builder.Services.AddAuthenticationJWTBearer("SecretKey");

var app = builder.Build();
app.UseAuthentication();
app.UseAuthorization();
app.UseFastEndpoints();
app.Run();

Request DTO

public class MyRequest : IRequest
{
    [From(Claim.UserName)]
    public string UserName { get; set; }  //this value will be auto populated from the user claim

    public int Id { get; set; }
    public string? Name { get; set; }
    public int Price { get; set; }
}

Response DTO

public class Response : IResponse
{
    public string? Name { get; internal set; }
    public int Price { get; set; }
    public string? Message { get; set; }
}

Endpoint Definition

public class MyEndpoint : Endpoint<MyRequest>
{
    public ILogger<MyEndpoint>? Logger { get; set; } //automatically injected from services

    public MyEndpoint()
    {
        //no longer hindered by attribute limitations
        Routes("/api/test/{id}");
        Verbs(Http.POST, Http.PATCH);
        Roles("Admin", "Manager");
        Policies("ManagementTeamCanAccess", "AuditorsCanAccess");
        Permissions(
            Allow.Inventory_Create_Item,
            Allow.Inventory_Retrieve_Item,
            Allow.Inventory_Update_Item); //declarative permission based authentication
    }

    protected override async Task ExecuteAsync(MyRequest req, CancellationToken ct)
    {
        //can do further validation here in addition to FluentValidations rules
        if (req.Price < 100)
            AddError(r => r.Price, "Price is too low!");

        AddError("This is a general error!");

        ThrowIfAnyErrors(); //breaks the flow and sends a 400 error response containing error details.

        Logger.LogInformation("this is your first endpoint!"); //dependency injected logger

        var isProduction = Env.IsProduction(); //read environment
        var smtpServer = Config["SMTP:HostName"]; //read configuration

        var res = new MyResponse //typed response to make integration tests convenient
        {
            Message = $"the route parameter value is: {req.Id}",
            Name = req.Name,
            Price = req.Price
        };

        await SendAsync(res);
    }
}

that's mostly it. all of your Endpoint definitions are automatically discovered on app startup and routes automatically mapped.

Documentation

proper documentation will be available within a few weeks once v1.0 is released. in the meantime have a browse through the Web, Test and Benchmark projects to see more examples.

Benchmark results

Bombardier load test

FastEndpoints (39,500 requests more per second than mvc controller)

Statistics        Avg      Stdev        Max
  Reqs/sec    110569.18    4482.43  124218.28
  Latency        0.90ms    50.54us    16.00ms
  HTTP codes:
    1xx - 0, 2xx - 1105885, 3xx - 0, 4xx - 0, 5xx - 0
    others - 0
  Throughput:    55.47MB/s

AspNet MapControllers

Statistics        Avg      Stdev        Max
  Reqs/sec     71621.34    3551.21  100210.44
  Latency        1.39ms   186.22us    42.00ms
  HTTP codes:
    1xx - 0, 2xx - 716949, 3xx - 0, 4xx - 0, 5xx - 0
    others - 0
  Throughput:    35.95MB/s

AspNet MVC Controller

Statistics        Avg      Stdev        Max
  Reqs/sec     70981.56    2983.29   78947.63
  Latency        1.40ms   118.66us    27.00ms
  HTTP codes:
    1xx - 0, 2xx - 710040, 3xx - 0, 4xx - 0, 5xx - 0
    others - 0
  Throughput:    35.48MB/s

parameters used: -c 100 -m POST -f "body.json" -H "Content-Type:application/json" -d 10s http://localhost:5000/Home/Index/123

BenchmarkDotNet head-to-head results

Method Mean Error StdDev Ratio RatioSD Gen 0 Gen 1 Allocated
FastEndpointsEndpoint 75.30 μs 1.252 μs 1.171 μs 1.00 0.00 2.4414 - 21 KB
AspNetMapControllers 144.44 μs 2.778 μs 3.307 μs 1.92 0.04 5.3711 0.2441 44 KB
AspNetMVCController 148.82 μs 2.110 μs 1.974 μs 1.98 0.04 5.3711 - 45 KB
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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 was computed.  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.

NuGet packages (130)

Showing the top 5 NuGet packages that depend on FastEndpoints:

Package Downloads
FastEndpoints.Swagger

Swagger support for FastEndpoints.

Elsa

Bundles the most commonly-used packages when building an Elsa workflows application.

FastEndpoints.Security

Security library for FastEndpoints.

Elsa.Workflows.Management

Provides workflow management functionality.

Elsa.Api.Common

Provides common features to modules that expose API endpoints.

GitHub repositories (17)

Showing the top 5 popular GitHub repositories that depend on FastEndpoints:

Repository Stars
ardalis/CleanArchitecture
Clean Architecture Solution Template: A proven Clean Architecture Template for ASP.NET Core 9
elsa-workflows/elsa-core
A .NET workflows library
RRQM/TouchSocket
TouchSocket is an integrated .NET networking framework that includes modules for socket, TCP, UDP, SSL, named pipes, HTTP, WebSocket, RPC, and more. It offers a one-stop solution for TCP packet issues and enables quick implementation of custom data message parsing using protocol templates.
CodeMazeBlog/CodeMazeGuides
The main repository for all the Code Maze guides
Elfocrash/clean-minimal-api
A project showcasing how you can build a clean Minimal API using FastEndpoints
Version Downloads Last updated
6.0.0-beta.3 35 2 days ago
6.0.0-beta.2 407 9 days ago
6.0.0-beta.1 97 12 days ago
5.35.0.603-beta 311 15 days ago
5.35.0.602-beta 189 16 days ago
5.35.0.601-beta 159 16 days ago
5.35.0.600-beta 246 17 days ago
5.35.0.3-beta 294 19 days ago
5.35.0.2-beta 225 19 days ago
5.35.0.1-beta 269 21 days ago
5.35.0 35,072 22 days ago
5.34.0.19-beta 385 23 days ago
5.34.0.18-beta 201 25 days ago
5.34.0.17-beta 125 a month ago
5.34.0.16-beta 129 a month ago
5.34.0.15-beta 137 a month ago
5.34.0.14-beta 140 a month ago
5.34.0.13-beta 158 a month ago
5.34.0.12-beta 182 a month ago
5.34.0.11-beta 117 a month ago
5.34.0.10-beta 183 a month ago
5.34.0.9-beta 123 a month ago
5.34.0.8-beta 131 a month ago
5.34.0.7-beta 246 a month ago
5.34.0.6-beta 197 a month ago
5.34.0.5-beta 119 a month ago
5.34.0.4-beta 116 a month ago
5.34.0.3-beta 780 a month ago
5.34.0.2-beta 205 a month ago
5.34.0.1-beta 132 a month ago
5.34.0 112,192 2 months ago
5.33.0.13-beta 538 2 months ago
5.33.0.12-beta 1,005 2 months ago
5.33.0.11-beta 379 2 months ago
5.33.0.10-beta 138 2 months ago
5.33.0.9-beta 1,097 2 months ago
5.33.0.8-beta 600 2 months ago
5.33.0.7-beta 126 2 months ago
5.33.0.6-beta 1,004 3 months ago
5.33.0.5-beta 758 3 months ago
5.33.0.3-beta 156 3 months ago
5.33.0.2-beta 225 3 months ago
5.33.0.1-beta 261 3 months ago
5.33.0 154,810 3 months ago
5.32.0.16-beta 254 3 months ago
5.32.0.15-beta 181 3 months ago
5.32.0.14-beta 196 3 months ago
5.32.0.13-beta 322 3 months ago
5.32.0.12-beta 238 3 months ago
5.32.0.11-beta 149 3 months ago
5.32.0.10-beta 259 3 months ago
5.32.0.9-beta 149 3 months ago
5.32.0.8-beta 141 3 months ago
5.32.0.7-beta 576 3 months ago
5.32.0.6-beta 221 3 months ago
5.32.0.5-beta 254 4 months ago
5.32.0.4-beta 144 4 months ago
5.32.0.3-beta 396 4 months ago
5.32.0.2-beta 170 4 months ago
5.32.0.1-beta 260 4 months ago
5.32.0 161,285 4 months ago
5.31.0.18-beta 402 4 months ago
5.31.0.17-beta 1,659 4 months ago
5.31.0.16-beta 126 4 months ago
5.31.0.15-beta 930 4 months ago
5.31.0.14-beta 211 4 months ago
5.31.0.13-beta 154 4 months ago
5.31.0.12-beta 189 4 months ago
5.31.0.11-beta 124 4 months ago
5.31.0.10-beta 175 4 months ago
5.31.0.9-beta 588 4 months ago
5.31.0.8-beta 351 4 months ago
5.31.0.7-beta 228 4 months ago
5.31.0.6-beta 691 4 months ago
5.31.0.5-beta 553 5 months ago
5.31.0.4-beta 166 5 months ago
5.31.0.3-beta 522 5 months ago
5.31.0.2-beta 141 5 months ago
5.31.0.1-beta 281 5 months ago
5.31.0 238,994 5 months ago
5.30.0.23-beta 239 5 months ago
5.30.0.22-beta 141 5 months ago
5.30.0.21-beta 154 5 months ago
5.30.0.20-beta 124 5 months ago
5.30.0.19-beta 611 5 months ago
5.30.0.18-beta 193 5 months ago
5.30.0.17-beta 130 5 months ago
5.30.0.16-beta 161 5 months ago
5.30.0.15-beta 290 5 months ago
5.30.0.14-beta 534 5 months ago
5.30.0.13-beta 615 5 months ago
5.30.0.12-beta 118 5 months ago
5.30.0.11-beta 301 5 months ago
5.30.0.10-beta 2,265 5 months ago
5.30.0.9-beta 223 5 months ago
5.30.0.8-beta 135 5 months ago
5.30.0.7-beta 119 5 months ago
5.30.0.6-beta 834 6 months ago
5.30.0.5-beta 129 6 months ago
5.30.0.4-beta 133 6 months ago
5.30.0.3-beta 134 6 months ago
5.30.0.2-beta 115 6 months ago
5.30.0.1-beta 122 6 months ago
5.30.0 210,878 6 months ago
5.29.0.13-beta 112 6 months ago
5.29.0.12-beta 583 6 months ago
5.29.0.11-beta 974 6 months ago
5.29.0.10-beta 126 6 months ago
5.29.0.8-beta 242 6 months ago
5.29.0.7-beta 186 6 months ago
5.29.0.6-beta 166 6 months ago
5.29.0.5-beta 140 6 months ago
5.29.0.4-beta 161 6 months ago
5.29.0.3-beta 231 6 months ago
5.29.0.2-beta 161 6 months ago
5.29.0.1-beta 829 7 months ago
5.29.0 157,443 7 months ago
5.28.0.7-beta 161 7 months ago
5.28.0.6-beta 2,498 7 months ago
5.28.0.5-beta 441 8 months ago
5.28.0.4-beta 173 8 months ago
5.28.0.3-beta 379 8 months ago
5.28.0.2-beta 922 8 months ago
5.28.0.1-beta 143 8 months ago
5.28.0 189,717 8 months ago
5.27.0.14-beta 145 8 months ago
5.27.0.13-beta 640 8 months ago
5.27.0.12-beta 400 8 months ago
5.27.0.11-beta 227 8 months ago
5.27.0.10-beta 198 8 months ago
5.27.0.9-beta 167 8 months ago
5.27.0.8-beta 155 8 months ago
5.27.0.7-beta 164 9 months ago
5.27.0.6-beta 478 9 months ago
5.27.0.5-beta 403 9 months ago
5.27.0.4-beta 194 9 months ago
5.27.0.3-beta 1,898 9 months ago
5.27.0.2-beta 175 9 months ago
5.27.0.1-beta 615 9 months ago
5.27.0 283,528 9 months ago
5.26.0.27-beta 170 9 months ago
5.26.0.26-beta 172 9 months ago
5.26.0.25-beta 174 9 months ago
5.26.0.24-beta 1,098 9 months ago
5.26.0.23-beta 157 9 months ago
5.26.0.22-beta 200 9 months ago
5.26.0.21-beta 158 9 months ago
5.26.0.20-beta 236 9 months ago
5.26.0.19-beta 177 9 months ago
5.26.0.18-beta 174 9 months ago
5.26.0.17-beta 175 9 months ago
5.26.0.16-beta 174 9 months ago
5.26.0.15-beta 239 9 months ago
5.26.0.14-beta 316 9 months ago
5.26.0.13-beta 181 9 months ago
5.26.0.12-beta 200 9 months ago
5.26.0.11-beta 247 9 months ago
5.26.0.10-beta 199 9 months ago
5.26.0.9-beta 325 9 months ago
5.26.0.8-beta 162 9 months ago
5.26.0.7-beta 664 10 months ago
5.26.0.6-beta 163 10 months ago
5.26.0.5-beta 200 10 months ago
5.26.0.4-beta 180 10 months ago
5.26.0.3-beta 376 10 months ago
5.26.0.2-beta 177 10 months ago
5.26.0.1-beta 198 10 months ago
5.26.0 203,791 10 months ago
5.25.0.15-beta 1,158 10 months ago
5.25.0.14-beta 267 10 months ago
5.25.0.13-beta 224 5/24/2024
5.25.0.12-beta 339 5/22/2024
5.25.0.11-beta 173 5/22/2024
5.25.0.10-beta 2,829 5/18/2024
5.25.0.9-beta 585 5/17/2024
5.25.0.8-beta 160 5/17/2024
5.25.0.7-beta 313 5/15/2024
5.25.0.6-beta 140 5/15/2024
5.25.0.5-beta 358 5/11/2024
5.25.0.4-beta 366 5/7/2024
5.25.0.3-beta 910 5/6/2024
5.25.0.2-beta 196 5/5/2024
5.25.0.1-beta 184 5/3/2024
5.25.0 171,279 5/2/2024
5.24.0.12-beta 165 5/2/2024
5.24.0.11-beta 197 5/1/2024
5.24.0.9-beta 222 4/28/2024
5.24.0.8-beta 982 4/25/2024
5.24.0.7-beta 188 4/24/2024
5.24.0.6-beta 168 4/24/2024
5.24.0.5-beta 166 4/23/2024
5.24.0.4-beta 980 4/21/2024
5.24.0.3-beta 210 4/18/2024
5.24.0.2-beta 168 4/18/2024
5.24.0.1-beta 395 4/9/2024
5.24.0 259,086 4/1/2024
5.23.0.15-beta 312 3/28/2024
5.23.0.14-beta 299 3/26/2024
5.23.0.13-beta 393 3/24/2024
5.23.0.12-beta 610 3/22/2024
5.23.0.11-beta 290 3/21/2024
5.23.0.10-beta 404 3/19/2024
5.23.0.9-beta 338 3/15/2024
5.23.0.8-beta 378 3/14/2024
5.23.0.7-beta 266 3/14/2024
5.23.0.6-beta 285 3/13/2024
5.23.0.5-beta 917 3/11/2024
5.23.0.4-beta 1,688 3/8/2024
5.23.0.3-beta 562 3/5/2024
5.23.0.2-beta 446 3/3/2024
5.23.0.1-beta 714 2/29/2024
5.23.0 264,740 2/29/2024
5.22.0.18-beta 371 2/28/2024
5.22.0.17-beta 372 2/27/2024
5.22.0.16-beta 370 2/27/2024
5.22.0.15-beta 420 2/26/2024
5.22.0.14-beta 393 2/26/2024
5.22.0.13-beta 395 2/23/2024
5.22.0.12-beta 1,051 2/21/2024
5.22.0.11-beta 413 2/21/2024
5.22.0.10-beta 418 2/21/2024
5.22.0.9-beta 418 2/20/2024
5.22.0.8-beta 529 2/18/2024
5.22.0.7-beta 579 2/15/2024
5.22.0.6-beta 458 2/14/2024
5.22.0.5-beta 504 2/12/2024
5.22.0.4-beta 464 2/12/2024
5.22.0.3-beta 427 2/12/2024
5.22.0.2-beta 489 2/8/2024
5.22.0.1-beta 490 2/8/2024
5.22.0 159,572 2/1/2024
5.21.2.20-beta 423 1/31/2024
5.21.2.19-beta 473 1/30/2024
5.21.2.18-beta 535 1/27/2024
5.21.2.17-beta 530 1/26/2024
5.21.2.16-beta 2,324 1/21/2024
5.21.2.15-beta 523 1/18/2024
5.21.2.14-beta 600 1/17/2024
5.21.2.13-beta 502 1/16/2024
5.21.2.12-beta 515 1/15/2024
5.21.2.11-beta 487 1/13/2024
5.21.2.10-beta 535 1/12/2024
5.21.2.9-beta 543 1/11/2024
5.21.2.8-beta 523 1/10/2024
5.21.2.7-beta 519 1/10/2024
5.21.2.6-beta 565 1/9/2024
5.21.2.5-beta 605 1/9/2024
5.21.2.4-beta 588 1/7/2024
5.21.2.3-beta 532 1/6/2024
5.21.2.2-beta 561 1/4/2024
5.21.2.1-beta 510 1/4/2024
5.21.2 211,925 1/2/2024
5.21.1.1-beta 510 1/2/2024
5.21.1 904 1/2/2024
5.21.0 6,620 1/2/2024
5.20.1.12-beta 597 12/30/2023
5.20.1.11-beta 517 12/30/2023
5.20.1.10-beta 531 12/29/2023
5.20.1.9-beta 554 12/29/2023
5.20.1.8-beta 598 12/27/2023
5.20.1.7-beta 4,376 12/18/2023
5.20.1.6-beta 629 12/15/2023
5.20.1.5-beta 689 12/13/2023
5.20.1.4-beta 485 12/12/2023
5.20.1.3-beta 583 12/9/2023
5.20.1.2-beta 561 12/8/2023
5.20.1.1-beta 833 12/7/2023
5.20.1 92,634 12/1/2023
5.20.0.2-beta 575 11/30/2023
5.20.0.1-beta 519 11/30/2023
5.20.0 51,080 11/28/2023
5.20.0-rc2 2,572 11/26/2023
5.20.0-rc1 2,079 11/18/2023
5.19.2 68,287 11/7/2023
5.19.1 15,167 11/4/2023
5.19.0.13-beta 597 11/15/2023
5.19.0.12-beta 530 11/15/2023
5.19.0.11-beta 533 11/15/2023
5.19.0.10-beta 566 11/9/2023
5.19.0.9-beta 513 11/7/2023
5.19.0.8-beta 487 11/6/2023
5.19.0.7-beta 547 11/4/2023
5.19.0.6-beta 518 11/3/2023
5.19.0.5-beta 530 11/2/2023
5.19.0.4-beta 531 11/2/2023
5.19.0.3-beta 552 11/1/2023
5.19.0.2-beta 517 10/31/2023
5.19.0.1-beta 514 10/29/2023
5.19.0 16,486 10/29/2023
5.18.0.9-beta 549 10/27/2023
5.18.0.8-beta 643 10/25/2023
5.18.0.7-beta 576 10/24/2023
5.18.0.6-beta 601 10/19/2023
5.18.0.5-beta 1,102 10/14/2023
5.18.0.4-beta 552 10/12/2023
5.18.0.3-beta 527 10/12/2023
5.18.0.2-beta 591 10/11/2023
5.18.0.1-beta 646 10/5/2023
5.18.0 115,841 10/1/2023
5.17.1.32-beta 533 10/1/2023
5.17.1.31-beta 563 9/29/2023
5.17.1.30-beta 515 9/29/2023
5.17.1.29-beta 974 9/28/2023
5.17.1.28-beta 530 9/27/2023
5.17.1.27-beta 545 9/27/2023
5.17.1.26-beta 519 9/27/2023
5.17.1.25-beta 575 9/26/2023
5.17.1.24-beta 539 9/24/2023
5.17.1.23-beta 508 9/23/2023
5.17.1.22-beta 507 9/23/2023
5.17.1.21-beta 508 9/22/2023
5.17.1.20-beta 519 9/21/2023
5.17.1.19-beta 1,072 9/13/2023
5.17.1.18-beta 550 9/12/2023
5.17.1.17-beta 552 9/12/2023
5.17.1.16-beta 528 9/11/2023
5.17.1.15-beta 555 9/10/2023
5.17.1.14-beta 543 9/9/2023
5.17.1.13-beta 541 9/8/2023
5.17.1.12-beta 502 9/8/2023
5.17.1.11-beta 559 9/8/2023
5.17.1.10-beta 497 9/8/2023
5.17.1.9-beta 506 9/8/2023
5.17.1.8-beta 570 9/7/2023
5.17.1.7-beta 549 9/7/2023
5.17.1.6-beta 1,053 9/7/2023
5.17.1.5-beta 593 9/6/2023
5.17.1.4-beta 484 9/6/2023
5.17.1.3-beta 578 9/6/2023
5.17.1.2-beta 555 9/5/2023
5.17.1.1 41,792 9/5/2023
5.17.1 2,791 9/4/2023
5.17.0.2-beta 499 9/4/2023
5.17.0.1-beta 541 9/4/2023
5.17.0 1,513 9/3/2023
5.16.0.4-beta 530 9/3/2023
5.16.0.3-beta 572 9/2/2023
5.16.0.2-beta 533 8/31/2023
5.16.0.1-beta 557 8/30/2023
5.16.0 25,955 8/30/2023
5.15.0.22-beta 704 8/26/2023
5.15.0.21-beta 595 8/24/2023
5.15.0.20-beta 1,177 8/23/2023
5.15.0.19-beta 534 8/23/2023
5.15.0.18-beta 569 8/18/2023
5.15.0.17-beta 1,114 8/16/2023
5.15.0.16-beta 610 8/14/2023
5.15.0.15-beta 508 8/14/2023
5.15.0.14-beta 549 8/13/2023
5.15.0.12-beta 515 8/11/2023
5.15.0.11-beta 645 8/10/2023
5.15.0.9-beta 532 8/10/2023
5.15.0.8-beta 525 8/10/2023
5.15.0.7-beta 512 8/10/2023
5.15.0.6-beta 544 8/10/2023
5.15.0.5-beta 520 8/9/2023
5.15.0.4-beta 577 8/9/2023
5.15.0.3-beta 535 8/8/2023
5.15.0.2-beta 4,014 8/4/2023
5.15.0.1-beta 682 8/4/2023
5.15.0 99,773 8/1/2023
5.14.0.7-beta 579 7/31/2023
5.14.0.6-beta 549 7/30/2023
5.14.0.5-beta 577 7/29/2023
5.14.0.4-beta 514 7/28/2023
5.14.0.3-beta 590 7/28/2023
5.14.0.2-beta 592 7/26/2023
5.14.0.1-beta 850 7/20/2023
5.14.0 43,762 7/16/2023
5.13.0.9-beta 532 7/14/2023
5.13.0.8-beta 561 7/12/2023
5.13.0.7-beta 563 7/11/2023
5.13.0.6-beta 499 7/11/2023
5.13.0.5-beta 524 7/10/2023
5.13.0.4-beta 553 7/8/2023
5.13.0.3-beta 569 7/7/2023
5.13.0.2-beta 568 7/6/2023
5.13.0.1-beta 559 6/27/2023
5.13.0 59,110 6/24/2023
5.12.0.4-beta 528 6/23/2023
5.12.0.3-beta 615 6/19/2023
5.12.0.2-beta 552 6/18/2023
5.12.0.1-beta 774 6/14/2023
5.12.0 30,101 6/11/2023
5.11.0.6-beta 544 6/10/2023
5.11.0.5-beta 557 6/9/2023
5.11.0.4-beta 601 6/8/2023
5.11.0.3-beta 662 6/6/2023
5.11.0.2-beta 633 5/31/2023
5.11.0.1-beta 549 5/30/2023
5.11.0 38,482 5/27/2023
5.10.0.5-beta 568 5/24/2023
5.10.0.4-beta 571 5/22/2023
5.10.0.3-beta 891 5/7/2023
5.10.0.2-beta 543 5/6/2023
5.10.0.1-beta 611 5/3/2023
5.10.0 101,167 4/30/2023
5.9.0.4-beta 580 4/29/2023
5.9.0.3-beta 554 4/29/2023
5.9.0.2-beta 1,295 4/25/2023
5.9.0.1-beta 588 4/24/2023
5.9.0 63,491 4/22/2023
5.8.1.15-beta 550 4/21/2023
5.8.1.14-beta 590 4/21/2023
5.8.1.13-beta 610 4/20/2023
5.8.1.12-beta 511 4/20/2023
5.8.1.11-beta 552 4/20/2023
5.8.1.10-beta 540 4/19/2023
5.8.1.9-beta 594 4/18/2023
5.8.1.8-beta 790 4/16/2023
5.8.1.7-beta 642 4/10/2023
5.8.1.6-beta 528 4/8/2023
5.8.1.5-beta 535 4/8/2023
5.8.1.4-beta 514 4/7/2023
5.8.1.3-beta 654 3/30/2023
5.8.1.2-beta 716 3/30/2023
5.8.1.1-beta 711 3/29/2023
5.8.1 67,111 3/24/2023
5.8.0.8-beta 557 3/23/2023
5.8.0.7-beta 543 3/23/2023
5.8.0.6-beta 568 3/20/2023
5.8.0.5-beta 568 3/17/2023
5.8.0.4-beta 556 3/17/2023
5.8.0.3-beta 626 3/13/2023
5.8.0.2-beta 740 3/8/2023
5.8.0.1-beta 560 3/6/2023
5.8.0 40,915 3/5/2023
5.7.2.14-beta 578 3/4/2023
5.7.2.13-beta 630 3/2/2023
5.7.2.12-beta 1,515 3/2/2023
5.7.2.11-beta 525 3/2/2023
5.7.2.10-beta 617 3/1/2023
5.7.2.9-beta 608 2/28/2023
5.7.2.8-beta 580 2/28/2023
5.7.2.7-beta 537 2/28/2023
5.7.2.6-beta 542 2/27/2023
5.7.2.5-beta 558 2/26/2023
5.7.2.4-beta 651 2/24/2023
5.7.2.3-beta 569 2/23/2023
5.7.2.2-beta 566 2/22/2023
5.7.2.1-beta 617 2/19/2023
5.7.2 86,921 2/14/2023
5.7.1.1-beta 569 2/13/2023
5.7.1 15,518 2/9/2023
5.7.0.4-beta 831 2/6/2023
5.7.0.3-beta 556 2/6/2023
5.7.0.2-beta 755 2/3/2023
5.7.0.1-beta 594 1/31/2023
5.7.0 28,187 1/29/2023
5.6.0.6-beta 597 1/28/2023
5.6.0.5-beta 691 1/26/2023
5.6.0.4-beta 617 1/25/2023
5.6.0.3-beta 836 1/18/2023
5.6.0.2-beta 540 1/18/2023
5.6.0.1-beta 619 1/17/2023
5.6.0 98,555 1/2/2023
5.5.0.5-beta 1,300 12/19/2022
5.5.0.4-beta 589 12/17/2022
5.5.0.3-beta 915 12/12/2022
5.5.0.2-beta 556 12/12/2022
5.5.0.1-beta 556 12/10/2022
5.5.0 52,981 12/9/2022
5.4.1.7-beta 582 12/7/2022
5.4.1.6-beta 1,044 11/26/2022
5.4.1.5-beta 559 11/25/2022
5.4.1.4-beta 662 11/21/2022
5.4.1.3-beta 570 11/19/2022
5.4.1.2-beta 571 11/19/2022
5.4.1.1-beta 597 11/18/2022
5.4.1 65,163 11/18/2022
5.4.0.2-beta 538 11/17/2022
5.4.0.1-beta 1,071 11/10/2022
5.4.0 13,228 11/9/2022
5.3.2.13-beta 546 11/9/2022
5.3.2.12-beta 548 11/8/2022
5.3.2.11-beta 640 11/8/2022
5.3.2.10-beta 529 11/8/2022
5.3.2.9-beta 561 11/7/2022
5.3.2.8-beta 525 11/7/2022
5.3.2.7-beta 547 11/7/2022
5.3.2.6-beta 520 11/7/2022
5.3.2.5-beta 557 11/7/2022
5.3.2.4-beta 563 11/6/2022
5.3.2.3-beta 521 11/6/2022
5.3.2.2-beta 539 11/5/2022
5.3.2.1-beta 542 11/4/2022
5.3.2 36,531 11/4/2022
5.3.1.5-beta 521 11/3/2022
5.3.1.4-beta 557 11/3/2022
5.3.1.3-beta 555 11/2/2022
5.3.1.2-beta 537 11/2/2022
5.3.1.1-beta 502 11/2/2022
5.3.1 11,136 10/31/2022
5.3.0.1-beta 565 10/30/2022
5.3.0 1,310 10/29/2022
5.3.0-beta 560 10/28/2022
5.2.1.17-beta 555 10/28/2022
5.2.1.16-beta 645 10/26/2022
5.2.1.15-beta 519 10/26/2022
5.2.1.14-beta 569 10/26/2022
5.2.1.13-beta 602 10/25/2022
5.2.1.12-beta 579 10/25/2022
5.2.1.11-beta 533 10/25/2022
5.2.1.10-beta 562 10/24/2022
5.2.1.9-beta 633 10/21/2022
5.2.1.8-beta 580 10/20/2022
5.2.1.7-beta 1,582 10/19/2022
5.2.1.6-beta 612 10/19/2022
5.2.1.5-beta 854 10/18/2022
5.2.1.4-beta 554 10/17/2022
5.2.1.3-beta 528 10/17/2022
5.2.1.2-beta 557 10/16/2022
5.2.1.1-beta 580 10/15/2022
5.2.1 23,110 10/15/2022
5.2.0.2-beta 502 10/15/2022
5.2.0.1-beta 569 10/14/2022
5.2.0 2,559 10/13/2022
5.2.0-beta9 1,018 9/16/2022
5.2.0-beta8 613 9/16/2022
5.2.0-beta7 640 9/14/2022
5.2.0-beta6 630 9/14/2022
5.2.0-beta5 600 9/14/2022
5.2.0-beta4 578 9/13/2022
5.2.0-beta3 572 9/12/2022
5.2.0-beta28 613 10/13/2022
5.2.0-beta27 597 10/12/2022
5.2.0-beta26 527 10/9/2022
5.2.0-beta25 526 10/6/2022
5.2.0-beta24 559 10/6/2022
5.2.0-beta23 529 10/5/2022
5.2.0-beta22 535 9/30/2022
5.2.0-beta21 579 9/27/2022
5.2.0-beta20 585 9/26/2022
5.2.0-beta2 659 9/10/2022
5.2.0-beta19 575 9/25/2022
5.2.0-beta18 588 9/25/2022
5.2.0-beta17 551 9/23/2022
5.2.0-beta16 539 9/22/2022
5.2.0-beta15 642 9/20/2022
5.2.0-beta14 543 9/20/2022
5.2.0-beta13 590 9/19/2022
5.2.0-beta12 600 9/19/2022
5.2.0-beta11 579 9/17/2022
5.2.0-beta10 572 9/16/2022
5.2.0-beta1 556 9/10/2022
5.1.1-beta5 627 9/10/2022
5.1.1-beta4 577 9/9/2022
5.1.1-beta3 551 9/9/2022
5.1.1-beta2 529 9/9/2022
5.1.1-beta1 527 9/8/2022
5.1.0 35,215 9/8/2022
5.1.0-beta9 766 8/31/2022
5.1.0-beta8 543 8/29/2022
5.1.0-beta7 550 8/29/2022
5.1.0-beta6 594 8/28/2022
5.1.0-beta5 518 8/27/2022
5.1.0-beta4 535 8/27/2022
5.1.0-beta3 615 8/26/2022
5.1.0-beta2 547 8/25/2022
5.1.0-beta17 557 9/7/2022
5.1.0-beta16 527 9/7/2022
5.1.0-beta15 1,095 9/5/2022
5.1.0-beta14 564 9/4/2022
5.1.0-beta13 565 9/2/2022
5.1.0-beta12 535 9/1/2022
5.1.0-beta11 575 9/1/2022
5.1.0-beta10 506 8/31/2022
5.1.0-beta1 540 8/25/2022
5.0.0 22,891 8/24/2022
5.0.0-beta9 640 8/21/2022
5.0.0-beta8 545 8/20/2022
5.0.0-beta7 540 8/20/2022
5.0.0-beta6 636 8/18/2022
5.0.0-beta5 718 8/17/2022
5.0.0-beta4 527 8/17/2022
5.0.0-beta3 553 8/16/2022
5.0.0-beta2 603 8/15/2022
5.0.0-beta13 492 8/23/2022
5.0.0-beta12 625 8/23/2022
5.0.0-beta11 651 8/22/2022
5.0.0-beta10 524 8/22/2022
5.0.0-beta1 546 8/15/2022
4.5.0-beta9 1,074 8/13/2022
4.5.0-beta8 615 8/12/2022
4.5.0-beta7 675 8/11/2022
4.5.0-beta6 735 8/9/2022
4.5.0-beta5 521 8/8/2022
4.5.0-beta4 627 8/8/2022
4.5.0-beta3 542 8/8/2022
4.5.0-beta2 571 8/8/2022
4.5.0-beta15 563 8/15/2022
4.5.0-beta14 571 8/14/2022
4.5.0-beta13 565 8/14/2022
4.5.0-beta12 542 8/14/2022
4.5.0-beta11 559 8/14/2022
4.5.0-beta10 527 8/13/2022
4.5.0-beta1 583 8/4/2022
4.4.0 30,734 8/3/2022
4.4.0-beta9 550 8/2/2022
4.4.0-beta8 551 7/31/2022
4.4.0-beta7 543 7/28/2022
4.4.0-beta6 618 7/24/2022
4.4.0-beta5 576 7/24/2022
4.4.0-beta4 562 7/23/2022
4.4.0-beta3 574 7/22/2022
4.4.0-beta2 564 7/22/2022
4.4.0-beta1 583 7/20/2022
4.3.2-beta1 662 7/13/2022
4.3.1 24,308 7/13/2022
4.3.1-beta5 761 7/10/2022
4.3.1-beta4 723 7/3/2022
4.3.1-beta3 557 7/2/2022
4.3.1-beta2 1,493 7/2/2022
4.3.1-beta1 617 6/30/2022
4.3.0 74,329 6/17/2022
4.3.0-beta9 1,139 5/30/2022
4.3.0-beta8 567 5/29/2022
4.3.0-beta7 679 5/27/2022
4.3.0-beta6 663 5/25/2022
4.3.0-beta5 631 5/24/2022
4.3.0-beta4 567 5/24/2022
4.3.0-beta3 537 5/23/2022
4.3.0-beta2 627 5/21/2022
4.3.0-beta11 543 6/3/2022
4.3.0-beta10 523 5/31/2022
4.3.0-beta1 587 5/20/2022
4.2.1-beta2 550 5/19/2022
4.2.1-beta1 543 5/19/2022
4.2.0 14,003 5/19/2022
4.2.0-beta9 770 5/13/2022
4.2.0-beta8 554 5/13/2022
4.2.0-beta7 599 5/11/2022
4.2.0-beta6 581 5/11/2022
4.2.0-beta5 572 5/10/2022
4.2.0-beta4 569 5/9/2022
4.2.0-beta3 600 5/7/2022
4.2.0-beta2 564 5/6/2022
4.2.0-beta10 551 5/18/2022
4.2.0-beta1 691 4/28/2022
4.1.0 14,493 4/26/2022
4.1.0-beta8 8,423 4/26/2022
4.1.0-beta7 582 4/26/2022
4.1.0-beta6 545 4/24/2022
4.1.0-beta5 521 4/23/2022
4.1.0-beta4 661 4/10/2022
4.1.0-beta3 582 4/6/2022
4.1.0-beta2 821 4/2/2022
4.1.0-beta1 612 3/31/2022
4.0.0 42,525 3/30/2022
4.0.0-beta6 642 3/26/2022
4.0.0-beta5 610 3/24/2022
4.0.0-beta4 576 3/23/2022
4.0.0-beta3 597 3/22/2022
4.0.0-beta2 581 3/22/2022
4.0.0-beta1 539 3/22/2022
3.12.1-beta2 575 3/22/2022
3.12.1-beta1 554 3/21/2022
3.11.0 7,998 3/21/2022
3.11.0-beta9 605 3/17/2022
3.11.0-beta8 534 3/16/2022
3.11.0-beta7 580 3/15/2022
3.11.0-beta6 580 3/14/2022
3.11.0-beta5 552 3/14/2022
3.11.0-beta4 573 3/14/2022
3.11.0-beta3 557 3/13/2022
3.11.0-beta2 567 3/13/2022
3.11.0-beta12 579 3/18/2022
3.11.0-beta11 726 3/17/2022
3.11.0-beta10 539 3/17/2022
3.11.0-beta1 576 3/10/2022
3.10.0 5,255 3/10/2022
3.10.0-beta7 575 3/9/2022
3.10.0-beta6 568 3/9/2022
3.10.0-beta5 599 3/8/2022
3.10.0-beta4 572 3/8/2022
3.10.0-beta3 538 3/8/2022
3.10.0-beta2 622 3/5/2022
3.10.0-beta1 557 3/5/2022
3.9.1 1,753 3/4/2022
3.9.0-beta9 576 3/2/2022
3.9.0-beta8 577 3/1/2022
3.9.0-beta7 551 3/1/2022
3.9.0-beta6 562 3/1/2022
3.9.0-beta5 552 3/1/2022
3.9.0-beta4 547 3/1/2022
3.9.0-beta3 561 2/28/2022
3.9.0-beta2 546 2/28/2022
3.9.0-beta13 556 3/4/2022
3.9.0-beta12 586 3/4/2022
3.9.0-beta11 590 3/3/2022
3.9.0-beta10 542 3/2/2022
3.9.0-beta1 568 2/27/2022
3.8.1 3,331 2/27/2022
3.8.0 1,464 2/26/2022
3.7.1-beta2 599 2/25/2022
3.7.1-beta1 515 2/25/2022
3.7.0 1,356 2/25/2022
3.6.0 1,506 2/23/2022
3.6.0-beta8 575 2/23/2022
3.6.0-beta7 551 2/23/2022
3.6.0-beta6 573 2/23/2022
3.6.0-beta5 559 2/22/2022
3.6.0-beta4 581 2/22/2022
3.6.0-beta3 570 2/21/2022
3.6.0-beta2 558 2/21/2022
3.6.0-beta1 577 2/19/2022
3.5.1 1,322 2/19/2022
3.5.1-beta4 587 2/18/2022
3.5.1-beta3 567 2/18/2022
3.5.1-beta2 588 2/18/2022
3.5.1-beta1 577 2/18/2022
3.5.0 1,389 2/16/2022
3.5.0-beta9 549 2/15/2022
3.5.0-beta8 586 2/15/2022
3.5.0-beta7 535 2/14/2022
3.5.0-beta6 605 2/14/2022
3.5.0-beta5 586 2/14/2022
3.5.0-beta4 572 2/14/2022
3.5.0-beta3 567 2/10/2022
3.5.0-beta2 607 2/9/2022
3.5.0-beta10 557 2/16/2022
3.5.0-beta1 563 2/9/2022
3.4.1 1,354 2/13/2022
3.4.0 1,758 2/7/2022
3.4.0-beta2 583 2/6/2022
3.4.0-beta1 560 2/6/2022
3.3.0 1,228 2/5/2022
3.3.0-beta4 607 2/4/2022
3.3.0-beta3 694 2/3/2022
3.3.0-beta2 550 2/3/2022
3.3.0-beta1 609 2/3/2022
3.2.2 1,318 2/2/2022
3.2.1 1,337 2/1/2022
3.2.1-beta1 543 1/30/2022
3.2.0 2,561 1/30/2022
3.2.0-beta6 580 1/30/2022
3.2.0-beta5 519 1/29/2022
3.2.0-beta4 569 1/29/2022
3.2.0-beta3 575 1/28/2022
3.2.0-beta2 599 1/28/2022
3.2.0-beta1 581 1/25/2022
3.1.4 2,896 1/27/2022
3.1.3 1,441 1/26/2022
3.1.3-beta1 599 1/26/2022
3.1.2 1,302 1/25/2022
3.1.1 1,272 1/24/2022
3.1.0 1,217 1/24/2022
3.0.0 1,229 1/22/2022
3.0.0-beta1 570 1/22/2022
2.21.0-beta9 1,471 1/19/2022
2.21.0-beta8 548 1/19/2022
2.21.0-beta7 542 1/18/2022
2.21.0-beta6 525 1/18/2022
2.21.0-beta5 564 1/18/2022
2.21.0-beta4 515 1/18/2022
2.21.0-beta3 570 1/18/2022
2.21.0-beta2 535 1/17/2022
2.21.0-beta15 558 1/21/2022
2.21.0-beta14 550 1/21/2022
2.21.0-beta13 528 1/20/2022
2.21.0-beta12 574 1/20/2022
2.21.0-beta11 516 1/19/2022
2.21.0-beta10 582 1/19/2022
2.21.0-beta1 555 1/16/2022
2.20.0 999 1/16/2022
2.20.0-beta3 535 1/16/2022
2.20.0-beta2 567 1/15/2022
2.20.0-beta1 577 1/15/2022
2.19.2 1,184 1/14/2022
2.19.1 1,086 1/10/2022
2.19.0 1,012 1/10/2022
2.19.0-beta2 570 1/9/2022
2.19.0-beta1 593 1/6/2022
2.18.1 1,087 1/2/2022
2.18.0 1,033 12/31/2021
2.18.0-beta2 600 12/30/2021
2.18.0-beta1 531 12/30/2021
2.17.0 1,035 12/29/2021
2.17.0-beta2 565 12/28/2021
2.17.0-beta1 573 12/27/2021
2.16.0 1,073 12/25/2021
2.15.0 1,034 12/23/2021
2.15.0-beta2 560 12/22/2021
2.15.0-beta1 560 12/22/2021
2.14.0 997 12/21/2021
2.14.0-beta1 562 12/20/2021
2.13.1 1,026 12/20/2021
2.13.0 988 12/19/2021
2.12.0 818 12/17/2021
2.12.0-beta2 508 12/16/2021
2.12.0-beta1 568 12/16/2021
2.11.0 854 12/15/2021
2.10.1-beta1 571 12/15/2021
2.10.0 6,400 11/24/2021
2.10.0-beta2 5,463 11/24/2021
2.10.0-beta1 602 11/18/2021
2.9.1 891 11/9/2021
2.9.0 899 11/4/2021
2.9.0-beta3 619 11/1/2021
2.9.0-beta2 662 10/25/2021
2.9.0-beta1 718 10/24/2021
2.8.1 1,002 10/24/2021
2.8.0 860 10/24/2021
2.8.0-beta1 599 10/23/2021
2.7.1 951 10/23/2021
2.7.0 861 10/23/2021
2.6.0 992 10/21/2021
2.5.1 843 10/20/2021
2.5.0 857 10/20/2021
2.5.0-beta1 636 10/19/2021
2.4.0 851 10/19/2021
2.3.0 836 10/18/2021
2.3.0-beta2 624 10/18/2021
2.2.1 861 10/17/2021
2.2.0 897 10/17/2021
2.1.1 912 10/16/2021
2.1.0 904 10/16/2021
2.1.0-beta5 639 10/16/2021
2.1.0-beta4 668 10/16/2021
2.1.0-beta3 671 10/16/2021
2.1.0-beta2 582 10/15/2021
2.1.0-beta1 600 10/15/2021
2.0.0 894 10/14/2021
1.9.0 919 10/13/2021
1.8.0 844 10/12/2021
1.8.0-beta1 568 10/11/2021
1.7.0 952 10/10/2021
1.6.0 940 10/7/2021
1.6.0-beta5 602 10/6/2021
1.6.0-beta4 609 10/6/2021
1.6.0-beta3 581 10/5/2021
1.6.0-beta2 581 10/5/2021
1.6.0-beta1 599 10/5/2021
1.5.0 861 10/4/2021
1.4.0 899 10/3/2021
1.3.0 873 10/1/2021
1.2.0 875 9/29/2021
1.1.0 885 9/29/2021
1.0.0 9,728 9/28/2021
1.0.0-rc6 587 9/28/2021
1.0.0-rc5 599 9/27/2021
1.0.0-rc4 595 9/27/2021
1.0.0-rc3 665 9/27/2021
1.0.0-rc2 633 9/27/2021
1.0.0-rc1 624 9/27/2021
1.0.0-beta6 606 9/26/2021
1.0.0-beta5 561 9/26/2021
1.0.0-beta4 651 9/26/2021
1.0.0-beta3 619 9/25/2021
1.0.0-beta2 674 9/25/2021

WARNING: this is a beta release. do not use in production!