RethinkDb.Driver.FSharp 0.9.0-beta-02

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

// Install RethinkDb.Driver.FSharp as a Cake Tool
#tool nuget:?package=RethinkDb.Driver.FSharp&version=0.9.0-beta-02&prerelease                

RethinkDb.Driver.FSharp

This package provides idiomatic F# extensions on the official C# driver. Within this package:

Connection Configuration / Creation

open RethinkDb.Driver.FSharp

let dataCfg = DataConfig.fromJson "rethink-config.json"
// - or -
let dataCfg = DataConfig.fromConfiguration [config-section]

let conn = dataCfg.CreateConnection ()  // IConnection

Domain-Specific Language (DSL) / Computation Expression (CE) Style

open RethinkDb.Driver.FSharp

// Remove the conn parameter and usage for point-free style

let getPost postId conn =
    rethink<Post> {
        withTable "Post"
        get postId
        resultOption
        withRetryOptionDefault conn
    }

let updatePost post conn =
    rethink {
        withTable "Post"
        get post.id
        update post
        write
        ignoreResult
        withRetryDefault conn
    }

Function Style

open RethinkDb.Driver.FSharp.Functions

// NOTE: retry logic is not correct for functions

// NOTE: this returns Task<Post>; checking for null/option is not handled
//       as it is with the CE version
let getPost postId conn =
    fromTable "Post"
    |> get postId
    |> runResult<Post> conn
    // |> withRetryDefault

// NOTE: this returns Task<Result>; ignoring inline is not available as
//       it is with the CE version
let updatePost post conn =
    fromTable "Post"
    |> get post.id
    |> update post
    |> runWrite conn
    // |> withRetryDefault

Retry Logic

The driver does not reconnect automatically when the underlying connection has been interrupted. When specified, the retry logic attempts to reconnect; default retries wait 200ms, 500ms, and 1 second. There are also functions to retry once, and those that allow the intervals to be specified.

Strongly-Typed Optional Arguments

Many RethinkDB commands support optional arguments to tweak the behavior of that command. A quick example using the between command (clause):

// ...
    between 1 100 [ LowerBound Open; UpperBound Closed ]
// ...
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  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 (1)

Showing the top 1 NuGet packages that depend on RethinkDb.Driver.FSharp:

Package Downloads
RethinkDB.DistributedCache

An IDistributedCache implementation utilizing RethinkDB for storage

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.9.0-beta-07 311 7/19/2022
0.9.0-beta-06 116 7/18/2022
0.9.0-beta-05 172 6/16/2022
0.9.0-beta-04 136 6/14/2022
0.9.0-beta-03 1,358 5/25/2022
0.9.0-beta-02 114 5/24/2022
0.9.0-beta-01 123 5/18/2022
0.8.0-alpha-0009 141 4/29/2022
0.8.0-alpha-0008 135 4/27/2022
0.8.0-alpha-0007 132 4/22/2022
0.8.0-alpha-0005 130 4/21/2022
0.8.0-alpha-0004 136 4/21/2022
0.8.0-alpha-0003 137 4/19/2022
0.8.0-alpha-0001 133 4/19/2022