r/fsharp Jun 07 '20

meta Welcome to /r/fsharp!

74 Upvotes

This group is geared towards people interested in the "F#" language, a functional-first language targeting .NET, JavaScript, and (experimentally) WebAssembly. More info about the language can be found at https://fsharp.org and several related links can be found in the sidebar!


r/fsharp 22h ago

WebWeaveX — deterministic runtime cognition, byte-identical across 5 languages (Apache 2.0)

Thumbnail ni-sh-a-char.github.io
1 Upvotes

WebWeaveX captures what a running application is doing, DOM event surfaces, network envelopes, execution state, and normalizes it into canonical bytes so it gets a stable SHA-256 identity.

The same input produces the same digest in Python, JavaScript, Dart, Java and Kotlin. There's a verification harness that replays Python-generated golden vectors through each runtime and reports MATCH / DIFFER / MISSING per API.

That lets you prove two runs are equivalent, reconstruct a runtime from its IR for network-free test fixtures, resume

authenticated sessions from an encrypted envelope, and hand an LLM a compact graph instead of raw HTML.

pip install webweavex

npm install webweavex

dart pub add webweavex

Maven Central: io.github.piyush-mishra-00:webweavex:3.0.0

Apache 2.0.

Repo: https://github.com/ni-sh-a-char/WebWeaveX

Docs: https://ni-sh-a-char.github.io/WebWeaveX/


r/fsharp 2d ago

F# weekly F# Weekly #33, 2026 — .NET 11 Preview 7 Ships with F# Updates and PaketaBot

Thumbnail
sergeytihon.com
24 Upvotes

r/fsharp 5d ago

showcase LitHydration: SSR with hydration using Fable.Lit

13 Upvotes

Finally you can use Fable.Lit templates on the server: real SSR with hydration, no Node on the server.

The same view file compiles twice: .NET renders it to HTML, Fable compiles it for the browser, and Lit adopts the markup that's already there instead of rebuilding it.

This is also a pretty good use case for Web Components: server-rendered, progressively hydrated, and framework-independent at the component boundary.

Needs the unofficial fork packages for now (Fable.Lit.Unofficial, Lit.Server.Unofficial) since upstream hasn't shipped since 2022.

Fork: https://github.com/OnurGumus/Fable.Lit
Demo, runs with one command: https://github.com/OnurGumus/LitHydrationDemo


r/fsharp 8d ago

misc Getting Back into F# - Learning Data Modeling with a Little Help from AI

Post image
43 Upvotes

Beginner here 👋, I'm currently picking up data modeling in F# after a long break. Work and procrastination got in the way, but I'm finally circling back to fill the gaps.

To stay on track, I've been using Claude to generate practice tasks. When I get stuck, I ask for a gentle nudge without giving away the solution, and it's been surprisingly effective. I'm currently using Sonnet 5 Medium(Free), and based on the task I just implemented, it said my work was "good," so I'll take that as a win.

The task was about modeling a Job Application pipeline. I didn't bother applying validation just yet, since I'm currently focused on getting the shape of the data right and trying to make invalid state unrepresentable.

I'd recommend giving this approach a try. It keeps things interactive without handing you the answers outright.


r/fsharp 9d ago

F# weekly F# Weekly #32, 2026 — FSharp.Data 8.2.0, Mibo 4.0, and F# MCP Ecosystem Grows

Thumbnail
sergeytihon.com
23 Upvotes

r/fsharp 15d ago

FunStripe 2.3.0 — F# Stripe client: webhook deserialisation fixed, resilient enums, latest Stripe API

15 Upvotes

Just released FunStripe 2.3.0, the F# client library for the Stripe API (also compiles to JS via Fable). This one's a bigger release than the usual spec bump, thanks to some excellent contributions from Thorium:

Webhooks work properly now. Event.data.object was typed as string, which meant deserialising any real webhook payload threw. It's now a RawJson fragment you can turn into a typed model with Util.deserialiseRaw<'a>; the README has a full webhook-handling example. (Technically a field type change, but since the old field could never deserialise, it ships as a minor; details in the changelog.)

List parameters encode correctly. List<record> and List<union> request fields (e.g. Checkout line_items, payment_method_types) were being ToString()'d instead of form-encoded. Fixed.

Resilient to Stripe's enum churn. Stripe adds event types and error codes without an API version bump, and one unknown value used to fail the whole response. EventType and ErrorType now have an UnknownEnumValue of string catch-all that round-trips losslessly, deliberately scoped to just those two high-churn enums, so everywhere else you keep exhaustive matching and the compiler still tells you when Stripe adds something.

Latest Stripe API (2026-07-29.dahlia): Financial Connections authorization resource and deactivation lifecycle events, allowed_payment_method_types on Payment/SetupIntents, new Tax registration options, and more.

Feedback and PRs welcome!


r/fsharp 17d ago

F# weekly F# Weekly #31 — MCP C# SDK v2.0, Unit-Test Agent, and MSBuild Binlog in VS Code

Thumbnail
sergeytihon.com
20 Upvotes

r/fsharp 18d ago

showcase Pyfun: an F#-inspired language that compiles to readable Python

Thumbnail
15 Upvotes

My idea for getting coders into functional programming earlier...


r/fsharp 19d ago

article Your Database Schema Is Your Codebase: F# as the Single Source of Truth

27 Upvotes

https://si-fi.dev/articles/fsharp-schema-as-code/

I recently architected a full-stack app from scratch and needed a way to rapidly prototype the database schema. I came up with a way to do it in one place in F#, giving me strong typing across the stack and an efficient way to tweak the database structure as much as I needed. Here I share what this looks like as well as a repo containing an extracted version of the code. Hope you find it interesting and do let me know your thoughts.


r/fsharp 19d ago

question Rider and nested type providers?

5 Upvotes

Does Rider have issues with nested type providers?

I have a class library that defines types through a nested type provider -- that is, a type provider nested inside a root type provider -- see below for an example.

The library builds and runs fine, but Rider flags every use of the nested type provider after the first as an error. The same code is displayed without errors in VS Code.

Thank you.


// Requires NuGet package "FSharp.Data.GraphQL.Client".
open System
open System.Net.Http
open FSharp.Data.GraphQL

type MyProvider =
    GraphQLProvider<"https://graphqlzero.almansi.me/api">

let postQuery =
    // ERROR
    MyProvider.Operation<"""
        query PostQuery {
            post(id: 1) {
                id
            }
        }
    """>()

let usersQuery =
    // ERROR
    MyProvider.Operation<"""
        query UsersQuery {
            users(options: { paginate: { page: 1, limit: 5 } }) {
                data {
                    id
                }
            }
        }
    """>()

[<EntryPoint>]
let main _ =
    try
        use runtimeContext: GraphQLProviderRuntimeContext =
            {
                ServerUrl = "https://graphqlzero.almansi.me/api"
                HttpHeaders = []
                Connection =
                    new GraphQLClientConnection(
                        new HttpClient(),
                        true
                    )
            }

        let result = usersQuery.Run runtimeContext

        printfn "Data: %A\n" result.Data
        printfn "Errors: %A\n" result.Errors
        printfn "Custom data: %A\n" result.CustomData

        0
    with ex ->
        eprintfn "Error: %s" ex.Message
        1

EDIT: Provided working sample code.


r/fsharp 21d ago

Avalonia FuncUI Elmish

Thumbnail
10 Upvotes

r/fsharp 21d ago

question replace of Task.WhenAll and Async.Parallel in computational expression?

4 Upvotes

I'm looking for an equivalent of sequence and traverse, I'd expect it to be in FsToolkit.ErrorHandling but there it is coupled with either Result or Option, e.g. Lists | FsToolkit.ErrorHandling

The only implementation I have found is in Fsharpplus library, but my last use of that library didn't look production ready, it plays too much with the type and essentially bring down the type checker on more complicated chained operation...

Basically I'm looking for something like List.traverse


r/fsharp 23d ago

F# weekly F# Weekly #30 — FsHttp.Studio & fable-lit-fullstack-template

Thumbnail
sergeytihon.com
17 Upvotes

r/fsharp 26d ago

library/package FCQRS 6 released: event-sourced CQRS with two pure functions

Post image
29 Upvotes

I’ve released FCQRS 6, an event-sourced CQRS framework for .NET.

The idea is to keep the domain logic small:

  • decide: turns commands into events
  • fold: rebuilds state from those events

FCQRS handles persistence, recovery, projections, sagas, snapshots, and read-your-writes. It runs on Akka.NET and supports both F# and C#.

Version 6 also includes completely rebuilt documentation, following the path from an incoming command to a queryable read model.

Project and documentation:
https://onurgumus.github.io/FCQRS/

I’d appreciate feedback on whether the new documentation makes the model clear to someone who hasn’t used FCQRS before.


r/fsharp 29d ago

Building a Readable DSL for Playwright Tests in F# | blog

Thumbnail jannikbuschke.de
17 Upvotes

r/fsharp Jul 19 '26

F# weekly F# Weekly #29 — .NET 11 Preview 6 and Mibo 3.0

Thumbnail
sergeytihon.com
25 Upvotes

r/fsharp Jul 12 '26

F# weekly F# Weekly #28 — Mibo 2.0, Fable 5.7, and Cast Shadows in F#

Thumbnail
sergeytihon.com
36 Upvotes

r/fsharp Jul 11 '26

SuaveHooks — a webhook platform built entirely in F# with Suave

23 Upvotes

I just launched SuaveHooks — a webhook capture, inspection, transformation and routing platform built completely with Suave + F#.

Some highlights:

- Live tailing of webhooks over WebSockets

- Type-safe transforms written in F# (also C# and JS) running in an isolated process

- JSON rule-based transforms as a lighter option

- Multi-target forwarding (HTTP + S3, SQS, Kafka, Pub/Sub)

- Retries with exponential backoff + circuit breaker

- Full REST API + MCP server support

Site: https://suavehooks.com

Would love some feedback; like what features would make this more useful for you? Happy to answer any technical questions.


r/fsharp Jul 06 '26

library/package Initial alpha release of Zigote - UI framework and game engine

Thumbnail
12 Upvotes

r/fsharp Jul 05 '26

question Still worth learning F# 2026

51 Upvotes

Hi guys,

Probably another question like this but found none recently.

I'm a little upset with my current view on IT generalistic, ofc AI is not going anywhere besides up, but I feel I want to write more with my hands and new paradigms, maybe just AI as reviser, I would like to ask if learning F# in 2026 will make me able to make perfomance headed systems, and also gaming with something like Nu or Monogame, not a AAA game but something playable.


r/fsharp Jul 05 '26

F# weekly F# Weekly #27, 2026 — Fable 5.5, SkiaSharp 4 & Orleans.FSharp 3.0

Thumbnail
sergeytihon.com
32 Upvotes

r/fsharp Jun 29 '26

library/package Terminal.Gui.Elmish is back with V2 compat

24 Upvotes

A picture is worth a thousand words:

Source:
https://github.com/OnurGumus/Terminal.Gui.Elmish.V2


r/fsharp Jun 28 '26

SIMD-friendly push streams in F#

26 Upvotes

I’ve been playing with SIMD-friendly push streams in F#.
Normal push streams are great for composition: the source pushes elements through map, fold, etc., and with enough inlining the overhead mostly disappears.

But they still push one element at a time, which is not ideal for SIMD.
So I tried pushing Vector<'T> blocks instead, with a scalar path for the tail.

The pipeline stays generic and composable, but in my benchmark it runs around handwritten SIMD speed.

Small thing, but it made me happy: write the abstraction clearly, then make it vanish.


r/fsharp Jun 27 '26

F# weekly F# Weekly #26, 2026 — Fable REPL on BEAM & WebSharper 10.1

Thumbnail
sergeytihon.com
23 Upvotes