Meet Falco.

Falco is a toolkit for building secure, fast, functional-first and fault-tolerant web applications using F#.

Blazing Fast

Built upon core ASP.NET components.
Learn More

Easy to Learn

Designed for getting up to speed quickly.
Get Started

Native View Engine

Markup is written in F# and compiled.
See Examples

Extensible

Seamlessly integrates with existing libraries.
Explore How

Falco

NuGet Version build

open Falco
open Falco.Routing
open Falco.HostBuilder

webHost [||] {
    endpoints [
        get "/" (Response.ofPlainText "Hello World")
    ]
}

Falco is a toolkit for building fast and functional-first web applications using F#.

  • Built upon the high-performance components of ASP.NET Core.
  • Optimized for building HTTP applications quickly.
  • Seamlessly integrates with existing .NET Core middleware and libraries.

Key Features

Design Goals

  • Provide a toolset to build a working full-stack web application.
  • Should be simple, extensible and integrate with existing .NET libraries.
  • Can be easily learned.

Learn

The best way to get started is by visiting the documentation. For questions and support please use discussions. The issue list of this repo is exclusively for bug reports and feature requests. For chronological updates refer to the changelog is the best place to find chronological updates.

If you want to stay in touch, feel free to reach out on Twitter.

Have an article or video that you want to share? We'd love to hear from you! To add your content, visit this discussion.

Community Projects

Articles

Videos

Contribute

Thank you for considering contributing to Falco, and to those who have already contributed! We appreciate (and actively resolve) PRs of all shapes and sizes.

We kindly ask that before submitting a pull request, you first submit an issue or open a discussion.

If functionality is added to the API, or changed, please kindly update the relevant document. Unit tests must also be added and/or updated before a pull request can be successfully merged.

All pull requests should originate from the develop branch. A merge into this branch means that your changes are scheduled to go into production with the very next release, which could happen any time from the same day up to a couple weeks (depending on priorities and urgency).

Only pull requests which pass all build checks and comply with the general coding guidelines can be approved.

If you have any further questions, submit an issue or open a discussion or reach out on Twitter.

Why "Falco"?

Kestrel has been a game changer for the .NET web stack. In the animal kingdom, "Kestrel" is a name given to several members of the falcon genus. Also known as "Falco".

Find a bug?

There's an issue for that.

License

Built with ♥ by Pim Brouwers in Toronto, ON. Licensed under Apache License 2.0.