fsbolero / Bolero

Bolero brings Blazor to F# developers with an easy to use Model-View-Update architecture, HTML combinators, hot reloaded templates, type-safe endpoints, advanced routing and remoting capabilities, and more.

Home Page:https://fsbolero.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bolero - F# Tools for Blazor

Build Nuget

Bolero is a set of tools and libraries to run F# applications in WebAssembly using Blazor.

It includes:

  • HTML functions using a familiar syntax similar to WebSharper.UI or Elmish.React.
  • Templating to write HTML in a separate file and bind it to F# using a type provider.
  • Elmish integration: run an Elmish program as a Blazor component, and Blazor components as Elmish views.
  • Routing: associate the page's current URL with a field in the Elmish model, defined as a discriminated union. Define path parameters directly on this union.
  • Remoting: define asynchronous functions running on the server and simply call them from the client.
  • F#-specific optimizations: Bolero strips F# signature data from assemblies to reduce the size of the served application.

Getting started with Bolero

To get started, you need the following installed:

  • .NET SDK 6.0. Download it here.

Then, to create and run a sample application:

  • Install the Bolero project templates:

    dotnet new -i Bolero.Templates
  • Create a new project:

    dotnet new bolero-app -o MyBoleroApp
  • Run it:

    cd MyBoleroApp
    dotnet run --project src/MyBoleroApp.Server

To learn more, you can check the documentation.

Contributing

Bolero welcomes contributions! If you wish to report issues, propose ideas, or submit pull requests, please use the issue tracker. See also the contributing guide to get started on working on this repository.

About

Bolero brings Blazor to F# developers with an easy to use Model-View-Update architecture, HTML combinators, hot reloaded templates, type-safe endpoints, advanced routing and remoting capabilities, and more.

https://fsbolero.io

License:Apache License 2.0


Languages

Language:F# 98.2%Language:C# 1.0%Language:HTML 0.5%Language:PowerShell 0.3%Language:CSS 0.0%