Links is a functional programming language designed to make web programming easier.
Links eases building interactive web applications with significant client- and server-side components.
Links incorporates proven ideas from other programming languages: database-query support from Kleisli, web-interaction proposals from Racket, and distributed-computing support from Erlang. On top of this, it adds new web-centric features of its own.
The original Links development effort ended at the beginning of 2009. In 2014 development on Links resumed with a focus on adding session types to Links. Other active areas of research which are driving Links development include work on adding algebraic effects and effect handlers to Links and the Skye project, which builds on Links to support scientific data curation.
- Language-integrated provenance by trace analysis, Stefan Fehrenbach and James Cheney, to appear, DBPL 2019.
- Exceptional Asynchronous Session Types: Session Types without Tiers. Simon Fowler, Sam Lindley, J. Garrett Morris, and Sára Decova. POPL 2019.
- Shallow Effect Handlers. Daniel Hillerström and Sam Lindley. APLAS 2018.
- Incremental Relational Lenses. Rudi Horn, Roly Perera, and James Cheney. ICFP 2018.
- Language-integrated provenance. Stefan Fehrenbach and James Cheney. Science of Computer Programming 155: 103-145 (2018).
- Continuation Passing Style for Effect Handlers. Daniel Hillerström, Sam Lindley, Robert Atkey, and KC Sivaramakrishnan. FSCD 2017.
- Lightweight functional session types. Sam Lindley and J. Garrett Morris. In Behavioural Types: from Theory to Tools , River Publishers, 2017.
- Language-integrated provenance. Stefan Fehrenbach and James Cheney. PPDP 2016.
- Compiling Links Effect Handlers to the OCaml Backend. Daniel Hillerström, Sam Lindley, and KC Sivaramakrishnan. ML Workshop 2016.
- Liberating Effects with Rows and Handlers. Daniel Hillerström and Sam Lindley. In the proceedings of TyDe 2016.
- Effective quotation. James Cheney, Sam Lindley, Gabriel Radanne, and Philip Wadler. In the proceedings of PEPM 2014.
- Query shredding: efficient relational evaluation of queries over nested multisets. James Cheney, Sam Lindley, and Philip Wadler. In the proceedings of SIGMOD 2014.
- Row-based effect types for database integration. Sam Lindley and James Cheney. In the proceedings of TLDI 2012.
- DBWiki: a database wiki prototyped in Links. James Cheney, Sam Lindley, and Heiko Müller. In the proceedings of DBPL 2011.
- The essence of form abstraction. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. In the proceedings of APLAS 2008.
- Links: web programming without tiers. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. In the proceedings of FMCO 2006, LNCS 4709.
- Ezra Cooper, PhD student (graduated).
- James Cheney.
- Gilles Dubochet, MSc student (graduated).
- Frank Emrich.
- Stefan Fehrenbach.
- Simon Fowler.
- Daniel Hillerström.
- Rudi Horn
- Sam Lindley.
- Garrett Morris (now at the University of Kansas).
- Jan Stolarek.
- Philip Wadler.
- Jeremy Yallop, PhD student (graduated).
- TryLinks: an interactive online platform to learn the Links programming language. Nick Wu (2018).
- Building Bobcat - a web content management system in Links. Simon Vansintjan (2010).
- Web Menace: Links demonstration of a classic learning machine. Samuel Corbett (2009).
- Compiling Links server-side code. Steven Holmes (2009).
- LODE: an online IDE for Links in Links. Carl Andersson (2008).
- Online Scrabble in Links. Ashvin Jayaram (2008).
- Building web 2.0 applications in Links: Speed dependent automatic zooming for web applications. Sjoerd van Roosmalen (2008).
- Creating linksCollab: an assessment of Links as a web development language. Steve Strugnell (2008).
- Uselets: UIs using Actors as an Abstraction for Composable Communicating Components. Thomas Weber (LMU/University of Augsburg/TU Munich, 2018).
- Compilation of Effect Handlers and their Applications in Concurrency. Daniel Hillerström (2016).
- Handlers for Algebraic Effects in Links. Daniel Hillerström (2015).
- Functional reactive animation in SVG for the web via Links . Chi-Feng Chou (2011).
- Implementing the Java Pet Store in Links: An assessment of Links as an effective platform for building web applications . Gabriel Tellez (2008).
- Building biological database applications using Links. Ravi Shankar Dangeti (2008).
- The SLinks language. Gilles Dubochet (2005).
- Jonathan Coates, June--July 2019. Jonathan worked on the Links codebase. He implemented support for first-class polymorphism, syntactic sugar for effects, and fixed numerous bugs.
- Tom Davey, June--July 2019. Tom adapted TryLinks for use with Jupyter Notebook.
- Arek Mikolajczak, June--August 2018. Arek worked on TryLinks.
- Nicole Meng, June--July 2018.
- Jake Browning, Summer 2017. Jake implemented a reactive programming library for Links inspired by Elm.
- Sára Decova, Summer 2017. Sára implemented a collection of Links applications making use of session types in the presence of distribution and failure.
- Austėja Elvina Brasiūnaitė, Summer 2014. Elvina helped us to develop session types in Links by building and testing lots of examples.
- Gabriel Radanne, Summer 2012. Gabriel extended the Links to OCaml compiler developed by Steven Holmes to handle database queries.
- Thierry Martinez, Mar–Aug 2006. Thierry experimented with approaches to statically typing XML in Links.