{"id":14980407,"url":"https://github.com/rhymeswithmogul/psgopher","last_synced_at":"2025-08-24T00:18:53.203Z","repository":{"id":135521467,"uuid":"434265626","full_name":"rhymeswithmogul/PSGopher","owner":"rhymeswithmogul","description":"A Gopher/Gopher+/SecureGopher client written in PowerShell.","archived":false,"fork":false,"pushed_at":"2023-03-28T04:23:49.000Z","size":171,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T01:51:17.717Z","etag":null,"topics":["gopher","gopher-client","gopher-protocol","gopherplus","powershell","powershell-cmdlets","powershell-core","powershell-gallery","powershell-module","powershell-modules","pwsh","secure-gopher","secure-gopher-plus","securegopher","things-that-should-not-exist"],"latest_commit_sha":null,"homepage":"https://powershellgallery.com/packages/PSGopher/","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rhymeswithmogul.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-02T15:02:48.000Z","updated_at":"2024-12-22T23:52:00.000Z","dependencies_parsed_at":"2023-05-23T03:31:00.382Z","dependency_job_id":null,"html_url":"https://github.com/rhymeswithmogul/PSGopher","commit_stats":{"total_commits":53,"total_committers":2,"mean_commits":26.5,"dds":"0.037735849056603765","last_synced_commit":"bdac70f638f7ab2bcfebbb5d6df1e4c671f8f824"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/rhymeswithmogul/PSGopher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhymeswithmogul%2FPSGopher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhymeswithmogul%2FPSGopher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhymeswithmogul%2FPSGopher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhymeswithmogul%2FPSGopher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhymeswithmogul","download_url":"https://codeload.github.com/rhymeswithmogul/PSGopher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhymeswithmogul%2FPSGopher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271776890,"owners_count":24819006,"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":"2025-08-23T02:00:09.327Z","response_time":69,"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-client","gopher-protocol","gopherplus","powershell","powershell-cmdlets","powershell-core","powershell-gallery","powershell-module","powershell-modules","pwsh","secure-gopher","secure-gopher-plus","securegopher","things-that-should-not-exist"],"created_at":"2024-09-24T14:01:43.723Z","updated_at":"2025-08-24T00:18:52.417Z","avatar_url":"https://github.com/rhymeswithmogul.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![PowerShell Gallery Version](https://img.shields.io/powershellgallery/v/PSGopher?include_prereleases)\n ![PowerShell Gallery](https://img.shields.io/powershellgallery/p/PSGopher)\n ![Download from PowerShell Gallery](https://img.shields.io/powershellgallery/dt/PSGopher)\n](https://www.powershellgallery.com/packages/PSGopher/)\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/rhymeswithmogul/PSGopher/run-pester-tests.yaml)\n[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)\n\n# PSGopher\nA Gopher/Gopher+/SecureGopher client written for Powershell 7 and newer.\n\n## Installation\nGrab it from PowerShell Gallery with: `Install-Module PSGopher`\n\n## Usage\nIn this example, we'll connect to Floodgap's Gopher server and return the content.\n\n```powershell\nPS C:\\\u003e $response = Invoke-GopherRequest gopher://floodgap.com\nPS C:\\\u003e $response.Content\n\nWelcome to Floodgap Systems' official gopher server.\nFloodgap has served the gopher community since 1999\n(formerly gopher.ptloma.edu).\n[…]\n```\n\nThe syntax and output of this cmdlet is modeled after `Invoke-WebRequest`, going as far as to emulate some of its properties:\n\n```powershell\nPS /home/colin\u003e Invoke-GopherRequest gopher://port70.net\n\nProtocol         : Gopher\nContentType      : 1\nContent          : Welcome to the gopher server at port70.net.\n                   \n                   Projects:\n                   mgod gopher server\n                   [HTTP] FRTPLOT: Free Real-time Data Plotter\n                   [HTTP] Animator - Simple 2D Vector Graphics Interpreter\n                   [HTTP] Plumb - connect multiple programs with lots of pipes\n                   [HTTP] cchan - \"channel\" construct for inter-thread communication in C programs\n                   [HTTP] Stutter (LISP interpreter)\n                   \n                   NECRON card game\n                   Gopherchan!\n                   \n                   \n                   \nEncoding         : System.Text.UTF8Encoding\nImages           : \nLinks            : {@{href=gopher://port70.net/mgod; Type=1; Description=mgod gopher server; Resource=/mgod; \n                   Server=port70.net; Port=70; UrlLink=False}, @{href=http://frtplot.port70.net/; Type=h; \n                   Description=[HTTP] FRTPLOT: Free Real-time Data Plotter; Resource=/; Server=frtplot.port70.net; \n                   Port=80; UrlLink=True}, @{href=http://repo.hu/projects/animator; Type=h; Description=[HTTP] \n                   Animator - Simple 2D Vector Graphics Interpreter; Resource=/projects/animator; Server=repo.hu; \n                   Port=80; UrlLink=True}, @{href=http://repo.hu/projects/plumb; Type=h; Description=[HTTP] Plumb - \n                   connect multiple programs with lots of pipes; Resource=/projects/plumb; Server=repo.hu; Port=80; \n                   UrlLink=True}…}\nRawContent       : iWelcome to the gopher server at port70.net. fake    (NULL)  0\n                   i    fake    (NULL)  0\n                   iProjects:   fake    (NULL)  0\n                   1mgod gopher server  mgod    port70.net      70\n                   h[HTTP] FRTPLOT: Free Real-time Data Plotter URL:http://frtplot.port70.net   port70.net      70\n                   h[HTTP] Animator - Simple 2D Vector Graphics Interpreter     URL:http://repo.hu/projects/animator\n                   port70.net   70\n                   h[HTTP] Plumb - connect multiple programs with lots of pipes URL:http://repo.hu/projects/plumb\n                   port70.net   70\n                   H[HTTP] cchan - \"channel\" construct for inter-thread communication in C programs\n                   URL:http://repo.hu/projects/cchan    port70.net      70\n                   h[HTTP] Stutter (LISP interpreter)   URL:http://hactar.port70.net/stutter    port70.net      70\n                   i    fake    (NULL)  0\n                   1NECRON card game    necron  port70.net      70\n                   1Gopherchan! chan    port70.net      70\n                   i    fake    (NULL)  0\n                   \nRawContentLength : 818\n```\n\n### Gopher+ Metadata\nYou can use the `-Abstract` parameter to fetch Gopher+ information instead of the resource itself.\n\n```powershell\nPS C:\\\u003e Invoke-GopherRequest -Abstract gopher://colincogle.name/0downloads/pgp.txt | Format-List\n\nINFO     : 0pgp.txt     /downloads/pgp.txt      colincogle.name 70      +\nADMIN    : {Admin: Colin Cogle \u003ccolin@colincogle.name\u003e, Mod-Date: Sun Nov 28 14:37:30 2021 \u003c20211128143730\u003e}\nVIEWS    : text/plain: \u003c5k\u003e\nABSTRACT : Colin Cogle's PGP keys and signing policy.\n```\n\n### Downloading Files\nFinally, you can also use PSGopher's `-OutFile` parameter to download files (even with opportunistic encryption):\n\n```powershell\nPS /Users/colin\u003e Invoke-GopherRequest -TrySSL gopher://colincogle.name/0downloads/pgp.txt -OutFile pgp.txt\nPS /Users/colin\u003e Get-Item pgp.txt                            \n\n    Directory: /Users/colin\n\nUnixMode   User             Group                 LastWriteTime           Size Name\n--------   ----             -----                 -------------           ---- ----\n-rw-r--r-- colin            wheel                2/8/2022 08:05           5218 pgp.txt\n```\n\nEnjoy Gopherspace!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhymeswithmogul%2Fpsgopher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhymeswithmogul%2Fpsgopher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhymeswithmogul%2Fpsgopher/lists"}