Axial.FileSystem 0.12.0

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

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. The runtime supplies its clock and 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. Clock, random and GUID values are scoped runtime services; application authority stays in 'env. Use Flow.withClock, Flow.withRandom and Flow.withGuid to override values for a flow and its descendants. Log.info writes to the current ILogSink (Information+ on stderr by default); install or decorate destinations with Flow.withLogSink / Flow.mapLogSink, and observation callbacks with Flow.withTelemetry.

Core Axial ships these runtime services under the Axial namespace. Flow.runTest env creates a fresh epoch manual clock, seeded random, sequential GUIDs and a recording log. Timed tests explicitly advance TestClock after observing sleeper registration; time never advances automatically. See runtime services.

Install

dotnet add package Axial

Package family

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. Axial 0.12 requires Reified 0.12.1 or later, whose Fable schema builder supports typed schema construction and Config.load decoding on Fable.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  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 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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Axial.FileSystem:

Package Downloads
Axial.Process

[Incubating] Composable external processes for F# workflows, with pipelines, streaming, typed failures, cancellation and safe cleanup.

Axial.Files

[Incubating] Streaming file traversal and text reading for Axial workflows.

Axial.Configuration

[Experimental] Typed application configuration for Axial workflows, with layered environment, command-line, JSON, browser and Microsoft configuration sources decoded by a Reified schema.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.12.0 0 11/5/2026
0.11.3 186 10/19/2026
0.11.2 164 10/19/2026
0.11.1 165 10/19/2026
0.11.0 167 10/19/2026
0.10.0 171 10/1/2026
0.9.3 357 9/14/2026
0.9.2 164 9/14/2026
0.9.1 304 9/11/2026
0.9.0 139 9/11/2026
0.8.0 143 9/11/2026
0.7.1 154 8/18/2026
0.7.0 169 8/17/2026