{
  "_id": "6a1817a6acfb0bcc41db00c2",
  "Package": "shinylight",
  "Title": "Web Interface to 'R' Functions",
  "Version": "1.2",
  "Date": "2023-10-18",
  "Authors@R": "c(\nperson(\"Pieter\", \"Vermeesch\", email = \"p.vermeesch@ucl.ac.uk\", role = c(\"aut\")),\nperson(\"Tim\", \"Band\", email = \"t.band@ucl.ac.uk\", role = c(\"aut\", \"cre\")))",
  "Description": "Web front end for your 'R' functions producing plots or\ntables. If you have a function or set of related functions, you\ncan make them available over the internet through a web\nbrowser. This is the same motivation as the 'shiny' package,\nbut note that the development of 'shinylight' is not in any way\nlinked to that of 'shiny' (beyond the use of the 'httpuv'\npackage). You might prefer 'shinylight' to 'shiny' if you want\na lighter weight deployment with easier horizontal scaling, or\nif you want to develop your front end yourself in JavaScript\nand HTML just using a lightweight remote procedure call\ninterface to your R code on the server.",
  "Author": "Pieter Vermeesch [aut], Tim Band [aut, cre]",
  "Maintainer": "Tim Band <t.band@ucl.ac.uk>",
  "License": "GPL-3",
  "RoxygenNote": "7.3.1",
  "Encoding": "UTF-8",
  "Config/pak/sysreqs": "make zlib1g-dev",
  "Repository": "https://tim-band.r-universe.dev",
  "Date/Publication": "2024-02-27 10:57:38 UTC",
  "RemoteUrl": "https://github.com/tim-band/shinylight",
  "RemoteRef": "HEAD",
  "RemoteSha": "285e87a5299d27c40bba9b100532d74694d7d4cd",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-28 10:18:42 UTC",
    "User": "root"
  },
  "MD5sum": "540958bb8cde1c6561e0bc3abbaac232",
  "_user": "tim-band",
  "_type": "src",
  "_file": "shinylight_1.2.tar.gz",
  "_fileid": "a4df6fcfce486986cb7d8ea4d5a45b2a4fd76588fa5dd862dff6aaf98df2dd3f",
  "_filesize": 250206,
  "_sha256": "a4df6fcfce486986cb7d8ea4d5a45b2a4fd76588fa5dd862dff6aaf98df2dd3f",
  "_created": "2026-05-28T10:18:42.000Z",
  "_published": "2026-05-28T10:23:34.918Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 78270406463,
      "time": 101,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7263399640"
    },
    {
      "job": 78270406503,
      "time": 99,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7263399300"
    },
    {
      "job": 78270406596,
      "time": 261,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7263438323"
    },
    {
      "job": 78270406465,
      "time": 156,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7263406204"
    },
    {
      "job": 78270046160,
      "time": 143,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7263368343"
    },
    {
      "job": 78270406419,
      "time": 100,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7263399546"
    },
    {
      "job": 78270406448,
      "time": 85,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7263394628"
    },
    {
      "job": 78270406466,
      "time": 78,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7263392628"
    },
    {
      "job": 78270406418,
      "time": 74,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7263391698"
    }
  ],
  "_buildurl": "https://github.com/r-universe/tim-band/actions/runs/26568712787",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/tim-band/shinylight",
  "_commit": {
    "id": "285e87a5299d27c40bba9b100532d74694d7d4cd",
    "author": "Tim Band <t.band@nnnn.com>",
    "committer": "Tim Band <t.band@nnnn.com>",
    "message": "Spaces as + interpreted correctly in /init data\ntest for multipart form data added\ntests updated for latest R svg plot format\nbuild.sh corrected.\nversion bumped.\n",
    "time": 1709031458
  },
  "_maintainer": {
    "name": "Tim Band",
    "email": "t.band@ucl.ac.uk",
    "login": "tim-band",
    "description": "",
    "uuid": 3266052
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.0.0",
      "role": "Depends"
    },
    {
      "package": "grDevices",
      "version": ">= 3.6.2",
      "role": "Imports"
    },
    {
      "package": "httpuv",
      "version": ">= 1.5.4",
      "role": "Imports"
    },
    {
      "package": "jsonlite",
      "version": ">= 1.6.1",
      "role": "Imports"
    },
    {
      "package": "later",
      "version": ">= 1.0",
      "role": "Imports"
    },
    {
      "package": "websocket",
      "version": ">= 1.4.1",
      "role": "Suggests"
    }
  ],
  "_owner": "tim-band",
  "_selfowned": true,
  "_usedby": 1,
  "_updates": [],
  "_tags": [],
  "_stars": 0,
  "_userbio": {
    "uuid": 3266052,
    "type": "user",
    "name": "tim-band"
  },
  "_downloads": {
    "count": 711,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/shinylight"
  },
  "_devurl": "https://github.com/tim-band/shinylight",
  "_searchresults": 1,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/readme.html",
    "extra/readme.md",
    "extra/shinylight.html",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/tim-band/shinylight",
  "_realowner": "tim-band",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.7",
      "date": "2022-09-01"
    },
    {
      "version": "1.0.0",
      "date": "2022-10-18"
    },
    {
      "version": "1.1",
      "date": "2022-11-18"
    },
    {
      "version": "1.1.1",
      "date": "2022-11-21"
    },
    {
      "version": "1.1.2",
      "date": "2022-11-30"
    },
    {
      "version": "1.2",
      "date": "2024-04-23"
    }
  ],
  "_exports": [
    "encodePlot",
    "encodePlotAs",
    "getAddress",
    "runR",
    "sendInfoText",
    "sendProgress",
    "slRunRServer",
    "slServer",
    "slStop"
  ],
  "_help": [
    {
      "page": "browseTo",
      "title": "Opens a browser to look at the server",
      "topics": [
        "browseTo"
      ]
    },
    {
      "page": "downloadCsv",
      "title": "Encodes a data frame as a CSV file to be downloaded",
      "topics": [
        "downloadCsv"
      ]
    },
    {
      "page": "encodePlot",
      "title": "Renders a plot as a base64-encoded image",
      "topics": [
        "encodePlot"
      ]
    },
    {
      "page": "encodePlotAs",
      "title": "Renders a plot as a base64-encoded PNG",
      "topics": [
        "encodePlotAs"
      ]
    },
    {
      "page": "framework.shinylightFrameworkStart",
      "title": "JavaScript function: Starts the Shinylight Framework, if you want to use it.",
      "topics": [
        "framework.shinylightFrameworkStart"
      ]
    },
    {
      "page": "getAddress",
      "title": "Obtains the address that the server is listening on",
      "topics": [
        "getAddress"
      ]
    },
    {
      "page": "indexWithInit",
      "title": "Get index.html with (potentially) the JSON data in `text` inserted.",
      "topics": [
        "indexWithInit"
      ]
    },
    {
      "page": "rrpcServer",
      "title": "Makes and starts a server for serving R calculations",
      "topics": [
        "rrpcServer"
      ]
    },
    {
      "page": "runR",
      "title": "Returns a function that runs an R command",
      "topics": [
        "runR"
      ]
    },
    {
      "page": "sendInfoText",
      "title": "Sends informational text to the client.",
      "topics": [
        "sendInfoText"
      ]
    },
    {
      "page": "sendProgress",
      "title": "Sends a progress update to the client.",
      "topics": [
        "sendProgress"
      ]
    },
    {
      "page": "shinylight.call",
      "title": "JavaScript function",
      "topics": [
        "shinylight.call"
      ]
    },
    {
      "page": "shinylight.initialize",
      "title": "JavaScript function",
      "topics": [
        "shinylight.initialize"
      ]
    },
    {
      "page": "shinylight.makeTable",
      "title": "JavaScript function",
      "topics": [
        "shinylight.makeTable"
      ]
    },
    {
      "page": "shinylight.passToOther",
      "title": "JavaScript function",
      "topics": [
        "shinylight.passToOther"
      ]
    },
    {
      "page": "shinylight.runR",
      "title": "JavaScript function: Runs an R function.",
      "topics": [
        "shinylight.runR"
      ]
    },
    {
      "page": "shinylight.setElementJson",
      "title": "JavaScript function",
      "topics": [
        "shinylight.setElementJson"
      ]
    },
    {
      "page": "shinylight.setElementPlot",
      "title": "JavaScript function: Sets an '<img>' element to display a plot returned by 'runR'.",
      "topics": [
        "shinylight.setElementPlot"
      ]
    },
    {
      "page": "shinylight.setElementText",
      "title": "JavaScript function",
      "topics": [
        "shinylight.setElementText"
      ]
    },
    {
      "page": "shinylight.setGridResult",
      "title": "JavaScript function",
      "topics": [
        "shinylight.setGridResult"
      ]
    },
    {
      "page": "shinylight.setGridResultWithNamedRows",
      "title": "JavaScript function",
      "topics": [
        "shinylight.setGridResultWithNamedRows"
      ]
    },
    {
      "page": "slRunRServer",
      "title": "Start a ShinyLight server which runs R that it is sent",
      "topics": [
        "slRunRServer"
      ]
    },
    {
      "page": "slServer",
      "title": "Start a ShinyLight server",
      "topics": [
        "slServer"
      ]
    },
    {
      "page": "slStop",
      "title": "Stops a ShinyLight GUI",
      "topics": [
        "slStop"
      ]
    },
    {
      "page": "toolkit.all",
      "title": "JavaScript function: Finds if a predicate is true for all members of an array or object.",
      "topics": [
        "toolkit.all"
      ]
    },
    {
      "page": "toolkit.any",
      "title": "JavaScript function: Finds if a predicate is true for any member of an array or object.",
      "topics": [
        "toolkit.any"
      ]
    },
    {
      "page": "toolkit.banner",
      "title": "JavaScript function",
      "topics": [
        "toolkit.banner"
      ]
    },
    {
      "page": "toolkit.button",
      "title": "JavaScript function: Returns a button.",
      "topics": [
        "toolkit.button"
      ]
    },
    {
      "page": "toolkit.deref",
      "title": "JavaScript function: Dereferences an object or array through multiple indices.",
      "topics": [
        "toolkit.deref"
      ]
    },
    {
      "page": "toolkit.footer",
      "title": "JavaScript function: A panel with a smaller footer.",
      "topics": [
        "toolkit.footer"
      ]
    },
    {
      "page": "toolkit.forEach",
      "title": "JavaScript function",
      "topics": [
        "toolkit.forEach"
      ]
    },
    {
      "page": "toolkit.groupTitle",
      "title": "JavaScript function: Option group title",
      "topics": [
        "toolkit.groupTitle"
      ]
    },
    {
      "page": "toolkit.header",
      "title": "JavaScript function: A panel with a smaller header.",
      "topics": [
        "toolkit.header"
      ]
    },
    {
      "page": "toolkit.HTMLContainerElement",
      "title": "JavaScript class: A monkey-patched 'HTMLElement'.",
      "topics": [
        "toolkit.HTMLContainerElement"
      ]
    },
    {
      "page": "toolkit.HTMLControlContainerElement",
      "title": "JavaScript class",
      "topics": [
        "toolkit.HTMLControlContainerElement"
      ]
    },
    {
      "page": "toolkit.HTMLControlElement",
      "title": "JavaScript class",
      "topics": [
        "toolkit.HTMLControlElement"
      ]
    },
    {
      "page": "toolkit.HTMLPositionedElement",
      "title": "JavaScript class: A monkey-patched 'HTMLElement' with some extra methods.",
      "topics": [
        "toolkit.HTMLPositionedElement"
      ]
    },
    {
      "page": "toolkit.image",
      "title": "JavaScript function",
      "topics": [
        "toolkit.image"
      ]
    },
    {
      "page": "toolkit.leftSideBar",
      "title": "JavaScript function: A panel with a side bar.",
      "topics": [
        "toolkit.leftSideBar"
      ]
    },
    {
      "page": "toolkit.loadFileButton",
      "title": "JavaScript function: Returns a button that uploads a file from the client.",
      "topics": [
        "toolkit.loadFileButton"
      ]
    },
    {
      "page": "toolkit.makeLabel",
      "title": "JavaScript function: Makes a label suitable for labelling a control.",
      "topics": [
        "toolkit.makeLabel"
      ]
    },
    {
      "page": "toolkit.nonScrollingWrapper",
      "title": "JavaScript function: Returns a Positioned Element just containing one element.",
      "topics": [
        "toolkit.nonScrollingWrapper"
      ]
    },
    {
      "page": "toolkit.optionsPage",
      "title": "JavaScript function: Returns a Container Element for displaying controls vertically.",
      "topics": [
        "toolkit.optionsPage"
      ]
    },
    {
      "page": "toolkit.overlay",
      "title": "JavaScript function: A panel with an overlay.",
      "topics": [
        "toolkit.overlay"
      ]
    },
    {
      "page": "toolkit.pages",
      "title": "JavaScript function: Returns a Positioned Element for displaying controls in tabbed pages.",
      "topics": [
        "toolkit.pages"
      ]
    },
    {
      "page": "toolkit.paramBoolean",
      "title": "JavaScript function: Returns a checkbox input Toolkit Control.",
      "topics": [
        "toolkit.paramBoolean"
      ]
    },
    {
      "page": "toolkit.paramColor",
      "title": "JavaScript function: Returns a colour input Toolkit Control.",
      "topics": [
        "toolkit.paramColor"
      ]
    },
    {
      "page": "toolkit.paramFloat",
      "title": "JavaScript function: Returns a floating point input Toolkit Control.",
      "topics": [
        "toolkit.paramFloat"
      ]
    },
    {
      "page": "toolkit.paramInteger",
      "title": "JavaScript function: Returns an integer input Toolkit Control.",
      "topics": [
        "toolkit.paramInteger"
      ]
    },
    {
      "page": "toolkit.paramSelector",
      "title": "JavaScript function: Returns a custom selection box Toolkit Control.",
      "topics": [
        "toolkit.paramSelector"
      ]
    },
    {
      "page": "toolkit.paramText",
      "title": "JavaScript function: Returns a text input Toolkit Control.",
      "topics": [
        "toolkit.paramText"
      ]
    },
    {
      "page": "toolkit.preformattedText",
      "title": "JavaScript function: A static text Toolkit Control in a preformatted style.",
      "topics": [
        "toolkit.preformattedText"
      ]
    },
    {
      "page": "toolkit.progressBar",
      "title": "JavaScript function: Returns a Positioned Element progress bar.",
      "topics": [
        "toolkit.progressBar"
      ]
    },
    {
      "page": "toolkit.rightSideBar",
      "title": "JavaScript function: A panel with a side bar.",
      "topics": [
        "toolkit.rightSideBar"
      ]
    },
    {
      "page": "toolkit.scrollingWrapper",
      "title": "JavaScript function: Returns a Positioned Element just containing one element.",
      "topics": [
        "toolkit.scrollingWrapper"
      ]
    },
    {
      "page": "toolkit.setAsBody",
      "title": "JavaScript function: Replaces the '<main>' tag in the document with this element.",
      "topics": [
        "toolkit.setAsBody"
      ]
    },
    {
      "page": "toolkit.stack",
      "title": "JavaScript function: Returns a Container Element for displaying controls vertically.",
      "topics": [
        "toolkit.stack"
      ]
    },
    {
      "page": "toolkit.staticText",
      "title": "JavaScript function: A static text Toolkit Control.",
      "topics": [
        "toolkit.staticText"
      ]
    },
    {
      "page": "toolkit.verticalDivide",
      "title": "JavaScript function: Left/right panels with a draggable divider.",
      "topics": [
        "toolkit.verticalDivide"
      ]
    },
    {
      "page": "toolkit.whenQuiet",
      "title": "JavaScript function: Transforms a function that should not be called too often into a function that can be called as often as you like.",
      "topics": [
        "toolkit.whenQuiet"
      ]
    },
    {
      "page": "toolkit.withTimeout",
      "title": "JavaScript function: Adds a fake callback argument to a nullary function.",
      "topics": [
        "toolkit.withTimeout"
      ]
    }
  ],
  "_readme": "https://github.com/tim-band/shinylight/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "fastmap",
    "httpuv",
    "jsonlite",
    "later",
    "lifecycle",
    "magrittr",
    "otel",
    "promises",
    "R6",
    "Rcpp",
    "rlang"
  ],
  "_score": 3.1760912590556813,
  "_indexed": true,
  "_nocasepkg": "shinylight",
  "_universes": [
    "tim-band"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.2",
      "date": "2026-05-28T10:20:29.000Z",
      "distro": "noble",
      "commit": "285e87a5299d27c40bba9b100532d74694d7d4cd",
      "fileid": "236a9f1a61aa5c4bd5d25620f380a16794b1ec8f237e1ecf3fb8e5455e05a81a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tim-band/actions/runs/26568712787"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.2",
      "date": "2026-05-28T10:20:28.000Z",
      "distro": "noble",
      "commit": "285e87a5299d27c40bba9b100532d74694d7d4cd",
      "fileid": "5c619c979c6fb6bc58a7b41acfcef04aca55e7310a7eb20e494d7ebda1849914",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tim-band/actions/runs/26568712787"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.2",
      "date": "2026-05-28T10:22:42.000Z",
      "commit": "285e87a5299d27c40bba9b100532d74694d7d4cd",
      "fileid": "1f7b601c1f89e21b5e5e4d620cb31fddfacd581d4d02a781d645716f93e28dd7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tim-band/actions/runs/26568712787"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.2",
      "date": "2026-05-28T10:20:51.000Z",
      "commit": "285e87a5299d27c40bba9b100532d74694d7d4cd",
      "fileid": "28a53d854d9674616334a60172bad6bc6e64619f6cd52562427a8cca560363b0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tim-band/actions/runs/26568712787"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.2",
      "date": "2026-05-28T10:20:39.000Z",
      "commit": "285e87a5299d27c40bba9b100532d74694d7d4cd",
      "fileid": "fc907cebc0c3dd8bc67eba87f510f5a8948dc9d46e11d72ecba458c46ae4ce54",
      "status": "success",
      "buildurl": "https://github.com/r-universe/tim-band/actions/runs/26568712787"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.2",
      "date": "2026-05-28T10:19:59.000Z",
      "commit": "285e87a5299d27c40bba9b100532d74694d7d4cd",
      "fileid": "4c94ca6a263aa5aa2ae0d48020e0abfc41acc56582e0f559b26443c496b01a1e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tim-band/actions/runs/26568712787"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.2",
      "date": "2026-05-28T10:20:02.000Z",
      "commit": "285e87a5299d27c40bba9b100532d74694d7d4cd",
      "fileid": "c580db1de07c8f91aca368b7af3cf4de838c02081b938f0d77b804993e583b98",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tim-band/actions/runs/26568712787"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.2",
      "date": "2026-05-28T10:19:59.000Z",
      "commit": "285e87a5299d27c40bba9b100532d74694d7d4cd",
      "fileid": "d845c21f2a836c098df3d0283ca2548de6d8b5797477b7c72662f691c617f40d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/tim-band/actions/runs/26568712787"
    }
  ]
}