Axial.Hosting.GenHttp 0.11.3

Prefix Reserved
dotnet add package Axial.Hosting.GenHttp --version 0.11.3
                    
NuGet\Install-Package Axial.Hosting.GenHttp -Version 0.11.3
                    
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="Axial.Hosting.GenHttp" Version="0.11.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Axial.Hosting.GenHttp" Version="0.11.3" />
                    
Directory.Packages.props
<PackageReference Include="Axial.Hosting.GenHttp" />
                    
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 Axial.Hosting.GenHttp --version 0.11.3
                    
#r "nuget: Axial.Hosting.GenHttp, 0.11.3"
                    
#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 Axial.Hosting.GenHttp@0.11.3
                    
#: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=Axial.Hosting.GenHttp&version=0.11.3
                    
Install as a Cake Addin
#tool nuget:?package=Axial.Hosting.GenHttp&version=0.11.3
                    
Install as a Cake Tool

Axial

<picture> <source media="(prefers-color-scheme: dark)" srcset="docs/content/img/axial-readme-dark.svg"> <source media="(prefers-color-scheme: light)" srcset="docs/content/img/axial-readme-light.svg"> <img alt="Axial" src="docs/content/img/axial-readme-light.svg" width="160"> </picture>

Write asynchronous F# workflows whose expected failures and required dependencies are visible in their types.

ci docs NuGet License

Axial is pre-1.0 and its API may change before the first stable release.

Your first flow

A handler usually needs services and can fail, but a Task signature shows neither fact. Flow<'env, 'error, 'value> makes both part of the contract.

open Axial

type CheckoutError =
    | OrderNotFound of orderId: int
    | PaymentDeclined of reason: string

type Receipt = { OrderId: int; Total: decimal; Reference: string }

type CheckoutEnv =
    { FindTotal: int -> ColdTask<Result<decimal, CheckoutError>>
      Charge: decimal -> ColdTask<Result<string, CheckoutError>>
      Clock: IClock }
    interface IHasClock with
        member this.Clock = this.Clock

let checkout orderId : Flow<CheckoutEnv, CheckoutError, Receipt> =
    flow {
        let! findTotal = Flow.envWith _.FindTotal
        let! charge = Flow.envWith _.Charge
        let! total = findTotal orderId
        let! reference = charge total
        return { OrderId = orderId; Total = total; Reference = reference }
    }

The application supplies live functions. A test supplies a record of fakes. The workflow does not change.

Adding a timeout and a retry policy leaves the Flow<CheckoutEnv, CheckoutError, Receipt> signature unchanged — these combinators only require the environment to provide a clock (IHasClock) — because the runtime that starts the workflow owns cancellation, retries, and cleanup:

open System

let checkoutOrder orderId : Flow<CheckoutEnv, CheckoutError, Receipt> =
    checkout orderId
    |> Flow.retry (Schedule.recurs 2)
    |> Flow.timeout (TimeSpan.FromSeconds 5.0) (PaymentDeclined "checkout timed out")

Flow also carries concurrency, scheduling, streams, and structured child fibers through the same runtime.

Install

dotnet add package Axial

Package family

  • Axial: the core workflow model: typed failures, dependencies, concurrency, resources, schedules, and streams.
  • Axial.Process: external process composition, pipelines, streaming output, typed failures, cancellation, and cleanup.
  • Axial.HttpClient: typed HTTP requests, response handling, and reliability policies.

Experimental Axial.Hosting.AspNetCore and Axial.Hosting.GenHttp host Reified HTTP contracts on Axial workflows. Supporting packages provide platform services, console and file-system access, hosting, telemetry, and layers. See the package maturity table for each package's rating and application evidence. The package catalogue links the first-class libraries and the complete compatibility matrix.

Documentation and examples

Reified integration

Reified declares value, model, JSON, and HTTP contracts. Axial's optional server adapters execute Reified HTTP contracts as workflows; neither core depends on the other.

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 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.  net10.0 was computed.  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
0.11.3 71 10/19/2026
0.11.2 78 10/19/2026
0.11.1 78 10/19/2026