Development Tools

Felicity – idiomatic JSON:API

Felicity is a framework that allows you to expose your functional F# domain logic as an API following the JSON:API specification, with no boilerplate.

This framework contains over 1,000 end-to-end tests checking success-path and error-path functionality of all operations.

This is free and open source software.

Key Features

  • Based on ASP.NET Core and Giraffe.
  • Thoroughly tested.
  • Highly succinct, declarative and discoverable fluent-style syntax.
  • Designed for with idiomatic, immutable F# domain logic, including DU wrappers and smart constructors.
  • Automatic support for sparse fieldsets and included resources.
  • Automatic routing and link generation for resources and relationships.
  • Any attribute, relationship, or operation may be async or return errors.
  • Loads included resources on-demand and in parallel.
  • Easily pass strongly typed context data (e.g. authentication information) through Felicity to any part of your code.
  • Over 100 common error cases handled automatically; you only have to care about your application-specific errors.
  • If it compiles and starts, it works.
  • Support for polymorphic resource collections and relationships.
  • Built-in support for resource-level precondition validation using ETags and modification dates .(requiring the client to supply If-Match and If-Unmodified-Since to avoid “mid-air collisions”).
  • Resource-level locking and operation queueing to ensure thread safety (can also lock “parent” resources and plug into external locking mechanisms).
  • Supports sideposting (a.k.a. sideloading) to create a related resource hierarchy in a single POST request (not in official JSON:API spec).

Website: github.com/cmeeren/Felicity
Support:
Developer: Christer van der Meeren
License: MIT License

Bolero is written in F#. Learn F# with our recommended free books and free tutorials.


Related Software

F# Web Frameworks
GiraffeNative functional ASP.NET Core web framework
SaturnImplements the server-side, functional MVC pattern
SuaveSimple web development F# library
WebSharperFull-stack, functional reactive web programming
FalcoToolkit for building fast, functional-first and fault-tolerant web applications
BoleroTools and libraries to run F# applications in WebAssembly
FelicityIdiomatic JSON:API
SutilBuild browser-based user interfaces with F# and Fable
OxpeckerFull-stack F# web framework
FrankF# computation expressions
FreyaModern functional stack for web programming

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our carefully curated directory of recommended free and open source software, covering every major software category.

The directory forms part of our extensive collection of articles for Linux enthusiasts. It includes hundreds of detailed reviews, together with free and open source alternatives to proprietary software from companies such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

LinuxLinks also covers interesting projects worth exploring, Linux-compatible hardware, free programming books and tutorials, and much more.

Know a useful free and open source Linux application that we haven’t covered? Tell us about it using our submission form.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted