hexml: XML subset DOM parser

[ bsd3, library, xml ] [ Propose Tags ] [ Report a vulnerability ]

An XML DOM-style parser, that only parses a subset of XML, but is designed to be fast.


[Skip to Readme]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1, 0.2, 0.3, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5
Change log CHANGES.txt
Dependencies base (>=4.5 && <5), bytestring, extra (>=0.3) [details]
Tested with ghc ==9.6, ghc ==9.4, ghc ==9.2, ghc ==9.0, ghc ==8.10, ghc ==8.8
License BSD-3-Clause
Copyright Neil Mitchell 2016-2024
Author Neil Mitchell <ndmitchell@gmail.com>
Maintainer Neil Mitchell <ndmitchell@gmail.com>
Category XML
Home page https://github.com/ndmitchell/hexml#readme
Bug tracker https://github.com/ndmitchell/hexml/issues
Source repo head: git clone https://github.com/ndmitchell/hexml.git
Uploaded by NeilMitchell at 2024-08-25T16:57:43Z
Distributions LTSHaskell:0.3.5, NixOS:0.3.5, Stackage:0.3.5
Reverse Dependencies 3 direct, 3 indirect [details]
Downloads 5885 total (40 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-08-25 [all 1 reports]

Readme for hexml-0.3.5

[back to package description]

Hexml Hackage version Stackage version Build status

An XML DOM-style parser, that only parses a subset of XML, but is designed to be fast. In particular:

  • Entities, e.g. &amp;, are not expanded.
  • Not all the validity conditions are checked.
  • No support for <!DOCTYPE related features.

The name "hexml" is a combination of "Hex" (a curse) and "XML". The "X" should not be capitalised because the parser is more curse and less XML.

Hexml may be suitable if you want to quickly parse XML, from known sources, and a full XML parser has been shown to be a bottleneck. As an alternative to hexml, which supports things like entities but is still pretty fast, see Pugixml (with a Haskell binding - but be aware the Haskell binding can segfault).

Hexml is tested with AFL.

If you want lenses for Hexml, see hexml-lens.

The optimisation work around Hexml spawned Xeno, a Haskell-only alternative to Hexml. There is a talk covering the performance tricks of Hexml and Xeno.