{
  "_id": "6aba957799f7aa8c6aa41b1c",
  "Package": "xmlrectr",
  "Type": "Package",
  "Title": "Rectangle Arbitrary 'XML' into Analysis-Friendly Tables",
  "Version": "0.1.0",
  "Authors@R": "c(\nperson(\"Lorenzo\", \"Isella\", email = \"lorenzo.isella@gmail.com\", role = c(\"aut\", \"cre\"))\n)",
  "Description": "Converts arbitrary 'XML' into canonical node tables and\nanalysis-friendly rectangular outputs without requiring a\nvocabulary-specific parser. Supports conservative structure\nproposals, explicit reusable profiles, advisory 'XSD'\ninspection, bounded streaming, 'CSV' and 'Parquet' output, an\nanalyst-oriented single-table projection, and record-level\nparallel execution with automatic scheduling. The native\nimplementation uses 'libxml2' for structural acceleration while\nthe 'R' implementation remains the semantic reference.",
  "License": "GPL-3",
  "URL": "https://github.com/larry77/xmlrectr",
  "BugReports": "https://github.com/larry77/xmlrectr/issues",
  "Encoding": "UTF-8",
  "SystemRequirements": "libxml2 development files, pkg-config; on Windows\nuse the matching Rtools toolchain",
  "NeedsCompilation": "yes",
  "VignetteBuilder": "knitr",
  "Config/testthat/edition": "3",
  "Packaged": {
    "Date": "2026-09-28 16:22:32 UTC",
    "User": "root"
  },
  "Author": "Lorenzo Isella [aut, cre]",
  "Maintainer": "Lorenzo Isella <lorenzo.isella@gmail.com>",
  "Config/pak/sysreqs": "libxml2-dev pkg-config",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-09-28 10:30:02 UTC",
  "RemoteUrl": "https://github.com/cran/xmlrectr",
  "RemoteRef": "HEAD",
  "RemoteSha": "846a2f86c98db4d29e5630c237fc6e7b2a30accd",
  "_user": "cran",
  "_type": "src",
  "_file": "xmlrectr_0.1.0.tar.gz",
  "_fileid": "https://r2.ropensci.org/9c444a471918ad7d2fa5236314ea1adfe582d23a134ff62c68cfda0d1e8d54c7",
  "_filesize": 313688,
  "_sha256": "9c444a471918ad7d2fa5236314ea1adfe582d23a134ff62c68cfda0d1e8d54c7",
  "_expires": "2027-01-06T16:27:33.000Z",
  "_created": "2026-09-28T16:22:32.000Z",
  "_published": "2026-09-28T16:27:35.606Z",
  "_jobs": [
    {
      "job": 109024156246,
      "time": 163,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10983621437"
    },
    {
      "job": 109024156275,
      "time": 188,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10982683292"
    },
    {
      "job": 109024156206,
      "time": 173,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10982828214"
    },
    {
      "job": 109024156183,
      "time": 196,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10983481588"
    },
    {
      "job": 109022391722,
      "time": 253,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10983112498"
    },
    {
      "job": 109024156073,
      "time": 129,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "10982768125"
    },
    {
      "job": 109024156279,
      "time": 245,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10983651547"
    },
    {
      "job": 109024156282,
      "time": 174,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "10983856455"
    },
    {
      "job": 109024156326,
      "time": 239,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10983038230"
    },
    {
      "job": 109024156161,
      "time": 197,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "10984041258"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/36450042929",
  "_status": "success",
  "_upstream": "https://github.com/cran/xmlrectr",
  "_commit": {
    "id": "846a2f86c98db4d29e5630c237fc6e7b2a30accd",
    "author": "Lorenzo Isella <lorenzo.isella@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 0.1.0\n",
    "time": 1790591402
  },
  "_maintainer": {
    "name": "Lorenzo Isella",
    "email": "lorenzo.isella@gmail.com",
    "login": "larry77",
    "description": "",
    "uuid": 502614
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.4.0",
      "role": "Depends"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tibble",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "xml2",
      "role": "Imports"
    },
    {
      "package": "XML",
      "role": "Imports"
    },
    {
      "package": "arrow",
      "role": "Suggests"
    },
    {
      "package": "future",
      "role": "Suggests"
    },
    {
      "package": "future.mirai",
      "role": "Suggests"
    },
    {
      "package": "futurize",
      "role": "Suggests"
    },
    {
      "package": "furrr",
      "role": "Suggests"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "mori",
      "role": "Suggests"
    },
    {
      "package": "pkgdown",
      "role": "Suggests"
    },
    {
      "package": "progressr",
      "role": "Suggests"
    },
    {
      "package": "purrr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "yaml",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-40",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "0.1.0",
      "date": "2026-09-28"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "larry77",
      "count": 1,
      "uuid": 502614
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "followers": 630,
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/xmlrectr"
  },
  "_devurl": "https://github.com/larry77/xmlrectr",
  "_topics": [
    "libxml2"
  ],
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/xmlrectr.html"
  ],
  "_cranurl": false,
  "_exports": [
    "as_xml_profile",
    "compile_xml_profile",
    "inspect_xml",
    "inspect_xsd",
    "make_rectangle",
    "propose_xml_profile",
    "read_xml_profile",
    "rectangle_spec",
    "rectangle_xml",
    "rectangle_xml_analyst",
    "rectangle_xml_analyst_csv",
    "rectangle_xml_analyst_parquet",
    "rectangle_xml_csv",
    "rectangle_xml_parallel",
    "rectangle_xml_parquet",
    "review_rectangle",
    "review_xml_proposal",
    "validate_xml_nodes",
    "write_xml_profile",
    "xml_analyst_expand_context",
    "xml_analyst_table",
    "xml_node_children",
    "xml_nodes_schema",
    "xml_profile",
    "xml_rectangle",
    "xml_rectangle_parallel",
    "xml_stream_nodes",
    "xml_stream_rectangle",
    "xml_stream_rectangle_parallel",
    "xml_text_to_nodes_memory",
    "xml_to_nodes_memory",
    "xml_to_nodes_stream"
  ],
  "_help": [
    {
      "page": "xmlrectr-package",
      "title": "xmlrectr: generic XML rectangling",
      "topics": [
        "xmlrectr-package",
        "xmlrectr"
      ]
    },
    {
      "page": "as_xml_profile",
      "title": "Coerce a portable object to an XML profile",
      "topics": [
        "as_xml_profile"
      ]
    },
    {
      "page": "compile_xml_profile",
      "title": "Compile a profile into an executable rectangle specification",
      "topics": [
        "compile_xml_profile"
      ]
    },
    {
      "page": "inspect_xml",
      "title": "Inspect XML structure before defining a rectangle",
      "topics": [
        "inspect_xml"
      ]
    },
    {
      "page": "inspect_xsd",
      "title": "Inspect advisory XSD evidence",
      "topics": [
        "inspect_xsd"
      ]
    },
    {
      "page": "make_rectangle",
      "title": "Create a lower-level rectangle specification",
      "topics": [
        "make_rectangle"
      ]
    },
    {
      "page": "propose_xml_profile",
      "title": "Propose candidate rows, identifiers and fields",
      "topics": [
        "propose_xml_profile"
      ]
    },
    {
      "page": "read_xml_profile",
      "title": "Read an XML profile from JSON or YAML",
      "topics": [
        "read_xml_profile"
      ]
    },
    {
      "page": "rectangle_spec",
      "title": "Create an explicit rectangle specification",
      "topics": [
        "rectangle_spec"
      ]
    },
    {
      "page": "rectangle_xml",
      "title": "Read and rectangle an XML file",
      "topics": [
        "rectangle_xml"
      ]
    },
    {
      "page": "rectangle_xml_analyst",
      "title": "Create an analyst-oriented table directly from XML",
      "topics": [
        "rectangle_xml_analyst"
      ]
    },
    {
      "page": "rectangle_xml_analyst_csv",
      "title": "Write the analyst-oriented XML table to CSV",
      "topics": [
        "rectangle_xml_analyst_csv"
      ]
    },
    {
      "page": "rectangle_xml_analyst_parquet",
      "title": "Write the analyst-oriented XML table to Parquet",
      "topics": [
        "rectangle_xml_analyst_parquet"
      ]
    },
    {
      "page": "rectangle_xml_csv",
      "title": "Rectangle XML to a staged CSV file",
      "topics": [
        "rectangle_xml_csv"
      ]
    },
    {
      "page": "rectangle_xml_parallel",
      "title": "Read and rectangle XML with explicit parallel execution",
      "topics": [
        "rectangle_xml_parallel"
      ]
    },
    {
      "page": "rectangle_xml_parquet",
      "title": "Rectangle XML to a staged Parquet dataset",
      "topics": [
        "rectangle_xml_parquet"
      ]
    },
    {
      "page": "review_rectangle",
      "title": "Review a compiled rectangle specification",
      "topics": [
        "review_rectangle"
      ]
    },
    {
      "page": "review_xml_proposal",
      "title": "Review one part of an XML profile proposal",
      "topics": [
        "review_xml_proposal"
      ]
    },
    {
      "page": "validate_xml_nodes",
      "title": "Validate the canonical XML node-table contract",
      "topics": [
        "validate_xml_nodes"
      ]
    },
    {
      "page": "write_xml_profile",
      "title": "Write an XML profile to JSON or YAML",
      "topics": [
        "write_xml_profile"
      ]
    },
    {
      "page": "xml_analyst_expand_context",
      "title": "Expand analyst-table entity context",
      "topics": [
        "xml_analyst_expand_context"
      ]
    },
    {
      "page": "xml_analyst_table",
      "title": "Project canonical XML into one analyst-oriented table",
      "topics": [
        "xml_analyst_table"
      ]
    },
    {
      "page": "xml_node_children",
      "title": "Return direct canonical children of XML nodes",
      "topics": [
        "xml_node_children"
      ]
    },
    {
      "page": "xml_nodes_schema",
      "title": "Return the canonical XML node-table schema",
      "topics": [
        "xml_nodes_schema"
      ]
    },
    {
      "page": "xml_profile",
      "title": "Create a human-facing reusable XML profile",
      "topics": [
        "xml_profile"
      ]
    },
    {
      "page": "xml_rectangle",
      "title": "Rectangle a canonical XML node table",
      "topics": [
        "xml_rectangle"
      ]
    },
    {
      "page": "xml_rectangle_parallel",
      "title": "Rectangle canonical nodes with explicit parallel execution",
      "topics": [
        "xml_rectangle_parallel"
      ]
    },
    {
      "page": "xml_stream_nodes",
      "title": "Stream canonical XML node batches",
      "topics": [
        "xml_stream_nodes"
      ]
    },
    {
      "page": "xml_stream_rectangle",
      "title": "Stream complete XML records through a rectangle callback",
      "topics": [
        "xml_stream_rectangle"
      ]
    },
    {
      "page": "xml_stream_rectangle_parallel",
      "title": "Stream XML records with explicit parallel execution",
      "topics": [
        "xml_stream_rectangle_parallel"
      ]
    },
    {
      "page": "xml_text_to_nodes_memory",
      "title": "Read XML text into the canonical node table",
      "topics": [
        "xml_text_to_nodes_memory"
      ]
    },
    {
      "page": "xml_to_nodes_memory",
      "title": "Read an XML file into the canonical node table",
      "topics": [
        "xml_to_nodes_memory"
      ]
    },
    {
      "page": "xml_to_nodes_stream",
      "title": "Read XML with the sequential streaming canonical engine",
      "topics": [
        "xml_to_nodes_stream"
      ]
    }
  ],
  "_readme": "https://github.com/cran/xmlrectr/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "glue",
    "lifecycle",
    "magrittr",
    "pillar",
    "pkgconfig",
    "rlang",
    "tibble",
    "utf8",
    "vctrs",
    "XML",
    "xml2"
  ],
  "_sysdeps": [
    {
      "shlib": "libxml2",
      "package": "libxml2-16",
      "headers": "libxml2-dev",
      "source": "libxml2",
      "version": "2.15.2+dfsg-0.1ubuntu0.2",
      "name": "libxml2",
      "homepage": "http://xmlsoft.org",
      "description": "GNOME XML library"
    }
  ],
  "_vignettes": [
    {
      "source": "development.Rmd",
      "filename": "development.html",
      "title": "Architecture and validation",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Semantic reference first",
        "Canonical contract",
        "Parallel execution",
        "Validation before package conversion",
        "Package conversion rule"
      ],
      "created": "2026-09-28 10:30:02",
      "modified": "2026-09-28 10:30:02",
      "commits": 1
    },
    {
      "source": "getting-started.Rmd",
      "filename": "getting-started.html",
      "title": "Getting started with unknown XML",
      "engine": "knitr::rmarkdown",
      "headings": [
        "The core idea",
        "Inspect a sample",
        "Define the profile",
        "Rectangle the XML",
        "Parallel execution is an option, not another workflow",
        "XSD-assisted review",
        "Exploratory analyst table"
      ],
      "created": "2026-09-28 10:30:02",
      "modified": "2026-09-28 10:30:02",
      "commits": 1
    },
    {
      "source": "large-xml.Rmd",
      "filename": "large-xml.html",
      "title": "Large XML, streaming and parallel execution",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Compile once",
        "In-memory execution",
        "Streaming execution",
        "CSV output",
        "Parquet output",
        "Automatic workers and scheduling",
        "The two parallel strategies",
        "parallel_chunks",
        "shared_chunk",
        "Why streaming auto does not pre-count the XML",
        "Correctness invariants"
      ],
      "created": "2026-09-28 10:30:02",
      "modified": "2026-09-28 10:30:02",
      "commits": 1
    }
  ],
  "_score": 3.1760912590556813,
  "_indexed": false,
  "_nocasepkg": "xmlrectr",
  "_universes": [
    "cran",
    "larry77"
  ],
  "_indexurl": "https://larry77.r-universe.dev/xmlrectr",
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-09-28T16:25:09.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "846a2f86c98db4d29e5630c237fc6e7b2a30accd",
      "fileid": "https://r2.ropensci.org/069acb5d6d90a67ac955da80e8a1786c016d863a5d0852c54ed71b53cb076089",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36450042929"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-09-28T16:25:16.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "846a2f86c98db4d29e5630c237fc6e7b2a30accd",
      "fileid": "https://r2.ropensci.org/89ea0fae3a6525bf189d20226de1216ce6197f962bc27842e9d80cd69e640fdb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36450042929"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-09-28T16:25:16.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "846a2f86c98db4d29e5630c237fc6e7b2a30accd",
      "fileid": "https://r2.ropensci.org/c0862a7e32c16da8fa1cf292ce8f4d44dbbcca646e2c6841321cf29c179196ad",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36450042929"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.0",
      "date": "2026-09-28T16:25:30.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "846a2f86c98db4d29e5630c237fc6e7b2a30accd",
      "fileid": "https://r2.ropensci.org/023a52b5e745e8693a71d46bf3313720dd5be82a2e0a3c5412def5d417d24221",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36450042929"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.0",
      "date": "2026-09-28T16:25:11.000Z",
      "arch": "emscripten",
      "commit": "846a2f86c98db4d29e5630c237fc6e7b2a30accd",
      "fileid": "https://r2.ropensci.org/b45985ea07ca0ec1801d9d35200fda6d8349aba3f2391b8cf0410ff9140a3296",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36450042929"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-09-28T16:25:52.000Z",
      "arch": "aarch64",
      "commit": "846a2f86c98db4d29e5630c237fc6e7b2a30accd",
      "fileid": "https://r2.ropensci.org/ab996a812b9f6cebbb33fdfe2acd8b020973779be687d228164f2b8a31693175",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36450042929"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-09-28T16:24:00.000Z",
      "arch": "x86_64",
      "commit": "846a2f86c98db4d29e5630c237fc6e7b2a30accd",
      "fileid": "https://r2.ropensci.org/cd58250af469753d691609b66000d6768a0f5dc396067fe75574e0a5f25ac748",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36450042929"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-09-28T16:25:51.000Z",
      "arch": "aarch64",
      "commit": "846a2f86c98db4d29e5630c237fc6e7b2a30accd",
      "fileid": "https://r2.ropensci.org/a03c24f21b010348ea75a4d80f9f8d8d539b8a614a0f70c14d152ccb7682bbba",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36450042929"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.0",
      "date": "2026-09-28T16:25:01.000Z",
      "arch": "x86_64",
      "commit": "846a2f86c98db4d29e5630c237fc6e7b2a30accd",
      "fileid": "https://r2.ropensci.org/77025dca5922951a6ae62380211be8f85bf601541103c870be3af95d98bfda90",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/36450042929"
    }
  ]
}