{"id":23480284,"url":"https://github.com/NLnetLabs/simdzone","last_synced_at":"2025-08-27T08:32:16.878Z","repository":{"id":49409522,"uuid":"516078359","full_name":"NLnetLabs/simdzone","owner":"NLnetLabs","description":"Fast and standards compliant DNS zone parser","archived":false,"fork":false,"pushed_at":"2025-07-09T08:55:37.000Z","size":883,"stargazers_count":130,"open_issues_count":27,"forks_count":22,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-07-09T09:44:12.925Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"k0ekk0ek/zone-parser","license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NLnetLabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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,"zenodo":null},"funding":{"github":["NLnetLabs"],"custom":["https://nlnetlabs.nl/funding/"]}},"created_at":"2022-07-20T17:39:09.000Z","updated_at":"2025-07-09T08:55:40.000Z","dependencies_parsed_at":"2024-02-19T13:40:42.905Z","dependency_job_id":"00b4ab61-30ca-4b4e-9cb9-c335730aabee","html_url":"https://github.com/NLnetLabs/simdzone","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/NLnetLabs/simdzone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NLnetLabs%2Fsimdzone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NLnetLabs%2Fsimdzone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NLnetLabs%2Fsimdzone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NLnetLabs%2Fsimdzone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NLnetLabs","download_url":"https://codeload.github.com/NLnetLabs/simdzone/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NLnetLabs%2Fsimdzone/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272310303,"owners_count":24911651,"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","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-12-24T20:00:55.045Z","updated_at":"2025-08-27T08:32:16.846Z","avatar_url":"https://github.com/NLnetLabs.png","language":"C","readme":"![Build Status](https://github.com/NLnetLabs/simdzone/actions/workflows/build-test.yml/badge.svg)\n[![Coverity Status](https://scan.coverity.com/projects/27509/badge.svg)](https://scan.coverity.com/projects/nlnetlabs-simdzone)\n[![Mastodon Follow](https://img.shields.io/mastodon/follow/109262826617293067?domain=https%3A%2F%2Ffosstodon.org\u0026style=social)](https://fosstodon.org/@nlnetlabs)\n\n# simdzone: Parsing zone files really fast\n\nFast and standards compliant DNS presentation format parser.\n\nDNS resource records (RRs) can be expressed in text form using the\npresentation format. The format is most frequently used to define a zone in\nmaster files, more commonly known as zone files, and is best considered a\ntabular serialization format with provisions for convenient editing.\n\nThe format is originally defined in [RFC1035 section 5][rfc1035-section-5] and\n[RFC1034 section 3.6.1][rfc1034-section-3-6-1], but as the DNS is\nintentionally extensible, the format has been extended over time too.\n\nThis project provides a lightning fast presentation format deserializer (and\nserializer eventually) for other projects to leverage. Learn more about\nsimdzone by reading the [documentation](https://simdzone.docs.nlnetlabs.nl/).\n\n## Research paper\n\n* Jeroen Koekkoek and Daniel Lemire, [Parsing Millions of DNS Records per Second](https://arxiv.org/abs/2411.12035), Software: Practice and Experience (to appear)\n\n\n\n\n## Motivation\nZone files can become quite large (.com ~24G, .se ~1.3G) and the parser in\nNSD left something to be desired. simdjson demonstrates that applying SIMD\ninstructions for parsing structured text can significantly boost performance.\nsimdzone, whose name is a play on [simdjson][simdjson], aims to achieve a\nsimilar performance boost for parsing zone data.\n\n\u003e Currently SSE4.2 and AVX2 are supported, a fallback is used otherwise.\n\n\u003e simdzone copies some code from the [simdjson][simdjson] project, with\n\u003e permission to use and distribute it under the terms of\n\u003e [The 3-Clause BSD License][bsd-3-clause].\n\n[rfc1035-section-5]: https://datatracker.ietf.org/doc/html/rfc1035#section-5\n[rfc1034-section-3-6-1]: https://datatracker.ietf.org/doc/html/rfc1034#section-3.6.1\n[nsd]: https://nlnetlabs.nl/projects/nsd/about/\n[simdjson]: https://github.com/simdjson/simdjson\n[bsd-3-clause]: https://opensource.org/license/bsd-3-clause/\n\n## Results\nRunning `zone-bench` on my system (Intel Core i7-1065G7) against an older\n`.com` zone file of 12482791271 bytes under Linux (Fedora 39).\n\nclang version 17.0.6, release mode:\n```\n$ time ./zone-bench parse ../../zones/com.zone\nSelected target haswell\nParsed 341535548 records\n\nreal    0m13.533s\nuser    0m12.355s\nsys     0m1.160s\n```\n\nThere are bound to be bugs and quite possibly smarter ways of implementing\nsome operations, but the results are promising.\n\n## Compiling\nMake sure the following tools are installed:\n  * C toolchain (the set of tools to compile C code)\n  * [cmocka](https://cmocka.org/) (if configured with `-DBUILD_TESTING=on`)\n  * [Doxygen](https://www.doxygen.nl/) (if configured with `-DBUILD_DOCUMENTATION=on`)\n  * [Sphinx](https://www.sphinx-doc.org/en/master/) (if configured with `-DBUILD_DOCUMENTATION=on`)\n\nTo compile in release mode:\n```\n$ cd zone-parser\n$ mkdir build\n$ cd build\n$ cmake -DCMAKE_BUILD_TYPE=Release ..\n$ cmake --build .\n```\n\nTo compile in debug mode with testing:\n```\n$ cd zone-parser\n$ mkdir build\n$ cd build\n$ cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=on ..\n$ cmake --build .\n```\n\n## Contributing\nContributions in any way, shape or form are very welcome! Please see\n[CONTRIBUTING.md](CONTRIBUTING.md) to find out how you can help.\n\nDesign decisions and notes on the [FORMAT](FORMAT.md).\n","funding_links":["https://github.com/sponsors/NLnetLabs","https://nlnetlabs.nl/funding/"],"categories":["Miscellaneous","Recently Updated"],"sub_categories":["[Dec 23, 2024](/content/2024/12/23/README.md)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNLnetLabs%2Fsimdzone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNLnetLabs%2Fsimdzone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNLnetLabs%2Fsimdzone/lists"}