{"id":1680,"date":"2024-07-22T09:38:39","date_gmt":"2024-07-22T09:38:39","guid":{"rendered":"https:\/\/exponentialdecay.co.uk\/blog\/?p=1680"},"modified":"2025-06-26T20:16:45","modified_gmt":"2025-06-26T20:16:45","slug":"client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite","status":"publish","type":"post","link":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/","title":{"rendered":"Client-side file format identification and reporting pipeline with Siegfried and Demystify Lite"},"content":{"rendered":"<p>With thanks to the sponsorship of Archives New Zealand and Richard Lehane for his great coding expertise and his collaboration; Demystify Lite has a new feature &#8212; Siegfried!!<\/p>\n<p>Richard recently posted about this work <a href=\"https:\/\/www.linkedin.com\/pulse\/siegfried-front-end-richard-lehane-dlvaf\" target=\"_blank\" rel=\"noopener\">on LinkedIn<\/a> but lets look at this effort in more detail below.<\/p>\n<p><!--more--><\/p>\n<h2>Siegfried and WASM<\/h2>\n<p>WASM (WebAssembly) is a <a href=\"https:\/\/en.wikipedia.org\/wiki\/WebAssembly\" target=\"_blank\" rel=\"noopener\">portable binary format<\/a> that enables high-performance applications to run on a web-browser. That latter point, on a web-browser is important, it means these high-performance applications are running completely &#8220;client-side&#8221; which means client data isn&#8217;t transferred to a server, it remains completely within your host environment. This is important when you are working with files that you don&#8217;t want to give the world wider access to, for security, or sensitivity reasons, or whatever.<\/p>\n<p>Siegfried as a <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/published-fractal-in-detail-what-information-is-in-a-file-format-identification-report\/\" target=\"_blank\" rel=\"noopener\">file format identification tool<\/a> is one such application where you will be working with a lot of files that you do not want to surrender control of to anyone else. Demystify Lite was already using <a href=\"https:\/\/pyscript.net\/\" target=\"_blank\" rel=\"noopener\">Pyscript<\/a> which combines WASM with a handful of other technologies to make it possible to run Python scripting client side.<\/p>\n<h2>Archives New Zealand&#8217;s workflow<\/h2>\n<p><em>With Demystify Lite and Siegfried WASM, Archives New Zealand can now promote a browser-only format identification and reporting pipeline to its agencies, thus reducing the amount of sign-off required for running applications on the agency&#8217;s side.<\/em><\/p>\n<p>The previous <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/demystify-lite-and-demystify-2-0-0-released\/\" target=\"_blank\" rel=\"noopener\">denylist work<\/a> for Archives New Zealand added an important missing feature in Demystify for the browser. Agencies can create reports for accessioning archivists prior to digital transfer and the report can flag files of concern, or interest, e.g. those requiring extra care.<\/p>\n<p>The initial file format report still needs to be created offline, at least up until now!<\/p>\n<p>After the denylist feature the team asked me if it would be possible to run DROID in a similar way to demystify.<\/p>\n<p>The request made a lot of sense and I am sure with some work DROID can be reworked to do this, but I am not very adept at Java, and WASM is also still relatively new to me.<\/p>\n<p>I did, however, know of Andy Jackson&#8217;s <a href=\"https:\/\/siegfried-js.glitch.me\/\" target=\"_blank\" rel=\"noopener\">Siegfried JS<\/a> and so I suggested we take a look at it, and see if Siegfried can support something more formally &#8212; if we could, we could ask an agency to use Demystify Lite to first generate a Siegfried report (optionally download that as an important source of truth) and run Demystify&#8217;s analysis, all in one environment, all without transferring files anywhere.<\/p>\n<p>I reached out to Richard, and given I had other priorities for Archives New Zealand, we split our tasks into Richard creating a WASM implementation for Siegfried, and me integrating it into Demystify.<\/p>\n<p>I recommend taking a look at <a href=\"https:\/\/www.linkedin.com\/pulse\/siegfried-front-end-richard-lehane-dlvaf\/\" target=\"_blank\" rel=\"noopener\">Richard&#8217;s blog<\/a> plus some of the other links on that page, especially the <a href=\"https:\/\/github.com\/richardlehane\/siegfried\/blob\/main\/wasm\/README.md\" target=\"_blank\" rel=\"noopener\">README for the WASM implementation<\/a>.<\/p>\n<p>The Demystify Lite implementation is pretty straightforward and follows the template on Richard&#8217;s README to allow Siegfried to produce checksums and give users the option of scanning archive files. Once we&#8217;ve done that, we need to give Siegfied WASM a list of files to scan from a top-level directory and a report will be created and stored in a hidden <code>&lt;div&gt;<\/code> element. The <code>&lt;div&gt;<\/code> is then used to enable download of the results, or creation of the Demystify Lite report (or both!).<\/p>\n<p><a href=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/07\/siegfried-demystify.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1761\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/07\/siegfried-demystify.png\" alt=\"\" width=\"876\" height=\"590\" srcset=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/07\/siegfried-demystify.png 876w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/07\/siegfried-demystify-500x337.png 500w, https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/07\/siegfried-demystify-768x517.png 768w\" sizes=\"auto, (max-width: 876px) 100vw, 876px\" \/><\/a><\/p>\n<p>Although I think there could be some better design on the page itself I am pretty happy with the results and the user-experience seems good enough for a first attempt.<\/p>\n<p>Give it a try: <a href=\"https:\/\/ross-spencer.github.io\/demystify-lite\/\" target=\"_blank\" rel=\"noopener\">https:\/\/ross-spencer.github.io\/demystify-lite\/<\/a> and let me know what you think!<\/p>\n<h2>Enabling new approaches<\/h2>\n<p>Format identification and client side checksums are a potent tool. A mechanism <em>could<\/em> be created to implement something using Siegfried WASM as an entry point for digital transfer, e.g. <em>&#8220;scan files&#8221; -&gt; &#8220;click, confirm to send to agency&#8221;<\/em>. Complete with checksums we are easily able to verify what was sent is what was received in fewer steps (right now we might send a sidecar file containing checksums along with the files). Compared to current approaches where we might do this offline, then\u00a0 create a specific submission ingest package file, we can reduce the number of steps needed for digital transfer quite significantly.<\/p>\n<p>One of the biggest advantages of Siegfried WASM (and by-proxy Demystify Lite) is that we can reduce the number of tools needed by any one person or organization. With access via a web-browser these utilities can be accessed by more people. With fewer tools means fewer security audits in some instances. More people are also able to look at the same tools meaning more eyes on potential issues (security and otherwise) and potentially more bug-fixes and improvements.<\/p>\n<h2>Next steps<\/h2>\n<p>For demystify as I continue to maintain it, I become more and more convinced of the need to improve the HTML generation engine &#8211; it&#8217;s not the greatest looking HTML and it&#8217;s not very modular. I&#8217;d like to make it possible to select sections to output. I also want to incorporate better design using CSS which is much easier to do if Demystify Lite becomes the utility&#8217;s primary entry point.<\/p>\n<p>Demystify Lite&#8217;s web-design can be improved, I might need to find a better crash course on web-design to make it really good though.<\/p>\n<p>I&#8217;ll continue to think about ways of leveraging Siegfried WASM. I want to consider how it can be better used in <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/ipres2024-self-sovereign-digital-preservation-the-reviewers-enjoyed-your-submission-but-what-reviewers\/\" target=\"_blank\" rel=\"noopener\">decentralization efforts<\/a>. I hope others will take a look as well. I can&#8217;t wait to see what&#8217;s made from this new utility.<\/p>\n<h2>Thanks again to Archives New Zealand<\/h2>\n<p>I appreciate the opportunity to help enable this integration. It is difficult for me to spend a lot of time improving these tools without sponsorship and I appreciate Archives New Zealand recognizing this utility as an important part of their workflow and finding ways to fund its improvement.<\/p>\n<p>It is always great to work alongside Richard, so that&#8217;s another positive! I also feel privileged to see the work come good and be one of its first integrator&#8217;s.<\/p>\n<h2>More information<\/h2>\n<p>I still have it on my TODO list to look at WASM in more detail. Unfortunately the nitty gritty of this work was outside of my remit this time around but it is a topic I hope to come back to. Looking more closely at Richard&#8217;s work here will be a good way to learn.<\/p>\n<p>Take a look at Andy Jackson&#8217;s <a href=\"https:\/\/anjackson.net\/2023\/03\/10\/making-websites-archivable-with-javascript\/\" target=\"_blank\" rel=\"noopener\">blog on some novel uses of client side technology<\/a> such as this and its potential to improve web-archiving.<\/p>\n<p>Demystify-life with added Siegfried is <a href=\"https:\/\/ross-spencer.github.io\/demystify-lite\/\" target=\"_blank\" rel=\"noopener\">live here<\/a>, please give it a whirl. Any feedback is appreciated. The Demystify Lite repository is <a href=\"https:\/\/github.com\/ross-spencer\/demystify-lite\" target=\"_blank\" rel=\"noopener\">here<\/a> and is a good place to log suggested improvements or note any bugs that you have discovered.<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1680\" class=\"pvc_stats total_only  \" data-element-id=\"1680\" style=\"\"><i class=\"pvc-stats-icon small\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>With thanks to the sponsorship of Archives New Zealand and Richard Lehane for his great coding expertise and his collaboration; Demystify Lite has a new feature &#8212; Siegfried!!<\/p>\n<p>Richard recently posted about this work <a href=\"https:\/\/www.linkedin.com\/pulse\/siegfried-front-end-richard-lehane-dlvaf\" target=\"_blank\" rel=\"noopener\">on LinkedIn<\/a> but lets look at this effort in more detail below.<\/p>\n<div class=\"link-more\"><a href=\"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &ldquo;Client-side file format identification and reporting pipeline with Siegfried and Demystify Lite&rdquo;<\/span>&hellip;<\/a><\/div>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1680\" class=\"pvc_stats total_only  \" data-element-id=\"1680\" style=\"\"><i class=\"pvc-stats-icon small\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":1764,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[86,3,75,20,19],"tags":[59,96,147,103,71,15,29,76,185,97],"class_list":["post-1680","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-archives","category-digital-preservation","category-golang","category-just-code","category-python","tag-archives","tag-coding","tag-digipres","tag-digital-archiving","tag-digital-preservation","tag-droid","tag-file-format","tag-golang","tag-siegfried","tag-software-development","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Client-side file format identification and reporting pipeline with Siegfried and Demystify Lite - ross spencer :: exponentialdecay.digipres :: blog<\/title>\n<meta name=\"description\" content=\"A look at the work completed on Demystify Lite to incorporate Siegfried as a client-side feature meaning files no longer leave your computer.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Client-side file format identification and reporting pipeline with Siegfried and Demystify Lite - ross spencer :: exponentialdecay.digipres :: blog\" \/>\n<meta property=\"og:description\" content=\"A look at the work completed on Demystify Lite to incorporate Siegfried as a client-side feature meaning files no longer leave your computer.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/\" \/>\n<meta property=\"og:site_name\" content=\"ross spencer :: exponentialdecay.digipres :: blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-22T09:38:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-26T20:16:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/07\/siegfried-demystify-wasm.png\" \/>\n\t<meta property=\"og:image:width\" content=\"831\" \/>\n\t<meta property=\"og:image:height\" content=\"463\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ross Spencer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@beet_keeper\" \/>\n<meta name=\"twitter:site\" content=\"@beet_keeper\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ross Spencer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/\"},\"author\":{\"name\":\"Ross Spencer\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"headline\":\"Client-side file format identification and reporting pipeline with Siegfried and Demystify Lite\",\"datePublished\":\"2024-07-22T09:38:39+00:00\",\"dateModified\":\"2025-06-26T20:16:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/\"},\"wordCount\":1154,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"image\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/siegfried-demystify-wasm.png\",\"keywords\":[\"Archives\",\"Coding\",\"digipres\",\"Digital Archiving\",\"Digital Preservation\",\"DROID\",\"File Format\",\"Golang\",\"siegfried\",\"Software Development\"],\"articleSection\":[\"Archives\",\"Digital Preservation\",\"Golang\",\"Just Code\",\"Python\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/\",\"name\":\"Client-side file format identification and reporting pipeline with Siegfried and Demystify Lite - ross spencer :: exponentialdecay.digipres :: blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/siegfried-demystify-wasm.png\",\"datePublished\":\"2024-07-22T09:38:39+00:00\",\"dateModified\":\"2025-06-26T20:16:45+00:00\",\"description\":\"A look at the work completed on Demystify Lite to incorporate Siegfried as a client-side feature meaning files no longer leave your computer.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/#primaryimage\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/siegfried-demystify-wasm.png\",\"contentUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/07\\\/siegfried-demystify-wasm.png\",\"width\":831,\"height\":463},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Client-side file format identification and reporting pipeline with Siegfried and Demystify Lite\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/\",\"name\":\"ross spencer :: exponentialdecay.digipres :: blog\",\"description\":\"Digital preservation analyst, researcher, and software developer\",\"publisher\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\",\"name\":\"Ross Spencer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"contentUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"width\":2560,\"height\":2560,\"caption\":\"Ross Spencer\"},\"logo\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\"},\"description\":\"Digital preservation domain expert and full-stack software developer.\",\"sameAs\":[\"http:\\\/\\\/www.exponentialdecay.co.uk\\\/blog\",\"https:\\\/\\\/www.instagram.com\\\/b33tk33p3r\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ross-spencer-b6b9b758\\\/\",\"https:\\\/\\\/x.com\\\/beet_keeper\"],\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/author\\\/exponentialdecay\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Client-side file format identification and reporting pipeline with Siegfried and Demystify Lite - ross spencer :: exponentialdecay.digipres :: blog","description":"A look at the work completed on Demystify Lite to incorporate Siegfried as a client-side feature meaning files no longer leave your computer.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/","og_locale":"en_US","og_type":"article","og_title":"Client-side file format identification and reporting pipeline with Siegfried and Demystify Lite - ross spencer :: exponentialdecay.digipres :: blog","og_description":"A look at the work completed on Demystify Lite to incorporate Siegfried as a client-side feature meaning files no longer leave your computer.","og_url":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/","og_site_name":"ross spencer :: exponentialdecay.digipres :: blog","article_published_time":"2024-07-22T09:38:39+00:00","article_modified_time":"2025-06-26T20:16:45+00:00","og_image":[{"width":831,"height":463,"url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/07\/siegfried-demystify-wasm.png","type":"image\/png"}],"author":"Ross Spencer","twitter_card":"summary_large_image","twitter_creator":"@beet_keeper","twitter_site":"@beet_keeper","twitter_misc":{"Written by":"Ross Spencer","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/#article","isPartOf":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/"},"author":{"name":"Ross Spencer","@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"headline":"Client-side file format identification and reporting pipeline with Siegfried and Demystify Lite","datePublished":"2024-07-22T09:38:39+00:00","dateModified":"2025-06-26T20:16:45+00:00","mainEntityOfPage":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/"},"wordCount":1154,"commentCount":1,"publisher":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"image":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/#primaryimage"},"thumbnailUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/07\/siegfried-demystify-wasm.png","keywords":["Archives","Coding","digipres","Digital Archiving","Digital Preservation","DROID","File Format","Golang","siegfried","Software Development"],"articleSection":["Archives","Digital Preservation","Golang","Just Code","Python"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/","url":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/","name":"Client-side file format identification and reporting pipeline with Siegfried and Demystify Lite - ross spencer :: exponentialdecay.digipres :: blog","isPartOf":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/#primaryimage"},"image":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/#primaryimage"},"thumbnailUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/07\/siegfried-demystify-wasm.png","datePublished":"2024-07-22T09:38:39+00:00","dateModified":"2025-06-26T20:16:45+00:00","description":"A look at the work completed on Demystify Lite to incorporate Siegfried as a client-side feature meaning files no longer leave your computer.","breadcrumb":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/#primaryimage","url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/07\/siegfried-demystify-wasm.png","contentUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2024\/07\/siegfried-demystify-wasm.png","width":831,"height":463},{"@type":"BreadcrumbList","@id":"https:\/\/exponentialdecay.co.uk\/blog\/client-side-identification-and-reporting-pipeline-with-siegfried-and-demystify-lite\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/exponentialdecay.co.uk\/blog\/"},{"@type":"ListItem","position":2,"name":"Client-side file format identification and reporting pipeline with Siegfried and Demystify Lite"}]},{"@type":"WebSite","@id":"https:\/\/exponentialdecay.co.uk\/blog\/#website","url":"https:\/\/exponentialdecay.co.uk\/blog\/","name":"ross spencer :: exponentialdecay.digipres :: blog","description":"Digital preservation analyst, researcher, and software developer","publisher":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/exponentialdecay.co.uk\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716","name":"Ross Spencer","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","contentUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","width":2560,"height":2560,"caption":"Ross Spencer"},"logo":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png"},"description":"Digital preservation domain expert and full-stack software developer.","sameAs":["http:\/\/www.exponentialdecay.co.uk\/blog","https:\/\/www.instagram.com\/b33tk33p3r\/","https:\/\/www.linkedin.com\/in\/ross-spencer-b6b9b758\/","https:\/\/x.com\/beet_keeper"],"url":"https:\/\/exponentialdecay.co.uk\/blog\/author\/exponentialdecay\/"}]}},"views":1598,"_links":{"self":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1680","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=1680"}],"version-history":[{"count":18,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1680\/revisions"}],"predecessor-version":[{"id":2566,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1680\/revisions\/2566"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/media\/1764"}],"wp:attachment":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=1680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=1680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=1680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}