{"id":16663437,"url":"https://github.com/ndmitchell/hexml","last_synced_at":"2025-05-08T19:50:06.701Z","repository":{"id":59152995,"uuid":"74693026","full_name":"ndmitchell/hexml","owner":"ndmitchell","description":"A bad XML parser","archived":false,"fork":false,"pushed_at":"2024-09-02T12:57:37.000Z","size":181,"stargazers_count":19,"open_issues_count":6,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-09T19:22:16.900Z","etag":null,"topics":["haskell","performant","xml","xml-parser"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ndmitchell.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.txt","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-11-24T17:25:31.000Z","updated_at":"2024-09-02T12:57:41.000Z","dependencies_parsed_at":"2024-10-12T10:41:05.127Z","dependency_job_id":"499abac4-f0b1-4c2a-8252-15d878f87a71","html_url":"https://github.com/ndmitchell/hexml","commit_stats":{"total_commits":228,"total_committers":3,"mean_commits":76.0,"dds":0.00877192982456143,"last_synced_commit":"20d8a872d8448ca2bb3cc43c604ad7b74d3dd61e"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndmitchell%2Fhexml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndmitchell%2Fhexml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndmitchell%2Fhexml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ndmitchell%2Fhexml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ndmitchell","download_url":"https://codeload.github.com/ndmitchell/hexml/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225110575,"owners_count":17422411,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["haskell","performant","xml","xml-parser"],"created_at":"2024-10-12T10:40:58.526Z","updated_at":"2024-11-18T01:05:13.483Z","avatar_url":"https://github.com/ndmitchell.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hexml [![Hackage version](https://img.shields.io/hackage/v/hexml.svg?label=Hackage)](https://hackage.haskell.org/package/hexml) [![Stackage version](https://www.stackage.org/package/hexml/badge/nightly?label=Stackage)](https://www.stackage.org/package/hexml) [![Build status](https://img.shields.io/github/actions/workflow/status/ndmitchell/hexml/ci.yml?branch=master)](https://github.com/ndmitchell/hexml/actions)\n\nAn XML DOM-style parser, that only parses a subset of XML, but is designed to be fast. In particular:\n\n* Entities, e.g. `\u0026amp;`, are not expanded.\n* Not all the validity conditions are checked.\n* No support for `\u003c!DOCTYPE` related features.\n\nThe 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.\n\nHexml 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](http://pugixml.org/) (with a [Haskell binding](https://hackage.haskell.org/package/pugixml) - but be aware the Haskell binding of Pugixml [can segfault](https://github.com/philopon/pugixml-hs/issues/5), in contrast to Hexml which does not).\n\nHexml is tested with [AFL](http://lcamtuf.coredump.cx/afl/).\n\nIf you want lenses for Hexml, see [hexml-lens](http://hackage.haskell.org/package/hexml-lens).\n\nThe optimisation work around Hexml spawned [Xeno](http://hackage.haskell.org/package/xeno), a Haskell-only alternative to Hexml. There is a [talk](https://ndmitchell.com/#hexml_12_oct_2017) covering the performance tricks of Hexml and Xeno.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndmitchell%2Fhexml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fndmitchell%2Fhexml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndmitchell%2Fhexml/lists"}