{
  "_id": "6a44e9826ff6f2357551e76f",
  "Package": "webfakes",
  "Title": "Fake Web Apps for HTTP Testing",
  "Version": "1.5.0.9000",
  "Authors@R": "c(\nperson(\"Gábor\", \"Csárdi\", , \"csardi.gabor@gmail.com\", role = c(\"aut\", \"cre\")),\nperson(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"),\ncomment = c(ROR = \"03wc8by49\")),\nperson(, \"Civetweb contributors\", role = \"ctb\",\ncomment = \"see inst/credits/civetweb.md\"),\nperson(, \"Redoc contributors\", role = \"ctb\",\ncomment = \"see inst/credits/redoc.md\"),\nperson(\"L. Peter\", \"Deutsch\", role = \"ctb\",\ncomment = \"src/md5.h\"),\nperson(\"Martin\", \"Purschke\", role = \"ctb\",\ncomment = \"src/md5.h\"),\nperson(, \"Aladdin Enterprises\", role = \"cph\",\ncomment = \"src/md5.h\"),\nperson(\"Maëlle\", \"Salmon\", , \"maelle.salmon@yahoo.se\", role = \"ctb\",\ncomment = c(ORCID = \"0000-0002-2815-0399\"))\n)",
  "Description": "Create a web app that makes it easier to test web clients\nwithout using the internet. It includes a web app framework\nwith path matching, parameters and templates. Can parse various\n'HTTP' request bodies. Can send 'JSON' data or files from the\ndisk. Includes a web app that implements the 'httpbin.org' web\nservice.",
  "License": "MIT + file LICENSE",
  "URL": "https://webfakes.r-lib.org/, https://github.com/r-lib/webfakes",
  "BugReports": "https://github.com/r-lib/webfakes/issues",
  "Biarch": "true",
  "Config/Needs/website": "tidyverse/tidytemplate",
  "Config/testthat/edition": "3",
  "Config/usethis/last-upkeep": "2025-04-28",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "Config/roxygen2/version": "8.0.0",
  "Repository": "https://r-lib.r-universe.dev",
  "Date/Publication": "2026-06-06 21:50:23 UTC",
  "RemoteUrl": "https://github.com/r-lib/webfakes",
  "RemoteRef": "HEAD",
  "RemoteSha": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-07-01 10:12:25 UTC",
    "User": "root"
  },
  "Author": "Gábor Csárdi [aut, cre],\nPosit Software, PBC [cph, fnd] (ROR: <https://ror.org/03wc8by49>),\nCivetweb contributors [ctb] (see inst/credits/civetweb.md),\nRedoc contributors [ctb] (see inst/credits/redoc.md),\nL. Peter Deutsch [ctb] (src/md5.h),\nMartin Purschke [ctb] (src/md5.h),\nAladdin Enterprises [cph] (src/md5.h),\nMaëlle Salmon [ctb] (ORCID: <https://orcid.org/0000-0002-2815-0399>)",
  "Maintainer": "Gábor Csárdi <csardi.gabor@gmail.com>",
  "_user": "r-lib",
  "_type": "src",
  "_file": "webfakes_1.5.0.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/e0a70ffb4293b10733f0c62044ad4c971c8ab04e72521611ebad2d7d7044a3a5",
  "_filesize": 2071133,
  "_sha256": "e0a70ffb4293b10733f0c62044ad4c971c8ab04e72521611ebad2d7d7044a3a5",
  "_expires": "2026-10-09T10:18:41.000Z",
  "_created": "2026-07-01T10:12:25.000Z",
  "_published": "2026-07-01T10:18:42.375Z",
  "_jobs": [
    {
      "job": 84508203554,
      "time": 182,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8006873959"
    },
    {
      "job": 84508203538,
      "time": 155,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8006860972"
    },
    {
      "job": 84508203530,
      "time": 179,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8006871953"
    },
    {
      "job": 84508203549,
      "time": 153,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8006860542"
    },
    {
      "job": 84508203606,
      "time": 137,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8006854990"
    },
    {
      "job": 84508203598,
      "time": 298,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8006916514"
    },
    {
      "job": 84508203584,
      "time": 151,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8006860183"
    },
    {
      "job": 84508203561,
      "time": 314,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8006922842"
    },
    {
      "job": 84507699736,
      "time": 163,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8006800973"
    },
    {
      "job": 84508203529,
      "time": 181,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8006871631"
    },
    {
      "job": 84508203726,
      "time": 181,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8006871812"
    },
    {
      "job": 84508203566,
      "time": 149,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8006859266"
    },
    {
      "job": 84508203535,
      "time": 151,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8006861557"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495",
  "_status": "success",
  "_upstream": "https://github.com/r-lib/webfakes",
  "_commit": {
    "id": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
    "author": "Gábor Csárdi <csardi.gabor@gmail.com>",
    "committer": "Gábor Csárdi <csardi.gabor@gmail.com>",
    "message": "Fix typos in the documentation\n",
    "time": 1780782623
  },
  "_maintainer": {
    "name": "Gábor Csárdi",
    "email": "csardi.gabor@gmail.com",
    "login": "gaborcsardi",
    "mastodon": "@gaborcsardi@fosstodon.org",
    "bluesky": "@gaborcsardi.org",
    "description": "",
    "uuid": 660288
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.6",
      "role": "Depends"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tools",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "brotli",
      "role": "Suggests"
    },
    {
      "package": "callr",
      "role": "Suggests"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "curl",
      "role": "Suggests"
    },
    {
      "package": "digest",
      "role": "Suggests"
    },
    {
      "package": "glue",
      "role": "Suggests"
    },
    {
      "package": "httpuv",
      "role": "Suggests"
    },
    {
      "package": "httr",
      "role": "Suggests"
    },
    {
      "package": "jsonlite",
      "role": "Suggests"
    },
    {
      "package": "processx",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "xml2",
      "role": "Suggests"
    },
    {
      "package": "zip",
      "version": ">= 2.3.0",
      "role": "Suggests"
    }
  ],
  "_owner": "r-lib",
  "_selfowned": true,
  "_usedby": 1,
  "_updates": [
    {
      "week": "2025-43",
      "n": 1
    },
    {
      "week": "2026-09",
      "n": 1
    },
    {
      "week": "2026-15",
      "n": 8
    },
    {
      "week": "2026-16",
      "n": 1
    },
    {
      "week": "2026-20",
      "n": 19
    },
    {
      "week": "2026-23",
      "n": 3
    }
  ],
  "_tags": [
    {
      "name": "v1.4.1",
      "date": "2026-04-08"
    },
    {
      "name": "v1.5.0",
      "date": "2026-05-16"
    }
  ],
  "_stars": 62,
  "_contributors": [
    {
      "user": "gaborcsardi",
      "count": 509,
      "uuid": 660288
    },
    {
      "user": "maelle",
      "count": 80,
      "uuid": 8360597
    },
    {
      "user": "gergness",
      "count": 1,
      "uuid": 2104579
    },
    {
      "user": "jeroenjanssens",
      "count": 1,
      "uuid": 1368256
    },
    {
      "user": "barracuda156",
      "count": 1,
      "uuid": 92015510
    },
    {
      "user": "zopolis4",
      "count": 1,
      "uuid": 64618338
    },
    {
      "user": "lbm364dl",
      "count": 1,
      "uuid": 58592115
    }
  ],
  "_userbio": {
    "uuid": 22618716,
    "type": "organization",
    "name": "R infrastructure",
    "followers": 740
  },
  "_downloads": {
    "count": 43028,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/webfakes"
  },
  "_devurl": "https://github.com/r-lib/webfakes",
  "_pkgdown": "https://webfakes.r-lib.org/",
  "_searchresults": 21,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/webfakes.html",
    "LICENSE",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/r-lib/webfakes",
  "_realowner": "r-lib",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.1.1",
      "date": "2020-12-16"
    },
    {
      "version": "1.1.2",
      "date": "2021-04-05"
    },
    {
      "version": "1.1.3",
      "date": "2021-04-30"
    },
    {
      "version": "1.1.4",
      "date": "2022-09-08"
    },
    {
      "version": "1.1.5",
      "date": "2022-10-25"
    },
    {
      "version": "1.1.6",
      "date": "2022-11-08"
    },
    {
      "version": "1.1.7",
      "date": "2023-02-08"
    },
    {
      "version": "1.2.0",
      "date": "2023-05-16"
    },
    {
      "version": "1.2.1",
      "date": "2023-10-01"
    },
    {
      "version": "1.3.0",
      "date": "2023-12-11"
    },
    {
      "version": "1.3.1",
      "date": "2024-04-25"
    },
    {
      "version": "1.3.2",
      "date": "2025-01-11"
    },
    {
      "version": "1.4.0",
      "date": "2025-06-24"
    },
    {
      "version": "1.4.1",
      "date": "2026-04-08"
    },
    {
      "version": "1.5.0",
      "date": "2026-05-16"
    }
  ],
  "_exports": [
    "git_app",
    "http_time_stamp",
    "httpbin_app",
    "local_app_process",
    "mw_cgi",
    "mw_cookie_parser",
    "mw_etag",
    "mw_json",
    "mw_log",
    "mw_multipart",
    "mw_range_parser",
    "mw_raw",
    "mw_static",
    "mw_text",
    "mw_urlencoded",
    "new_app",
    "new_app_process",
    "new_regexp",
    "oauth2_httr_login",
    "oauth2_login",
    "oauth2_resource_app",
    "oauth2_third_party_app",
    "server_opts",
    "tmpl_glue"
  ],
  "_help": [
    {
      "page": "git_app",
      "title": "Web app that acts as a git http server",
      "topics": [
        "git_app"
      ]
    },
    {
      "page": "glossary",
      "title": "webfakes glossary",
      "topics": [
        "glossary"
      ]
    },
    {
      "page": "how-to",
      "title": "How to use webfakes in your tests",
      "topics": [
        "how-to"
      ]
    },
    {
      "page": "http_time_stamp",
      "title": "Format a time stamp for HTTP",
      "topics": [
        "http_time_stamp"
      ]
    },
    {
      "page": "httpbin_app",
      "title": "Generic web app for testing HTTP clients",
      "topics": [
        "httpbin_app"
      ]
    },
    {
      "page": "introduction",
      "title": "Happy HTTP testing with webfakes",
      "topics": [
        "introduction"
      ]
    },
    {
      "page": "local_app_process",
      "title": "App process that is cleaned up automatically",
      "topics": [
        "local_app_process"
      ]
    },
    {
      "page": "mw_cgi",
      "title": "Middleware that calls a CGI script",
      "concept": [
        "middleware"
      ],
      "topics": [
        "mw_cgi"
      ]
    },
    {
      "page": "mw_cookie_parser",
      "title": "Middleware to parse Cookies",
      "concept": [
        "middleware"
      ],
      "topics": [
        "mw_cookie_parser"
      ]
    },
    {
      "page": "mw_etag",
      "title": "Middleware that add an 'ETag' header to the response",
      "concept": [
        "middleware"
      ],
      "topics": [
        "mw_etag"
      ]
    },
    {
      "page": "mw_json",
      "title": "Middleware to parse a JSON body",
      "concept": [
        "middleware"
      ],
      "topics": [
        "mw_json"
      ]
    },
    {
      "page": "mw_log",
      "title": "Log requests to the standard output or other connection",
      "concept": [
        "middleware"
      ],
      "topics": [
        "mw_log"
      ]
    },
    {
      "page": "mw_multipart",
      "title": "Parse a multipart HTTP request body",
      "concept": [
        "middleware"
      ],
      "topics": [
        "mw_multipart"
      ]
    },
    {
      "page": "mw_range_parser",
      "title": "Middleware to parse a Range header",
      "concept": [
        "middleware"
      ],
      "topics": [
        "mw_range_parser"
      ]
    },
    {
      "page": "mw_raw",
      "title": "Middleware to read the raw body of a request",
      "concept": [
        "middleware"
      ],
      "topics": [
        "mw_raw"
      ]
    },
    {
      "page": "mw_static",
      "title": "Middleware function to serve static files",
      "concept": [
        "middleware"
      ],
      "topics": [
        "mw_static"
      ]
    },
    {
      "page": "mw_text",
      "title": "Middleware to parse a plain text body",
      "concept": [
        "middleware"
      ],
      "topics": [
        "mw_text"
      ]
    },
    {
      "page": "mw_urlencoded",
      "title": "Middleware to parse an url-encoded request body",
      "concept": [
        "middleware"
      ],
      "topics": [
        "mw_urlencoded"
      ]
    },
    {
      "page": "new_app",
      "title": "Create a new web application",
      "topics": [
        "new_app",
        "webfakes_app"
      ]
    },
    {
      "page": "new_app_process",
      "title": "Run a webfakes app in another process",
      "topics": [
        "new_app_process",
        "webfakes_app_process"
      ]
    },
    {
      "page": "new_regexp",
      "title": "Create a new regular expression to use in webfakes routes",
      "topics": [
        "new_regexp",
        "webfakes_regexp"
      ]
    },
    {
      "page": "oauth2_httr_login",
      "title": "Helper function to use httr's OAuth2.0 functions non-interactively, e.g. in test cases",
      "concept": [
        "OAuth2.0 functions"
      ],
      "topics": [
        "oauth2_httr_login"
      ]
    },
    {
      "page": "oauth2_login",
      "title": "Helper function to log in to a third party OAuth2.0 app without a browser",
      "concept": [
        "OAuth2.0 functions"
      ],
      "topics": [
        "oauth2_login"
      ]
    },
    {
      "page": "oauth2_resource_app",
      "title": "Fake OAuth 2.0 resource and authorization app",
      "concept": [
        "OAuth2.0 functions"
      ],
      "topics": [
        "oauth2_resource_app"
      ]
    },
    {
      "page": "oauth2_third_party_app",
      "title": "App representing the third-party app",
      "concept": [
        "OAuth2.0 functions"
      ],
      "topics": [
        "oauth2_third_party_app"
      ]
    },
    {
      "page": "server_opts",
      "title": "Webfakes web server options",
      "topics": [
        "server_opts"
      ]
    },
    {
      "page": "tmpl_glue",
      "title": "glue based template engine",
      "topics": [
        "tmpl_glue"
      ]
    },
    {
      "page": "webfakes_request",
      "title": "A webfakes request object",
      "topics": [
        "webfakes_request"
      ]
    },
    {
      "page": "webfakes_response",
      "title": "A webfakes response object",
      "topics": [
        "webfakes_response"
      ]
    }
  ],
  "_readme": "https://github.com/r-lib/webfakes/raw/HEAD/README.md",
  "_rundeps": [],
  "_score": 8.480755904008252,
  "_indexed": true,
  "_nocasepkg": "webfakes",
  "_universes": [
    "r-lib",
    "gaborcsardi"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.5.0.9000",
      "date": "2026-07-01T10:15:17.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
      "fileid": "https://r2.ropensci.org/654430845f27c3cc5558b3ddf7de0944866b83153e018124c286e9ac35bae728",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.5.0.9000",
      "date": "2026-07-01T10:15:01.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
      "fileid": "https://r2.ropensci.org/1bb1a67606dbfdf7e3fcc2f9e027ea46190ef246a0506b61dbff212276003473",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.5.0.9000",
      "date": "2026-07-01T10:15:12.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
      "fileid": "https://r2.ropensci.org/3fac1f688e906cc0b04b6c34050811f0a92ab97bce02de5f0ae79ee0adc5746c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.5.0.9000",
      "date": "2026-07-01T10:14:49.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
      "fileid": "https://r2.ropensci.org/9da6ec9b7f49ff8e13847474d5b6122ca4681aedb520f0c864ec8c1cb96fbeeb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.5.0.9000",
      "date": "2026-07-01T10:14:37.000Z",
      "arch": "aarch64",
      "commit": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
      "fileid": "https://r2.ropensci.org/f2e785482902f45612ed476b749110fa014b062afe8560350bf5cb023c22dcd1",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.5.0.9000",
      "date": "2026-07-01T10:15:56.000Z",
      "arch": "x86_64",
      "commit": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
      "fileid": "https://r2.ropensci.org/7812503c0a98cfbb507296d1f063e26943322e4c1218b4543bcc5a9dbf0b3237",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.5.0.9000",
      "date": "2026-07-01T10:14:42.000Z",
      "arch": "aarch64",
      "commit": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
      "fileid": "https://r2.ropensci.org/0e736fca3d1c7c903417e9c5fa2b4be594f04a9a00923cb013f13a171db82b32",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.5.0.9000",
      "date": "2026-07-01T10:16:06.000Z",
      "arch": "x86_64",
      "commit": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
      "fileid": "https://r2.ropensci.org/df098f60af137e7501d5ca748ebc48a063134cdabf6831aefcf8b2a5b1f82eba",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.5.0.9000",
      "date": "2026-07-01T10:15:42.000Z",
      "arch": "emscripten",
      "commit": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
      "fileid": "https://r2.ropensci.org/48976d73a59f3f695f88baa92a7ca92d36f9eae73fe9ae5745683b2a6706e9b8",
      "status": "success",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.5.0.9000",
      "date": "2026-07-01T10:14:21.000Z",
      "arch": "x86_64",
      "commit": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
      "fileid": "https://r2.ropensci.org/d4d9ef9c79e2328e00ff0ea5e4dfe3d3aed0630c2d3de4acfde1cc48c72cac75",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.5.0.9000",
      "date": "2026-07-01T10:14:03.000Z",
      "arch": "x86_64",
      "commit": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
      "fileid": "https://r2.ropensci.org/eaa6a525620604e6f29ad4645d9374e27929db8cae58150b879eadd906b7179a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.5.0.9000",
      "date": "2026-07-01T10:14:00.000Z",
      "arch": "x86_64",
      "commit": "9d6f631217c21c38aeb8ed8c0507c3f0d5f0ef5a",
      "fileid": "https://r2.ropensci.org/2fbf273170aab0af856b98212ff396421e616b6ab6da0b13cd3fa51d79e98143",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/r-lib/actions/runs/28509975495"
    }
  ]
}