Orsak 0.1.0

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

// Install Orsak as a Cake Tool
#tool nuget:?package=Orsak&version=0.1.0                

Orsak


eff {
    let! line = Effects.Console.readLine()
    do! Effect.Console.writeLine $"Hello {line}"
}

Orsak is a library for function effects in F#, allowing pragmatic and composable modelling of side-effects through interfaces. It is inspired by Zio, with F# encoding similar to the approach described by Bartosz Sypytkowski here.

However, Orsak is not intended to be a framework. Rather, it is encouraged and recommended to make use of the existing .NET ecosystem, and Orsak is intended to make that as easy and friction-free as possible. It can be used piecemeal, and introduced to existing codebases in isolated chunks.


This implementation makes use of resumable code to implement the computation expression builder for the lowest possible overhead. The builder also has various overloads for Bind, allowing for friction free interop with TaskLike<'a>, Async<'a>, Result<'T,'E> and more. It supports for, while, use, try-with and try-finally, and also applicative bind when the error-type supports +. While the computation expression is the intended way of working with effects, the corresponding module should contain all the expected functions.


Main documentation is available at https://johsand.github.io/Orsak/

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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Orsak:

Package Downloads
Orsak.AspNetCore

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.4.3-beta0022 99 6/5/2024
0.4.3-beta0016 97 3/8/2024
0.4.3-beta0015 132 1/11/2024
0.4.3-beta0014 104 1/11/2024
0.4.3-beta0013 91 1/11/2024
0.4.3-beta0011 104 1/11/2024
0.4.3-beta0007 172 11/20/2023
0.4.3-beta0004 119 11/20/2023
0.4.3-beta0003 95 11/20/2023
0.4.2 6,811 11/1/2023
0.4.2-beta0008 74 11/1/2023
0.4.1 1,268 10/19/2023
0.4.1-beta0002 111 10/5/2023
0.4.1-beta0001 115 9/29/2023
0.4.0 892 9/19/2023
0.3.1-beta0015 123 9/19/2023
0.3.1-beta0014 113 9/17/2023
0.3.1-beta0013 111 9/17/2023
0.3.1-beta0011 117 5/1/2023
0.3.1-beta0010 149 4/25/2023
0.3.1-beta0009 154 4/24/2023
0.3.1-beta0008 129 4/24/2023
0.3.1-beta0007 139 4/24/2023
0.3.1-beta0005 145 4/22/2023
0.3.1-beta0002 142 4/15/2023
0.3.1-beta0001 129 4/16/2023
0.3.0 2,008 4/15/2023
0.2.1-beta0009 152 4/15/2023
0.2.1-beta0008 112 4/15/2023
0.2.1-beta0006 143 4/13/2023
0.2.1-beta0005 137 4/12/2023
0.2.1-beta0004 148 4/12/2023
0.2.1-beta0002 135 4/11/2023
0.2.1-beta0001 123 4/9/2023
0.2.0 203 4/6/2023
0.1.1-beta0006 150 4/6/2023
0.1.1-beta0004 146 4/6/2023
0.1.1-beta0001 134 4/2/2023
0.1.0 220 3/27/2023
0.1.0-beta0049 130 3/27/2023
0.1.0-beta0047 159 3/25/2023
0.1.0-beta0046 145 3/25/2023
0.1.0-beta0029 145 3/27/2023