Misplaced Pages

Servant (web framework)

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Haskell web framework
Servant
Original author(s)Alp Mestanogullari, Sönke Hahn, Julian Arni
Initial release2014; 11 years ago (2014)
Preview release0.16 / 2018; 7 years ago (2018)
Written inHaskell
Operating systemCross-platform
Available inEnglish
TypeWeb framework
LicenseBSD 3-clause
Websitewww.servant.dev

Servant is a web framework based on the functional programming language Haskell, with an emphasis on data type safety. It is free and open-source software released under a BSD 3-clause license.

Overview

Servant provides a type-level domain-specific language (DSL) to describe World Wide Web application programming interfaces (Web APIs); various interpretations of such descriptions are possible: as a server, which dispatches requests to handlers; as documentation and schema specifications for the API; and as client libraries in various languages.

The type-level approach by Servant solves the expression problem by allowing the extensibility along the dimensions of both data and behavior. New combinators or terms in the DSL can be modularly introduced, as can new interpretations of them, as entirely separate packages. As of 2023, well over 100 packages related to Servant have been published in the Haskell package repository.

Use

It is used in production by companies such as GitHub, NoRedInk, Klarna, Input Output Global Inc. (in the Cardano project), and Wire.

See also

References

  1. "Servant license". GitHub. Retrieved 10 February 2023.
  2. Bragilevsky, Vitaly (May 2021). Haskell in Depth. Manning. ISBN 978-1617295409.
  3. Putrady, Ecky (12 November 2018). Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications. Apress. ISBN 978-1484237380.
  4. Mazumder, Mark; Braje, Timothy (4 November 2016). "Safe Client/Server Web Development with Haskell". 2016 IEEE Cybersecurity Development (SecDev). p. 150. doi:10.1109/SecDev.2016.040. ISBN 978-1-5090-5589-0. S2CID 1953852.
  5. Mazumder, Mark; Braje, Timothy (4 November 2016). "Safe Client/Server Web Development with Haskell". GitHub. Massachusetts Institute of Technology: Lincoln Laboratory. Retrieved 7 November 2024. Original slide presentation.
  6. ^ Mestanogullari, Alp; Hahn, Sönke; Arni, Julian; Löh, Andreas (2015). "Type-level web APIs with Servant: An exercise in domain-specific generic programming". Proceedings of the 11th ACM SIGPLAN Workshop on Generic Programming. pp. 1–12. doi:10.1145/2808098.2808099. ISBN 9781450338103. S2CID 14512955.
  7. "Browse and search packages". Haskell.org: Hackage.
  8. Thomson, Patrick; Rix, Rob; Wu, Nicolas; Schrijvers, Tom (31 August 2022). "Fusing industry and academia at GitHub (experience report)". Proceedings of the ACM on Programming Languages. 6: 496–511. arXiv:2206.09206. doi:10.1145/3547639. S2CID 249889460.
  9. "Type-Safe MySQL Queries via Postgres". NoRedInk Blog. 5 November 2019. Retrieved 16 February 2023.
  10. Mulder, Felix. "Haskell in Production: Services at Klarna written in Haskell". Retrieved 16 February 2023.
  11. "Cardano Wallet Design". Retrieved 16 February 2023.
  12. "Servant". Wire Documentation. Retrieved 16 February 2023.

External links

Web frameworks
.NET
C++
ColdFusion
Common Lisp
Haskell
Java
JavaScript
Perl
PHP
Python
Ruby
Rust
Scala
Smalltalk
Other languages
Haskell programming
Software
Implementations
(features)
Dialects
Electronic design
Libraries
Package managers
Windowing systems
Web frameworks
Book
Community
Eponym
Italics = discontinued
  • ° = Open-source software
    Book Category:Family Category:Software

  • Stub icon

    This Web-software-related article is a stub. You can help Misplaced Pages by expanding it.

    Stub icon

    This free and open-source software article is a stub. You can help Misplaced Pages by expanding it.

    Categories: