links-sqlite3

SQLite database driver for the Links Programming Language
README

Links helps to build modern Ajax-style applications: those with
significant client- and server-side components.

A typical, modern web program involves many "tiers": part of the
program runs in the web browser, part runs on a web server, and part
runs in specialized systems such as a relational database. To create
such a program, the programmer must master a myriad of languages: the
logic is written in a mixture of Java, Python, and Perl; the
presentation in HTML; the GUI behavior in Javascript; and the queries
are written in SQL or XQuery. There is no easy way to link these: to
be sure, for example, that an HTML form or an SQL query produces the
type of data that the Java code expects. This is called the impedance
mismatch problem.

Links eases the impedance mismatch problem by providing a single
language for all three tiers. The system is responsible for
translating the code into suitable languages for each tier: for
instance, translating some code into Javascript for the browser, some
into Java for the server, and some into SQL to use the database.

Links incorporates ideas proven in other programming languages:
database-query support from Kleisli, web-interaction proposals from
PLT Scheme, and distributed-computing support from Erlang. On top of
this, it adds some new web-centric features of its own.

FEATURES

  • Allows web programs to be written in a single programming language

  • Call-by-value functional language

  • Server / Client annotations

  • AJAX

  • Scalability through defunctionalised server continuations.

  • Statically typed database access a la Kleisli

  • Concurrent processes on the client and the server

  • Statically typed Erlang-esque message passing

  • Polymorphic records and variants

  • An effect system for supporting abstraction over database queries
    whilst guaranteeing that they can be efficiently compiled to SQL

  • Handlers for algebraic effects on the server-side and the client-side

Install
Published
21 Jul 2022
Sources
links-0.9.7.tbz
sha256=8030ef41d05e88b8c9d987816d362c87019d740ee75f2df9e30545e8f26547fc
sha512=a2ddfc0f9b606ac8c9b91ef3a368682c845915bd2943bbdda402288dbfe3e397317b08094cf328eb201c4c7ced744aad9825ca22a835a677687ef8b33d5c95d9
Dependencies
links
= version
dune
>= "2.7"
ocaml
>= "4.08.0"
Reverse Dependencies