{"id":16571590,"url":"https://github.com/hrbrmstr/varmint","last_synced_at":"2026-01-04T17:02:14.973Z","repository":{"id":141238966,"uuid":"129118347","full_name":"hrbrmstr/varmint","owner":"hrbrmstr","description":"🐹 Retrieve Content from and Interact with ‘Gopher’ Servers","archived":false,"fork":false,"pushed_at":"2018-04-11T15:57:41.000Z","size":16,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-21T03:42:40.739Z","etag":null,"topics":["gopher","gopher-protocol","r","rstats"],"latest_commit_sha":null,"homepage":null,"language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hrbrmstr.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-11T15:52:46.000Z","updated_at":"2024-09-03T13:50:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"6af8c7a2-f983-4209-a048-9aa588bae426","html_url":"https://github.com/hrbrmstr/varmint","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hrbrmstr/varmint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrbrmstr%2Fvarmint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrbrmstr%2Fvarmint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrbrmstr%2Fvarmint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrbrmstr%2Fvarmint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hrbrmstr","download_url":"https://codeload.github.com/hrbrmstr/varmint/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrbrmstr%2Fvarmint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28206351,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2026-01-04T02:00:06.065Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gopher","gopher-protocol","r","rstats"],"created_at":"2024-10-11T21:24:30.804Z","updated_at":"2026-01-04T17:02:14.956Z","avatar_url":"https://github.com/hrbrmstr.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\noutput: rmarkdown::github_document\n---\n\n# varmint\n\nRetrieve Content from and Interact with 'Gopher' Servers\n\n## Description\n\nThe 'Gopher' protocol is a 'TCP/IP' application layer protocol\ndesigned for distributing, searching, and retrieving documents over the \nInternet. The 'Gopher' protocol was strongly oriented towards a menu-document \ndesign and presented an alternative to the World Wide Web in its early \nstages, but ultimately 'Hypertext Transfer Protocol' ('HTTP') became the \ndominant protocol. The 'Gopher' ecosystem is often regarded as the effective\npredecessor of the 'World Wide Web'. Tools are provided to interact with\nand retrieve content from 'Gopher' servers.\n\n## What's Inside The Tin\n\nThe following functions are implemented:\n\n- `gopher`:\tFetch a resource using the gopher protocol\n- `g_content`:\tRetrieve the content portion of a gopher response\n\n## TODO\n\n- better handling of the `url` parameter to `gopher()`\n- handle `URL` selectors\n- handle content types\n- console gopher client\n- Shiny gopher client\n\n## Installation\n\n```{r eval=FALSE}\ndevtools::install_github(\"hrbrmstr/varmint\")\n```\n\n```{r message=FALSE, warning=FALSE, error=FALSE, include=FALSE}\noptions(width=120)\n```\n\n## Usage\n\n```{r message=FALSE, warning=FALSE, error=FALSE}\nlibrary(varmint)\nlibrary(tidyverse)\n\n# current verison\npackageVersion(\"varmint\")\n```\n\n### Take a peek at one of the only remaining Gopher servers in existence:\n\n```{r}\nx \u003c- gopher(\"gopher.floodgap.com\") \n```\n\n```{r}\nstr(x)\n```\n\n```{r}\nx\n```\n\n```{r}\ng_content(x, TRUE) %\u003e% \n  print(n = 20)\n```\n\n### See some other servers\n\n```{r}\nx1 \u003c- gopher(\"gopher://gopher.floodgap.com\", \"/new\") \n```\n\n```{r}\nx1\n```\n\n```{r}\ng_content(x1, TRUE) %\u003e% \n  print(n = 20)\n```\n\n### Check out the Veronica menu\n\n```{r}\nx2 \u003c- gopher(\"gopher://gopher.floodgap.com\", \"/v2\") \n```\n\n```{r}\nx2\n```\n\n```{r}\ng_content(x2, TRUE) %\u003e% \n  print(n = 20)\n```\n\n### Search for some XKCD comics\n\n```{r}\nx3 \u003c- gopher(\"gopher://gopher.floodgap.com\", \"/v2/vs\", \"xkcd\")\n```\n\n```{r}\nx3\n```\n\n```{r}\ng_content(x3, TRUE) %\u003e% \n  filter(item_type_descr == \"info\")\n```\n\n```{r}\ng_content(x3, TRUE) %\u003e% \n  filter(item_type_descr == \"menu\")\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhrbrmstr%2Fvarmint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhrbrmstr%2Fvarmint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhrbrmstr%2Fvarmint/lists"}