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, and distributed-computing support from Erlang. On top of this, it adds some new web-centric features of its own.
DemosDemo Links programs.
DownloadThe original Links development effort ended at the beginning of 2009. The last official release of Links is version 0.5. In 2014 development on Links resumed with a focus on adding session types to Links. At some point we intend to merge the session typing branch into the trunk and do a proper release.
- GitHub repository
- Session typing branch
- Old Links source code (version 0.5)
- Out-of-date basic documentation
Communitylinks-users mailing list
- 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).
- Gilles Dubochet, MSc student (graduated).
- Simon Fowler.
- Sam Lindley.
- Garrett Morris.
- 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).
- Daniel Hillerström (2015). Daniel is implementing handlers for algebraic effects in Links taking advantage of the existing row-based effect type system.
- 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.