Servant es un framework web basado en el lenguaje de programación funcional Haskell , con énfasis en la seguridad de tipos de datos . [ 2 ] [ 3 ] [ 4 ] [ 5 ] Es software libre y de código abierto publicado bajo una licencia BSD de 3 cláusulas .
Descripción general
Servant proporciona un lenguaje específico de dominio (DSL) a nivel de tipos para describir las interfaces de programación de aplicaciones de la World Wide Web ( Web API ); son posibles varias interpretaciones de dichas descripciones: como un servidor , que distribuye las solicitudes a los manejadores; como documentación y especificaciones de esquema para la API; y como bibliotecas cliente en varios lenguajes. [ 6 ]
El enfoque a nivel de tipos de Servant resuelve el problema de la expresión al permitir la extensibilidad a lo largo de las dimensiones tanto de los datos como del comportamiento. [ 6 ] Se pueden introducir nuevos combinadores o términos en el DSL de forma modular, al igual que nuevas interpretaciones de los mismos, como paquetes completamente separados. A partir de 2023, se han publicado más de 100 paquetes relacionados con Servant en el repositorio de paquetes de Haskell. [ 7 ]
Usar
Es utilizado en producción por empresas como GitHub , [ 8 ] NoRedInk , [ 9 ] Klarna , [ 10 ] Input Output Global Inc. (en el proyecto Cardano ), [ 11 ] y Wire . [ 12 ]
Véase también
Referencias
- ↑ "Licencia de sirviente" . GitHub . Consultado el 10 de febrero de 2023 .
- ↑ Bragilevsky, Vitaly (mayo de 2021). Haskell en profundidad . Manning. ISBN 978-1617295409.
- ↑ Putrady, Ecky (12 de noviembre de 2018). Desarrollo web práctico con Haskell: Domina las habilidades esenciales para crear aplicaciones web rápidas y escalables . Apress. ISBN 978-1484237380.
- ↑ Mazumder, Mark; Braje, Timothy (4 de noviembre de 2016). "Desarrollo web seguro cliente/servidor con Haskell". 2016 IEEE Cybersecurity Development (SecDev) . pág. 150. doi : 10.1109/SecDev.2016.040 . ISBN 978-1-5090-5589-0. S2CID 1953852 .
- ↑ Mazumder, Mark; Braje, Timothy (4 de noviembre de 2016). "Desarrollo web seguro cliente/servidor con Haskell" . GitHub . Instituto Tecnológico de Massachusetts : Laboratorio Lincoln . Recuperado el 7 de noviembre de 2024 .Presentación de diapositivas original.
- 1 2 Mestanogullari, Alp; Hahn, Sönke; Arni, Julian; Löh, Andreas (2015). "API web a nivel de tipo con Servant: Un ejercicio de programación genérica específica de dominio". Actas del 11.º Taller ACM SIGPLAN sobre Programación Genérica . págs. 1–12 . doi : 10.1145/2808098.2808099 . ISBN 9781450338103. S2CID 14512955 .
- ↑ "Explorar y buscar paquetes" . Haskell.org: Hackage .
- ↑ Thomson, Patrick; Rix, Rob; Wu, Nicolas; Schrijvers, Tom (31 de agosto de 2022). "Fusionando la industria y la academia en GitHub (informe de experiencia)". Actas de la ACM sobre lenguajes de programación . 6 : 496–511 . arXiv : 2206.09206 . doi : 10.1145/3547639 . S2CID 249889460 .
- ↑ "Consultas MySQL con tipado seguro a través de Postgres" . Blog de NoRedInk . 5 de noviembre de 2019. Consultado el 16 de febrero de 2023 .
- ↑ Mulder, Felix. "Haskell en producción: servicios en Klarna escritos en Haskell" . Consultado el 16 de febrero de 2023 .
- ↑ "Diseño de la billetera Cardano" . Consultado el 16 de febrero de 2023 .
- ↑ "Sirviente" . Documentación de Wire . Consultado el 16 de febrero de 2023 .
Enlaces externos
- Sitio web oficial
- Haskell-servant en GitHub
- Software de 2014
- marcos de trabajo web
- Software libre programado en Haskell
- Software que utiliza la licencia BSD.
- Esbozos de software web
- Software libre y de código abierto (stubs)