Servant (web framework)

Servant is a free and open-source a popular Haskell-based web framework with an emphasis on type-safety.[2][3][4] Servant provides a type-level domain-specific language (DSL) to describe 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.[5] It is used in production by companies such as GitHub,[6] NoRedInk,[7] Klarna,[8] Input Output Global Inc. (in the Cardano project),[9] and Wire.[10]

Servant
Original author(s)Alp Mestanogullari, Sönke Hahn, Julian Arni
Initial release2014
Written inHaskell
Operating systemCross-platform
Available inHaskell
TypeWeb framework
LicenseBSD 3-Clause License[1]
Websitewww.servant.dev

The type-level approach pioneered by Servant allows extensibility along the dimensions of both data and behavior, and is thus a solution to the expression problem.[5] New combinators or terms in the DSL may be modularly introduced, as well as new interpretations of them, as entirely separate packages. As of 2023, well over a hundred packages related to Servant have been published in the Haskell package repository.[11]

See also

References

  1. "servant/LICENSE". GitHub. Retrieved 10 February 2023.
  2. Bragilevsky, Vitaly (2021). Haskell in Depth. Manning. ISBN 9781617295409.
  3. Putrady, Ecky (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 (2016). "Safe Client/Server Web Development with Haskell". 2016 IEEE Cybersecurity Development (SecDev): 150. doi:10.1109/SecDev.2016.040. ISBN 978-1-5090-5589-0. S2CID 1953852.
  5. Mestanogullari, Alp; Hahn, Sönke; Arni, Julian; Löh, Andreas (2015). "Type-level Web APIs with Servant: An exercise in domain-specific generic programming". WGP 2015: Proceedings of the 11th ACM SIGPLAN Workshop on Generic Programming: 1–12. doi:10.1145/2808098.2808099. ISBN 9781450338103. S2CID 14512955.
  6. Thomson, Patrick; Rix, Rob; Wu, Nicolas; Schrijvers, Tom (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.
  7. "Type-Safe MySQL Queries via Postgres". NoRedInk Blog. Retrieved 16 February 2023.
  8. Mulder, Felix. "Haskell in Production: Services at Klarna written in Haskell". Retrieved 16 February 2023.
  9. "Cardano Wallet Design". Retrieved 16 February 2023.
  10. "Servant". Wire Documentation. Retrieved 16 February 2023.
  11. "Browse and search packages | Hackage".
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.