This repository contains interfaces, components, and tests to inform the design of a Solid server in TypeScript.
Status: Archived
This repository has been used to inform architectural diagrams for a possible Solid server architecture. Its code might still be useful for educational purposes.
The main goal of this repository is a strict and modular implementation of the Solid HTTP request handling flow. This flow was designed to ensure that every decision for every HTTP request is only made in one place.
This project translates those ideas into working program code. Crucially, the common logic shared by all HTTP operations in the LDP spec has been abstracted into one single code path. In contrast to existing LDP implementations, which often have individual HTTP methods as an abstraction, this architecture guarantees common behavior across all HTTP methods, and makes that behavior unit-testable.
A consequence is that the back-end interface is not focused on HTTP methods, but rather on the atomic operations that back-ends need to support.
©2018–present Ruben Verborgh, MIT license