For now, the Entrelacs System prototype at https://github.com/miellaby/entrelacs stands as a software stack on top of a POSIX system like GNU/Linux.
It includes these components:
- A library allowing to
- An HTTP application server implementing an HTTP/REST API based on the library.
- A web based terminal for the end user.
There are two API to the Arrow Space and its related Entrelacs Machine:
The C API allows to inject native code in the Entrelacs machine as new operators. The plan is to allow the inclusion of trusted binary executables by assimilating Blobs in the Arrow Space.
The Entrelacs Library
The system software layer consists in a thread-safe C library (EntrelacsLibrary) that provides:
- operators to define, root, and browse arrow structures stored in a single persistence file.
- a very basic functional language interpretor, known as the Entrelacs Machine, that runs arrow-based code and whom evaluation state is itself an arrow.
The HTTP server
The Entrelacs server on top of the Entrelacs library allows clients and end-users to share the same Arrow Space via HTTP.
Various clients
- the artsy Entrelacs web terminal is connected to the HTTP server.
- The REPL client also directly accesses to the persistence file.
- The future Entrelacs FUSE file system allows to mount the Arrow Space in the host file system and see arrows as an infinite structure of folders and files.