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 PLT Scheme (now Racket), and distributed-computing support from Erlang. On top of this, it adds some 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.
DemosDemo Links programs.
InstallThe latest release of Links is version 0.6.1.
- Install with OPAM: use 'opam install links'. See the Links OPAM install instructions.
- GitHub repository
- Links Development VM Image -- Username: linksuser, Password: password
- Out-of-date basic documentation
Communitylinks-users mailing list
- 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 arrow calculus. Sam Lindley, Philip Wadler, and Jeremy Yallop.
- The essence of form abstraction. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. In the proceedings of APLAS 2008.
- Idioms are oblivious, arrows are meticulous, monads are promiscuous. Sam Lindley, Philip Wadler, and Jeremy Yallop. In the proceedings of MSFP 2008.
- Links: web programming without tiers. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. In the proceedings of FMCO 2006, LNCS 4709.
- Original grant proposal for EPSRC (2005).
Core teamGroup photo (Nov 2006).
- Ezra Cooper, PhD student (graduated).
- James Cheney.
- Gilles Dubochet, MSc student (graduated).
- Stefan Fehrenbach.
- Simon Fowler.
- Daniel Hillerström.
- Sam Lindley.
- Garrett Morris.
- Jan Stolarek.
- Philip Wadler.
- Jeremy Yallop, PhD student (graduated).
- Shriram Krishnamurthi, Nov 2006.
- Thierry Martinez, Mar–Aug 2006.
- Rodney Topor, Sep–Dec 2005. Rodney taught us about transactions.
- 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).
- 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).
- 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.