FastEndpoints 1.0.0-rc2

FastEndpoints

An easy to use Web-Api framework (which encourages CQRS and Vertical Slice Architecture) built as an extension to the Asp.Net pipeline. Performance is on par with .net 6 minimal apis and is ~1.5X faster; uses less memory; and outperforms a traditional MVC controller by about 39k requests per second on a Ryzen 3700X desktop.

Try it out...

install from nuget: Install-Package FastEndpoints (currently release candidate)

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

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
{
    [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; }
}

Request Validator

public class MyValidator : Validator<MyRequest>
{
    public MyValidator()
    {
        RuleFor(x => x.Id).NotEmpty().WithMessage("Id is required!");
        RuleFor(x => x.Name).NotEmpty().WithMessage("Name is required!");
        RuleFor(x => x.Price).GreaterThan(0).WithMessage("Price is required!");
    }
}

Response DTO

public class MyResponse
{
    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 authorization
    }

    protected override async Task HandleAsync(MyRequest req, CancellationToken ct)
    {
        //can do further validation here in addition to FluentValidation 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,377 more requests per second than mvc controller)

Statistics       Avg        Stdev     Max
  Reqs/sec    140494.96   13112.46  174985.42
  Latency        3.51ms     1.10ms   361.00ms
  HTTP codes:
    1xx - 0, 2xx - 1417846, 3xx - 0, 4xx - 0, 5xx - 0
    others - 0
  Throughput:    71.12MB/s

AspNet Minimal Api

Statistics       Avg        Stdev     Max
  Reqs/sec    140644.35   14557.75  171137.84
  Latency        3.51ms     2.43ms   398.00ms
  HTTP codes:
    1xx - 0, 2xx - 1419449, 3xx - 0, 4xx - 0, 5xx - 0
    others - 0
  Throughput:    71.19MB/s

AspNet MapControllers

Statistics       Avg       Stdev      Max
  Reqs/sec    104587.47   11267.99  129709.65
  Latency        4.74ms     2.09ms   416.00ms
  HTTP codes:
    1xx - 0, 2xx - 1054018, 3xx - 0, 4xx - 0, 5xx - 0
    others - 0
  Throughput:    52.86MB/s

AspNet MVC Controller

Statistics       Avg       Stdev      Max
  Reqs/sec    101117.36   12152.01  135669.68
  Latency        4.90ms     2.47ms   385.00ms
  HTTP codes:
    1xx - 0, 2xx - 1018455, 3xx - 0, 4xx - 0, 5xx - 0
    others - 0
  Throughput:    50.88MB/s

parameters used: -c 500 -m POST -f "body.json" -H "Content-Type:application/json" -d 10s

BenchmarkDotNet head-to-head results

Method Mean Error StdDev Ratio RatioSD Gen 0 Allocated
MinimalApiEndpoint 72.54 μs 0.156 μs 0.121 μs 0.97 0.01 2.4414 21 KB
FastEndpointsEndpoint 74.64 μs 0.493 μs 0.461 μs 1.00 0.00 2.4414 21 KB
AspNetMapControllers 110.96 μs 2.209 μs 5.377 μs 1.46 0.05 3.1738 28 KB
AspNetCoreMVC 115.44 μs 2.282 μs 3.686 μs 1.53 0.06 3.4180 28 KB

Showing the top 20 packages that depend on FastEndpoints.

Packages Downloads
Elsa.Api.Common
Provides common features to modules that expose API endpoints.
7
Elsa.Api.Common
Provides common features to modules that expose API endpoints.
8
FastEndpoints.Security
Security library for FastEndpoints.
6
FastEndpoints.Security
Security library for FastEndpoints.
7
FastEndpoints.Swagger
Swagger support for FastEndpoints.
6
FastEndpoints.Swagger
Swagger support for FastEndpoints.
8

WARNING: this is a release candidate. it is stable and feature complete but do not use in production yet!

Version Downloads Last updated
5.32.0.15-beta 0 12/26/2024
5.32.0.14-beta 0 12/25/2024
5.32.0.13-beta 0 12/24/2024
5.32.0.12-beta 1 12/22/2024
5.32.0.11-beta 1 12/22/2024
5.32.0.10-beta 1 12/22/2024
5.32.0.9-beta 1 12/22/2024
5.32.0.8-beta 1 12/22/2024
5.32.0.7-beta 1 12/22/2024
5.32.0.6-beta 0 12/13/2024
5.32.0.5-beta 0 12/11/2024
5.32.0.4-beta 0 12/10/2024
5.32.0.3-beta 3 12/23/2024
5.32.0.2-beta 3 12/13/2024
5.32.0.1-beta 3 12/11/2024
5.32.0 3 12/13/2024
5.31.0.18-beta 3 12/12/2024
5.31.0.17-beta 3 12/02/2024
5.31.0.16-beta 4 12/02/2024
5.31.0.15-beta 3 12/02/2024
5.31.0.14-beta 3 12/11/2024
5.31.0.13-beta 3 12/11/2024
5.31.0.12-beta 3 12/01/2024
5.31.0.11-beta 5 12/07/2024
5.31.0.10-beta 1 12/07/2024
5.31.0.9-beta 7 12/02/2024
5.31.0.8-beta 5 12/02/2024
5.31.0.7-beta 5 12/02/2024
5.31.0.6-beta 0 11/12/2024
5.31.0.5-beta 3 12/14/2024
5.31.0.4-beta 5 12/02/2024
5.31.0.3-beta 2 12/02/2024
5.31.0.2-beta 3 12/09/2024
5.31.0.1-beta 5 12/02/2024
5.31.0 3 12/13/2024
5.30.0.23-beta 3 12/11/2024
5.30.0.22-beta 1 12/12/2024
5.30.0.21-beta 3 12/13/2024
5.30.0.20-beta 5 12/02/2024
5.30.0.19-beta 2 12/06/2024
5.30.0.18-beta 1 12/12/2024
5.30.0.17-beta 2 12/09/2024
5.30.0.16-beta 1 12/07/2024
5.30.0.15-beta 3 12/05/2024
5.30.0.14-beta 4 12/02/2024
5.30.0.13-beta 5 12/03/2024
5.30.0.12-beta 5 12/01/2024
5.30.0.11-beta 3 11/30/2024
5.30.0.10-beta 4 12/02/2024
5.30.0.9-beta 4 12/02/2024
5.30.0.8-beta 3 12/02/2024
5.30.0.7-beta 5 12/02/2024
5.30.0.6-beta 5 12/04/2024
5.30.0.5-beta 5 12/01/2024
5.30.0.4-beta 5 12/02/2024
5.30.0.3-beta 4 12/02/2024
5.30.0.2-beta 2 12/02/2024
5.30.0.1-beta 5 12/03/2024
5.30.0 2 12/09/2024
5.29.0.13-beta 3 12/12/2024
5.29.0.12-beta 3 12/04/2024
5.29.0.11-beta 3 12/14/2024
5.29.0.10-beta 4 12/03/2024
5.29.0.8-beta 2 12/09/2024
5.29.0.7-beta 3 12/10/2024
5.29.0.6-beta 4 12/02/2024
5.29.0.5-beta 3 12/13/2024
5.29.0.4-beta 5 12/04/2024
5.29.0.3-beta 4 12/06/2024
5.29.0.2-beta 3 12/01/2024
5.29.0.1-beta 1 12/12/2024
5.29.0 3 12/02/2024
5.28.0.7-beta 5 12/01/2024
5.28.0.6-beta 5 12/01/2024
5.28.0.5-beta 5 12/02/2024
5.28.0.4-beta 4 12/02/2024
5.28.0.3-beta 3 12/13/2024
5.28.0.2-beta 5 12/02/2024
5.28.0.1-beta 1 12/12/2024
5.28.0 4 12/07/2024
5.27.0.14-beta 5 12/10/2024
5.27.0.13-beta 5 12/01/2024
5.27.0.12-beta 2 12/09/2024
5.27.0.11-beta 5 12/04/2024
5.27.0.10-beta 5 12/02/2024
5.27.0.9-beta 3 12/13/2024
5.27.0.8-beta 3 11/30/2024
5.27.0.7-beta 3 12/13/2024
5.27.0.6-beta 5 12/01/2024
5.27.0.5-beta 3 12/13/2024
5.27.0.4-beta 2 12/08/2024
5.27.0.3-beta 3 12/13/2024
5.27.0.2-beta 5 12/02/2024
5.27.0.1-beta 4 12/02/2024
5.27.0 5 12/02/2024
5.26.0.27-beta 3 12/13/2024
5.26.0.26-beta 2 12/09/2024
5.26.0.25-beta 3 12/17/2024
5.26.0.24-beta 2 12/09/2024
5.26.0.23-beta 5 12/03/2024
5.26.0.22-beta 1 12/09/2024
5.26.0.21-beta 2 12/09/2024
5.26.0.20-beta 3 12/12/2024
5.26.0.19-beta 3 12/13/2024
5.26.0.18-beta 3 12/11/2024
5.26.0.17-beta 3 12/02/2024
5.26.0.16-beta 3 12/12/2024
5.26.0.15-beta 3 12/13/2024
5.26.0.14-beta 2 12/04/2024
5.26.0.13-beta 3 12/19/2024
5.26.0.12-beta 3 12/13/2024
5.26.0.11-beta 5 12/03/2024
5.26.0.10-beta 3 12/11/2024
5.26.0.9-beta 2 12/10/2024
5.26.0.8-beta 3 12/20/2024
5.26.0.7-beta 3 12/20/2024
5.26.0.6-beta 1 12/12/2024
5.26.0.5-beta 3 12/13/2024
5.26.0.4-beta 5 12/02/2024
5.26.0.3-beta 3 12/19/2024
5.26.0.2-beta 2 12/09/2024
5.26.0.1-beta 1 12/09/2024
5.26.0 2 12/06/2024
5.25.0.15-beta 5 12/02/2024
5.25.0.14-beta 3 12/01/2024
5.25.0.13-beta 2 12/02/2024
5.25.0.12-beta 5 12/02/2024
5.25.0.11-beta 2 12/10/2024
5.25.0.10-beta 4 12/02/2024
5.25.0.9-beta 1 12/09/2024
5.25.0.8-beta 1 12/12/2024
5.25.0.7-beta 3 12/13/2024
5.25.0.6-beta 5 12/01/2024
5.25.0.5-beta 3 12/05/2024
5.25.0.4-beta 5 12/01/2024
5.25.0.3-beta 3 11/30/2024
5.25.0.2-beta 4 12/02/2024
5.25.0.1-beta 5 12/02/2024
5.25.0 5 12/02/2024
5.24.0.12-beta 5 12/01/2024
5.24.0.11-beta 5 12/02/2024
5.24.0.9-beta 4 12/02/2024
5.24.0.8-beta 5 12/11/2024
5.24.0.7-beta 5 12/01/2024
5.24.0.6-beta 1 12/03/2024
5.24.0.5-beta 3 12/12/2024
5.24.0.4-beta 3 12/13/2024
5.24.0.3-beta 2 12/09/2024
5.24.0.2-beta 5 12/01/2024
5.24.0.1-beta 5 12/02/2024
5.24.0 3 12/13/2024
5.23.0.15-beta 5 12/02/2024
5.23.0.14-beta 3 12/13/2024
5.23.0.13-beta 2 12/09/2024
5.23.0.12-beta 3 12/02/2024
5.23.0.11-beta 3 12/11/2024
5.23.0.10-beta 5 12/02/2024
5.23.0.9-beta 4 12/02/2024
5.23.0.8-beta 5 12/11/2024
5.23.0.7-beta 5 12/02/2024
5.23.0.6-beta 5 12/03/2024
5.23.0.5-beta 3 12/11/2024
5.23.0.4-beta 2 12/09/2024
5.23.0.3-beta 4 12/03/2024
5.23.0.2-beta 3 12/13/2024
5.23.0.1-beta 3 12/13/2024
5.23.0 3 12/02/2024
5.22.0.18-beta 3 12/08/2024
5.22.0.17-beta 5 12/02/2024
5.22.0.16-beta 5 12/10/2024
5.22.0.15-beta 5 12/02/2024
5.22.0.14-beta 5 12/02/2024
5.22.0.13-beta 5 12/02/2024
5.22.0.12-beta 1 12/12/2024
5.22.0.11-beta 7 12/02/2024
5.22.0.10-beta 4 12/02/2024
5.22.0.9-beta 4 12/11/2024
5.22.0.8-beta 4 12/02/2024
5.22.0.7-beta 5 12/01/2024
5.22.0.6-beta 4 12/02/2024
5.22.0.5-beta 5 12/03/2024
5.22.0.4-beta 1 12/02/2024
5.22.0.3-beta 2 12/08/2024
5.22.0.2-beta 3 12/13/2024
5.22.0.1-beta 1 12/11/2024
5.22.0 5 12/02/2024
5.21.2.20-beta 5 12/02/2024
5.21.2.19-beta 4 12/03/2024
5.21.2.18-beta 4 12/02/2024
5.21.2.17-beta 4 12/04/2024
5.21.2.16-beta 2 12/08/2024
5.21.2.15-beta 2 12/09/2024
5.21.2.14-beta 4 12/02/2024
5.21.2.13-beta 5 12/02/2024
5.21.2.12-beta 5 12/01/2024
5.21.2.11-beta 3 12/13/2024
5.21.2.10-beta 5 12/02/2024
5.21.2.9-beta 4 12/03/2024
5.21.2.8-beta 1 12/02/2024
5.21.2.7-beta 5 12/02/2024
5.21.2.6-beta 1 12/12/2024
5.21.2.5-beta 3 12/20/2024
5.21.2.4-beta 3 12/08/2024
5.21.2.3-beta 5 12/02/2024
5.21.2.2-beta 4 12/02/2024
5.21.2.1-beta 5 12/02/2024
5.21.2 5 12/01/2024
5.21.1.1-beta 1 12/12/2024
5.21.1 3 12/13/2024
5.21.0 2 12/09/2024
5.20.1.12-beta 5 12/02/2024
5.20.1.11-beta 4 12/02/2024
5.20.1.10-beta 3 12/20/2024
5.20.1.9-beta 1 12/11/2024
5.20.1.8-beta 4 12/03/2024
5.20.1.7-beta 1 12/03/2024
5.20.1.6-beta 4 12/02/2024
5.20.1.5-beta 3 12/13/2024
5.20.1.4-beta 1 12/12/2024
5.20.1.3-beta 3 12/13/2024
5.20.1.2-beta 5 12/01/2024
5.20.1.1-beta 3 12/13/2024
5.20.1 3 12/19/2024
5.20.0.2-beta 2 12/06/2024
5.20.0.1-beta 5 12/02/2024
5.20.0 2 12/09/2024
5.20.0-rc2 2 12/09/2024
5.20.0-rc1 3 12/20/2024
5.19.2 3 12/12/2024
5.19.1 3 12/02/2024
5.19.0.13-beta 3 12/01/2024
5.19.0.12-beta 3 12/13/2024
5.19.0.11-beta 2 12/09/2024
5.19.0.10-beta 3 12/09/2024
5.19.0.9-beta 3 12/02/2024
5.19.0.8-beta 2 12/08/2024
5.19.0.7-beta 2 12/10/2024
5.19.0.6-beta 2 12/02/2024
5.19.0.5-beta 3 12/13/2024
5.19.0.4-beta 3 12/03/2024
5.19.0.3-beta 1 12/12/2024
5.19.0.2-beta 3 11/30/2024
5.19.0.1-beta 3 12/13/2024
5.19.0 3 12/13/2024
5.18.0.9-beta 3 11/30/2024
5.18.0.8-beta 5 12/01/2024
5.18.0.7-beta 3 12/13/2024
5.18.0.6-beta 5 12/02/2024
5.18.0.5-beta 5 12/02/2024
5.18.0.4-beta 3 12/01/2024
5.18.0.3-beta 5 12/02/2024
5.18.0.2-beta 5 12/01/2024
5.18.0.1-beta 5 12/02/2024
5.18.0 3 12/13/2024
5.17.1.32-beta 3 12/13/2024
5.17.1.31-beta 5 12/02/2024
5.17.1.30-beta 5 12/01/2024
5.17.1.29-beta 3 12/13/2024
5.17.1.28-beta 3 12/13/2024
5.17.1.27-beta 2 12/09/2024
5.17.1.26-beta 3 12/13/2024
5.17.1.25-beta 4 12/02/2024
5.17.1.24-beta 3 12/13/2024
5.17.1.23-beta 1 12/12/2024
5.17.1.22-beta 4 12/02/2024
5.17.1.21-beta 3 12/13/2024
5.17.1.20-beta 5 12/01/2024
5.17.1.19-beta 3 12/13/2024
5.17.1.18-beta 3 12/10/2024
5.17.1.17-beta 3 12/13/2024
5.17.1.16-beta 2 12/09/2024
5.17.1.15-beta 3 12/19/2024
5.17.1.14-beta 3 12/13/2024
5.17.1.13-beta 0 09/08/2023
5.17.1.12-beta 3 12/12/2024
5.17.1.11-beta 3 12/02/2024
5.17.1.10-beta 2 12/09/2024
5.17.1.9-beta 2 12/09/2024
5.17.1.8-beta 5 12/02/2024
5.17.1.7-beta 2 12/19/2024
5.17.1.6-beta 5 12/02/2024
5.17.1.5-beta 5 12/11/2024
5.17.1.4-beta 5 12/02/2024
5.17.1.3-beta 2 12/11/2024
5.17.1.2-beta 5 12/04/2024
5.17.1.1 3 12/09/2024
5.17.1 1 12/12/2024
5.17.0.2-beta 4 12/02/2024
5.17.0.1-beta 5 12/02/2024
5.17.0 3 12/02/2024
5.16.0.4-beta 1 12/12/2024
5.16.0.3-beta 1 12/12/2024
5.16.0.2-beta 1 12/11/2024
5.16.0.1-beta 3 12/13/2024
5.16.0 2 12/08/2024
5.15.0.22-beta 3 12/14/2024
5.15.0.21-beta 3 12/02/2024
5.15.0.20-beta 3 12/09/2024
5.15.0.19-beta 3 12/13/2024
5.15.0.18-beta 1 12/09/2024
5.15.0.17-beta 3 12/11/2024
5.15.0.16-beta 2 12/11/2024
5.15.0.15-beta 2 12/11/2024
5.15.0.14-beta 1 12/08/2024
5.15.0.12-beta 3 12/20/2024
5.15.0.11-beta 5 12/02/2024
5.15.0.9-beta 1 12/12/2024
5.15.0.8-beta 1 12/12/2024
5.15.0.7-beta 3 12/10/2024
5.15.0.6-beta 5 12/11/2024
5.15.0.5-beta 3 12/02/2024
5.15.0.4-beta 4 12/12/2024
5.15.0.3-beta 2 12/09/2024
5.15.0.2-beta 4 12/03/2024
5.15.0.1-beta 2 12/02/2024
5.15.0 5 12/02/2024
5.14.0.7-beta 5 12/02/2024
5.14.0.6-beta 5 12/01/2024
5.14.0.5-beta 2 12/09/2024
5.14.0.4-beta 5 12/02/2024
5.14.0.3-beta 5 12/02/2024
5.14.0.2-beta 3 11/30/2024
5.14.0.1-beta 3 12/13/2024
5.14.0 5 12/01/2024
5.13.0.9-beta 3 12/12/2024
5.13.0.8-beta 2 12/09/2024
5.13.0.7-beta 5 12/02/2024
5.13.0.6-beta 5 12/02/2024
5.13.0.5-beta 3 12/19/2024
5.13.0.4-beta 3 12/20/2024
5.13.0.3-beta 3 11/30/2024
5.13.0.2-beta 2 12/09/2024
5.13.0.1-beta 5 12/02/2024
5.13.0 3 12/13/2024
5.12.0.4-beta 5 12/11/2024
5.12.0.3-beta 5 12/02/2024
5.12.0.2-beta 3 12/02/2024
5.12.0.1-beta 1 12/12/2024
5.12.0 1 12/12/2024
5.11.0.6-beta 5 12/02/2024
5.11.0.5-beta 3 12/13/2024
5.11.0.4-beta 3 12/02/2024
5.11.0.3-beta 5 12/02/2024
5.11.0.2-beta 3 11/30/2024
5.11.0.1-beta 1 12/10/2024
5.11.0 3 12/12/2024
5.10.0.5-beta 3 12/19/2024
5.10.0.4-beta 5 12/02/2024
5.10.0.3-beta 5 12/01/2024
5.10.0.2-beta 3 12/13/2024
5.10.0.1-beta 3 12/22/2024
5.10.0 5 12/01/2024
5.9.0.4-beta 3 12/13/2024
5.9.0.3-beta 5 12/02/2024
5.9.0.2-beta 4 12/02/2024
5.9.0.1-beta 3 12/11/2024
5.9.0 3 12/08/2024
5.8.1.15-beta 4 12/02/2024
5.8.1.14-beta 2 12/03/2024
5.8.1.13-beta 3 12/02/2024
5.8.1.12-beta 5 12/02/2024
5.8.1.11-beta 3 12/02/2024
5.8.1.10-beta 4 12/02/2024
5.8.1.9-beta 5 12/01/2024
5.8.1.8-beta 3 11/30/2024
5.8.1.7-beta 4 12/02/2024
5.8.1.6-beta 3 12/13/2024
5.8.1.5-beta 0 04/08/2023
5.8.1.4-beta 5 12/02/2024
5.8.1.3-beta 5 12/02/2024
5.8.1.2-beta 5 12/02/2024
5.8.1.1-beta 2 12/09/2024
5.8.1 2 12/02/2024
5.8.0.8-beta 5 12/02/2024
5.8.0.7-beta 5 12/01/2024
5.8.0.6-beta 3 12/03/2024
5.8.0.5-beta 5 12/02/2024
5.8.0.4-beta 4 12/02/2024
5.8.0.3-beta 5 12/02/2024
5.8.0.2-beta 3 12/02/2024
5.8.0.1-beta 3 12/13/2024
5.8.0 1 12/07/2024
5.7.2.14-beta 3 11/30/2024
5.7.2.13-beta 2 12/08/2024
5.7.2.12-beta 3 12/13/2024
5.7.2.11-beta 3 12/13/2024
5.7.2.10-beta 5 12/02/2024
5.7.2.9-beta 2 12/10/2024
5.7.2.8-beta 1 12/12/2024
5.7.2.7-beta 5 12/11/2024
5.7.2.6-beta 5 12/01/2024
5.7.2.5-beta 5 12/10/2024
5.7.2.4-beta 1 12/12/2024
5.7.2.3-beta 4 12/07/2024
5.7.2.2-beta 5 12/02/2024
5.7.2.1-beta 3 12/12/2024
5.7.2 5 12/02/2024
5.7.1.1-beta 2 12/02/2024
5.7.1 5 12/02/2024
5.7.0.4-beta 1 12/11/2024
5.7.0.3-beta 4 12/02/2024
5.7.0.2-beta 5 12/02/2024
5.7.0.1-beta 3 12/13/2024
5.7.0 3 11/30/2024
5.6.0.6-beta 3 12/13/2024
5.6.0.5-beta 5 12/02/2024
5.6.0.4-beta 2 12/02/2024
5.6.0.3-beta 3 12/19/2024
5.6.0.2-beta 2 12/10/2024
5.6.0.1-beta 5 12/01/2024
5.6.0 1 12/08/2024
5.5.0.5-beta 2 12/10/2024
5.5.0.4-beta 3 12/08/2024
5.5.0.3-beta 2 12/09/2024
5.5.0.2-beta 3 12/13/2024
5.5.0.1-beta 2 12/03/2024
5.5.0 5 12/02/2024
5.4.1.7-beta 5 12/11/2024
5.4.1.6-beta 5 12/02/2024
5.4.1.5-beta 3 12/13/2024
5.4.1.4-beta 1 12/12/2024
5.4.1.3-beta 2 12/02/2024
5.4.1.2-beta 5 12/03/2024
5.4.1.1-beta 3 12/13/2024
5.4.1 5 12/02/2024
5.4.0.2-beta 5 12/02/2024
5.4.0.1-beta 5 12/10/2024
5.4.0 3 12/13/2024
5.3.2.13-beta 4 12/07/2024
5.3.2.12-beta 4 12/02/2024
5.3.2.11-beta 5 12/01/2024
5.3.2.10-beta 3 12/13/2024
5.3.2.9-beta 3 11/30/2024
5.3.2.8-beta 5 12/01/2024
5.3.2.7-beta 3 12/13/2024
5.3.2.6-beta 5 12/01/2024
5.3.2.5-beta 2 12/02/2024
5.3.2.4-beta 1 12/07/2024
5.3.2.3-beta 5 12/09/2024
5.3.2.2-beta 4 12/02/2024
5.3.2.1-beta 5 12/02/2024
5.3.2 4 12/02/2024
5.3.1.5-beta 3 12/19/2024
5.3.1.4-beta 1 12/12/2024
5.3.1.3-beta 2 12/02/2024
5.3.1.2-beta 5 12/02/2024
5.3.1.1-beta 3 12/13/2024
5.3.1 2 12/09/2024
5.3.0.1-beta 4 12/02/2024
5.3.0 1 12/02/2024
5.3.0-beta 2 12/09/2024
5.2.1.17-beta 1 12/03/2024
5.2.1.16-beta 5 12/02/2024
5.2.1.15-beta 3 11/30/2024
5.2.1.14-beta 5 12/10/2024
5.2.1.13-beta 3 12/20/2024
5.2.1.12-beta 2 12/10/2024
5.2.1.11-beta 1 12/12/2024
5.2.1.10-beta 4 12/03/2024
5.2.1.9-beta 5 12/02/2024
5.2.1.8-beta 5 12/02/2024
5.2.1.7-beta 4 12/02/2024
5.2.1.6-beta 5 12/02/2024
5.2.1.5-beta 3 12/05/2024
5.2.1.4-beta 4 12/02/2024
5.2.1.3-beta 5 12/02/2024
5.2.1.2-beta 5 12/02/2024
5.2.1.1-beta 3 12/02/2024
5.2.1 2 12/04/2024
5.2.0.2-beta 3 12/13/2024
5.2.0.1-beta 1 12/09/2024
5.2.0 5 12/02/2024
5.2.0-beta9 2 12/09/2024
5.2.0-beta8 3 12/12/2024
5.2.0-beta7 3 12/01/2024
5.2.0-beta6 5 12/02/2024
5.2.0-beta5 5 12/02/2024
5.2.0-beta4 5 12/01/2024
5.2.0-beta3 5 12/01/2024
5.2.0-beta28 5 12/02/2024
5.2.0-beta27 2 12/09/2024
5.2.0-beta26 2 12/02/2024
5.2.0-beta25 3 12/13/2024
5.2.0-beta24 4 12/07/2024
5.2.0-beta23 5 12/01/2024
5.2.0-beta22 5 12/02/2024
5.2.0-beta21 2 12/15/2024
5.2.0-beta20 5 12/02/2024
5.2.0-beta2 3 12/12/2024
5.2.0-beta19 5 12/10/2024
5.2.0-beta18 4 12/02/2024
5.2.0-beta17 3 12/13/2024
5.2.0-beta16 3 12/13/2024
5.2.0-beta15 5 12/02/2024
5.2.0-beta14 5 12/02/2024
5.2.0-beta13 5 12/02/2024
5.2.0-beta12 4 12/03/2024
5.2.0-beta11 3 12/13/2024
5.2.0-beta10 5 12/02/2024
5.2.0-beta1 3 12/13/2024
5.1.1-beta5 2 12/09/2024
5.1.1-beta4 5 12/02/2024
5.1.1-beta3 5 12/02/2024
5.1.1-beta2 3 12/13/2024
5.1.1-beta1 1 12/12/2024
5.1.0 2 12/09/2024
5.1.0-beta9 3 12/09/2024
5.1.0-beta8 5 12/02/2024
5.1.0-beta7 5 12/02/2024
5.1.0-beta6 5 12/01/2024
5.1.0-beta5 5 12/02/2024
5.1.0-beta4 2 12/10/2024
5.1.0-beta3 1 12/02/2024
5.1.0-beta2 5 12/02/2024
5.1.0-beta17 3 11/30/2024
5.1.0-beta16 5 12/02/2024
5.1.0-beta15 1 12/12/2024
5.1.0-beta14 4 12/02/2024
5.1.0-beta13 2 12/08/2024
5.1.0-beta12 4 12/02/2024
5.1.0-beta11 5 12/04/2024
5.1.0-beta10 1 12/08/2024
5.1.0-beta1 5 12/02/2024
5.0.0 3 12/08/2024
5.0.0-beta9 5 12/02/2024
5.0.0-beta8 2 12/09/2024
5.0.0-beta7 2 12/02/2024
5.0.0-beta6 5 12/02/2024
5.0.0-beta5 5 12/02/2024
5.0.0-beta4 5 12/02/2024
5.0.0-beta3 3 12/13/2024
5.0.0-beta2 2 12/08/2024
5.0.0-beta13 5 12/02/2024
5.0.0-beta12 5 12/02/2024
5.0.0-beta11 5 12/02/2024
5.0.0-beta10 5 12/02/2024
5.0.0-beta1 3 12/13/2024
4.5.0-beta9 5 12/01/2024
4.5.0-beta8 5 12/02/2024
4.5.0-beta7 5 12/02/2024
4.5.0-beta6 5 12/02/2024
4.5.0-beta5 4 12/02/2024
4.5.0-beta4 2 12/02/2024
4.5.0-beta3 5 12/02/2024
4.5.0-beta2 2 12/02/2024
4.5.0-beta15 3 12/13/2024
4.5.0-beta14 2 12/09/2024
4.5.0-beta13 4 12/02/2024
4.5.0-beta12 3 12/01/2024
4.5.0-beta11 5 12/02/2024
4.5.0-beta10 5 12/02/2024
4.5.0-beta1 5 12/02/2024
4.4.0 3 12/13/2024
4.4.0-beta9 5 12/01/2024
4.4.0-beta8 2 12/06/2024
4.4.0-beta7 2 12/02/2024
4.4.0-beta6 1 12/09/2024
4.4.0-beta5 3 11/30/2024
4.4.0-beta4 4 12/04/2024
4.4.0-beta3 5 12/02/2024
4.4.0-beta2 5 12/02/2024
4.4.0-beta1 5 12/02/2024
4.3.2-beta1 3 11/29/2024
4.3.1 5 11/30/2024
4.3.1-beta5 3 12/11/2024
4.3.1-beta4 3 12/02/2024
4.3.1-beta3 4 12/02/2024
4.3.1-beta2 5 11/30/2024
4.3.1-beta1 5 12/02/2024
4.3.0 5 12/02/2024
4.3.0-beta9 4 12/02/2024
4.3.0-beta8 3 11/29/2024
4.3.0-beta7 3 11/29/2024
4.3.0-beta6 2 11/30/2024
4.3.0-beta5 3 11/29/2024
4.3.0-beta4 3 12/04/2024
4.3.0-beta3 2 11/29/2024
4.3.0-beta2 3 12/04/2024
4.3.0-beta11 5 12/01/2024
4.3.0-beta10 5 12/02/2024
4.3.0-beta1 3 11/29/2024
4.2.1-beta2 3 12/20/2024
4.2.1-beta1 5 12/02/2024
4.2.0 5 12/02/2024
4.2.0-beta9 2 12/02/2024
4.2.0-beta8 5 11/30/2024
4.2.0-beta7 1 12/12/2024
4.2.0-beta6 5 12/02/2024
4.2.0-beta5 3 12/04/2024
4.2.0-beta4 3 12/11/2024
4.2.0-beta3 5 12/02/2024
4.2.0-beta2 1 12/12/2024
4.2.0-beta10 5 12/02/2024
4.2.0-beta1 5 12/01/2024
4.1.0 3 12/13/2024
4.1.0-beta8 3 12/13/2024
4.1.0-beta7 5 12/02/2024
4.1.0-beta6 2 12/02/2024
4.1.0-beta5 5 12/02/2024
4.1.0-beta4 4 12/03/2024
4.1.0-beta3 5 12/02/2024
4.1.0-beta2 4 12/02/2024
4.1.0-beta1 5 12/02/2024
4.0.0 3 12/13/2024
4.0.0-beta6 2 12/09/2024
4.0.0-beta5 5 12/02/2024
4.0.0-beta4 5 12/02/2024
4.0.0-beta3 5 12/02/2024
4.0.0-beta2 5 12/02/2024
4.0.0-beta1 5 12/02/2024
3.12.1-beta2 3 11/30/2024
3.12.1-beta1 3 12/11/2024
3.11.0 5 12/02/2024
3.11.0-beta9 1 12/11/2024
3.11.0-beta8 3 12/09/2024
3.11.0-beta7 4 12/02/2024
3.11.0-beta6 5 12/02/2024
3.11.0-beta5 3 11/29/2024
3.11.0-beta4 5 12/02/2024
3.11.0-beta3 2 12/09/2024
3.11.0-beta2 3 12/13/2024
3.11.0-beta12 5 12/02/2024
3.11.0-beta11 2 12/03/2024
3.11.0-beta10 4 12/03/2024
3.11.0-beta1 5 12/01/2024
3.10.0 5 12/02/2024
3.10.0-beta7 5 12/01/2024
3.10.0-beta6 2 12/02/2024
3.10.0-beta5 3 12/13/2024
3.10.0-beta4 3 12/13/2024
3.10.0-beta3 3 12/12/2024
3.10.0-beta2 5 12/02/2024
3.10.0-beta1 2 12/02/2024
3.9.1 2 12/02/2024
3.9.0-beta9 3 11/30/2024
3.9.0-beta8 4 12/02/2024
3.9.0-beta7 5 12/02/2024
3.9.0-beta6 4 12/02/2024
3.9.0-beta5 3 11/29/2024
3.9.0-beta4 2 12/09/2024
3.9.0-beta3 5 12/02/2024
3.9.0-beta2 2 12/02/2024
3.9.0-beta13 5 12/02/2024
3.9.0-beta12 5 12/02/2024
3.9.0-beta11 5 12/01/2024
3.9.0-beta10 4 12/02/2024
3.9.0-beta1 3 12/02/2024
3.8.1 5 12/02/2024
3.8.0 2 12/09/2024
3.7.1-beta2 4 12/03/2024
3.7.1-beta1 4 12/02/2024
3.7.0 2 12/02/2024
3.6.0 5 11/30/2024
3.6.0-beta8 2 12/09/2024
3.6.0-beta7 0 02/23/2022
3.6.0-beta6 5 12/02/2024
3.6.0-beta5 3 11/30/2024
3.6.0-beta4 5 12/02/2024
3.6.0-beta3 5 12/02/2024
3.6.0-beta2 3 12/13/2024
3.6.0-beta1 5 12/02/2024
3.5.1 3 12/19/2024
3.5.1-beta4 5 12/02/2024
3.5.1-beta3 5 12/02/2024
3.5.1-beta2 2 12/09/2024
3.5.1-beta1 2 12/02/2024
3.5.0 4 12/02/2024
3.5.0-beta9 3 12/13/2024
3.5.0-beta8 3 12/05/2024
3.5.0-beta7 5 12/02/2024
3.5.0-beta6 4 12/02/2024
3.5.0-beta5 4 12/03/2024
3.5.0-beta4 5 12/09/2024
3.5.0-beta3 5 12/02/2024
3.5.0-beta2 5 12/02/2024
3.5.0-beta10 1 12/12/2024
3.5.0-beta1 4 12/02/2024
3.4.1 4 12/03/2024
3.4.0 3 12/13/2024
3.4.0-beta2 5 12/02/2024
3.4.0-beta1 3 11/30/2024
3.3.0 3 12/13/2024
3.3.0-beta4 5 12/02/2024
3.3.0-beta3 5 12/01/2024
3.3.0-beta2 5 12/02/2024
3.3.0-beta1 5 12/02/2024
3.2.2 5 12/02/2024
3.2.1 5 12/02/2024
3.2.1-beta1 5 12/02/2024
3.2.0 5 12/01/2024
3.2.0-beta6 3 12/02/2024
3.2.0-beta5 5 12/01/2024
3.2.0-beta4 3 11/29/2024
3.2.0-beta3 5 12/02/2024
3.2.0-beta2 5 12/02/2024
3.2.0-beta1 4 12/02/2024
3.1.4 5 12/01/2024
3.1.3 4 12/02/2024
3.1.3-beta1 5 12/01/2024
3.1.2 5 12/02/2024
3.1.1 3 11/30/2024
3.1.0 5 12/02/2024
3.0.0 2 12/02/2024
3.0.0-beta1 3 12/13/2024
2.21.0-beta9 2 12/09/2024
2.21.0-beta8 3 12/13/2024
2.21.0-beta7 5 12/02/2024
2.21.0-beta6 4 12/02/2024
2.21.0-beta5 5 12/01/2024
2.21.0-beta4 3 11/29/2024
2.21.0-beta3 3 12/13/2024
2.21.0-beta2 3 12/13/2024
2.21.0-beta15 4 12/02/2024
2.21.0-beta14 5 12/01/2024
2.21.0-beta13 5 12/02/2024
2.21.0-beta12 4 12/02/2024
2.21.0-beta11 3 12/20/2024
2.21.0-beta10 3 12/19/2024
2.21.0-beta1 3 12/21/2024
2.20.0 5 12/02/2024
2.20.0-beta3 5 12/02/2024
2.20.0-beta2 3 12/01/2024
2.20.0-beta1 3 12/19/2024
2.19.2 3 12/13/2024
2.19.1 3 11/30/2024
2.19.0 2 12/02/2024
2.19.0-beta2 3 12/13/2024
2.19.0-beta1 3 12/02/2024
2.18.1 2 12/09/2024
2.18.0 2 12/02/2024
2.18.0-beta2 5 12/02/2024
2.18.0-beta1 5 12/02/2024
2.17.0 4 12/02/2024
2.17.0-beta2 2 12/09/2024
2.17.0-beta1 5 12/02/2024
2.16.0 3 12/15/2024
2.15.0 3 12/13/2024
2.15.0-beta2 5 12/02/2024
2.15.0-beta1 5 12/02/2024
2.14.0 4 12/02/2024
2.14.0-beta1 5 12/10/2024
2.13.1 4 12/02/2024
2.13.0 2 12/09/2024
2.12.0 2 12/09/2024
2.12.0-beta2 5 12/01/2024
2.12.0-beta1 1 12/12/2024
2.11.0 3 12/13/2024
2.10.1-beta1 5 12/02/2024
2.10.0 5 12/04/2024
2.10.0-beta2 4 12/02/2024
2.10.0-beta1 5 12/02/2024
2.9.1 4 12/02/2024
2.9.0 5 12/01/2024
2.9.0-beta3 1 12/12/2024
2.9.0-beta2 5 12/02/2024
2.9.0-beta1 5 12/02/2024
2.8.1 5 12/02/2024
2.8.0 2 12/08/2024
2.8.0-beta1 5 12/01/2024
2.7.1 5 12/02/2024
2.7.0 2 12/02/2024
2.6.0 2 12/01/2024
2.5.1 4 12/02/2024
2.5.0 4 12/02/2024
2.5.0-beta1 4 12/02/2024
2.4.0 5 12/02/2024
2.3.0 5 12/10/2024
2.3.0-beta2 5 12/02/2024
2.2.1 3 12/01/2024
2.2.0 3 12/13/2024
2.1.1 2 12/04/2024
2.1.0 2 12/09/2024
2.1.0-beta5 5 12/02/2024
2.1.0-beta4 3 12/13/2024
2.1.0-beta3 5 12/01/2024
2.1.0-beta2 5 12/02/2024
2.1.0-beta1 3 12/13/2024
2.0.0 4 12/11/2024
1.9.0 4 12/01/2024
1.8.0 4 12/13/2024
1.8.0-beta1 4 12/07/2024
1.7.0 2 12/08/2024
1.6.0 4 12/01/2024
1.6.0-beta5 4 12/02/2024
1.6.0-beta4 5 12/02/2024
1.6.0-beta3 3 11/30/2024
1.6.0-beta2 2 12/16/2024
1.6.0-beta1 5 12/02/2024
1.5.0 4 12/06/2024
1.4.0 4 12/13/2024
1.3.0 6 12/04/2024
1.2.0 6 12/02/2024
1.1.0 2 12/12/2024
1.0.0 3 12/04/2024
1.0.0-rc6 3 12/14/2024
1.0.0-rc5 5 12/01/2024
1.0.0-rc4 3 12/13/2024
1.0.0-rc3 3 12/13/2024
1.0.0-rc2 3 12/19/2024
1.0.0-rc1 5 12/01/2024
1.0.0-beta6 5 12/02/2024
1.0.0-beta5 2 12/02/2024
1.0.0-beta4 5 12/02/2024
1.0.0-beta3 5 12/03/2024
1.0.0-beta2 5 12/02/2024