¿Qué biblioteca Haskell XML usar?
comparison (3)
Veo que hay algunas bibliotecas de procesamiento XML en Haskell.
- HaXml parece ser el más popular (según dons )
- HXT parece ser el más avanzado (pero también el más difícil de aprender gracias a las flechas)
- xml que parece ser solo el analizador básico
- HXML parece estar abandonado
- tagsoup y tagchup
- enlaces libXML y libXML SAX
Entonces, qué biblioteca elegir si la quiero
- ser razonablemente poderoso (para extraer datos de XML y modificar XML)
- Probablemente será apoyado por mucho tiempo en el futuro
- ser una "opción de la comunidad" (opción predeterminada)
Y aunque la mayoría de los anteriores parecen ser suficientes para mis necesidades actuales, ¿cuál es el motivo para elegir uno de ellos sobre los demás?
UPD 20091222 :
Algunas notas sobre licencias:
- BSD o MIT: hexpat , hxt , libxml , tagsoup , xml
- LGPL: HaXml
- GPLv2:
- GPLv3: libxml-sax , tagchup , tagsoup-ht
Yo personalmente recomendaría HXT porque usa flechas, que son una herramienta muy útil y poderosa para aprender, y una biblioteca de análisis XML es el uso perfecto para las flechas (primero fueron inventadas para resolver varios problemas de análisis que las mónadas no podían). Las flechas también comienzan a usarse fuera de la programación funcional pura, como Arrowlets en JavaScript .
El principal problema de HXT, además de la inusual sintaxis de flecha, es el rendimiento y el uso de la memoria. Tengo una aplicación que gasta 1.2 segundos procesando aproximadamente 1.5MB de XML, consumiendo aproximadamente 2.3GB (!) De memoria en el proceso. Libxml2 tarda unos pocos milisegundos en la misma información. La extracción de datos a través de la función css
y los predicados de flecha también parece ser muy lenta en comparación con Libxml2.