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]
Original author(s) | Alp Mestanogullari, Sönke Hahn, Julian Arni |
---|---|
Initial release | 2014 |
Written in | Haskell |
Operating system | Cross-platform |
Available in | Haskell |
Type | Web framework |
License | BSD 3-Clause License[1] |
Website | www |
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]
References
- "servant/LICENSE". GitHub. Retrieved 10 February 2023.
- Bragilevsky, Vitaly (2021). Haskell in Depth. Manning. ISBN 9781617295409.
- Putrady, Ecky (2018). Practical Web Development with Haskell: Master the Essential Skills to Build Fast and Scalable Web Applications. Apress. ISBN 978-1484237380.
- 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.
- 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.
- 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.
- "Type-Safe MySQL Queries via Postgres". NoRedInk Blog. Retrieved 16 February 2023.
- Mulder, Felix. "Haskell in Production: Services at Klarna written in Haskell". Retrieved 16 February 2023.
- "Cardano Wallet Design". Retrieved 16 February 2023.
- "Servant". Wire Documentation. Retrieved 16 February 2023.
- "Browse and search packages | Hackage".