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
FrankF# computation expressions
FreyaModern functional stack for web programming

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.

This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more.

Know a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments