{"id":16695891,"url":"https://github.com/gesellix/go-npipe","last_synced_at":"2025-06-10T20:12:02.694Z","repository":{"id":9846283,"uuid":"63452781","full_name":"gesellix/go-npipe","owner":"gesellix","description":"A Windows Named Pipe Http Echo Server","archived":false,"fork":false,"pushed_at":"2025-06-07T08:50:55.000Z","size":64,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-07T09:31:47.167Z","etag":null,"topics":["docker","golang","named-pipes","windows"],"latest_commit_sha":null,"homepage":"","language":"Go","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/gesellix.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null},"funding":{"github":"gesellix","patreon":"gesellix"}},"created_at":"2016-07-15T21:49:33.000Z","updated_at":"2025-06-07T08:50:58.000Z","dependencies_parsed_at":"2023-12-08T18:26:45.799Z","dependency_job_id":"c79a657c-e504-4997-b55b-ded8f97a69b8","html_url":"https://github.com/gesellix/go-npipe","commit_stats":{"total_commits":81,"total_committers":2,"mean_commits":40.5,"dds":0.4814814814814815,"last_synced_commit":"ec1ce895d894068fa072197bbd95ca6a0f3b1fe0"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gesellix%2Fgo-npipe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gesellix%2Fgo-npipe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gesellix%2Fgo-npipe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gesellix%2Fgo-npipe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gesellix","download_url":"https://codeload.github.com/gesellix/go-npipe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gesellix%2Fgo-npipe/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259144833,"owners_count":22811926,"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","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":["docker","golang","named-pipes","windows"],"created_at":"2024-10-12T17:08:50.375Z","updated_at":"2025-06-10T20:12:02.669Z","avatar_url":"https://github.com/gesellix.png","language":"Go","funding_links":["https://github.com/sponsors/gesellix","https://patreon.com/gesellix"],"categories":[],"sub_categories":[],"readme":"# Windows Named Pipe Http Echo Server.\n\n## About\n\nThis little tool creates a Windows Named Pipe and listens for HTTP requests.\nRequest bodies will be returned with a prefix `[echo]`.\n\nRequests on `/exit` will stop the tool and remove the pipe.\n\nThe request method will be ignored, so you can use any of `GET`, `POST` or whatever.\n\n### Usage in integration tests\n\nThis tool comes in handy when running integration tests. There's no built-in way to _create_ a named pipe in the JVM,\n so you end up trying to create some JNI/JNA implementation\n to make [the syscall](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365150(v=vs.85).aspx) for you...\n or you use a native binary to handle everything for you and simply call it via `exec`.\n\nYou can find my own use case in the [integration tests for the Docker Client](https://github.com/gesellix/docker-client/blob/94ea21ff5620235d51a2adbc4b4106d55e0b0887/client/src/integrationTest/groovy/de/gesellix/docker/client/filesocket/HttpOverNamedPipeIntegrationTest.groovy#L55).\nAs soon as the project is built on a Windows system, the integration tests verify\n the basic ability to use a named pipe socket for communication with the Docker engine.  \n\n### Yeah, Windows only, but who cares? ¯\\_(ツ)_/¯\n\nSince Windows Named Pipes are a Windows only concept (similar to Unix Domain Sockets), you would probably expect\n Windows specific sources or build configurations. Thanks to Golang this isn't necessary: the cross compiler \n works very well and creates a nice Windows native executable. I'm a fan of automation, which is why\n you'll always find the most recent version of this tool on the Docker Hub, packaged as Docker image.\n The Docker image isn't expected to be run, but it serves to leverage the build _and_ distribution of this tool.\n See below for details!\n\n## Build/Install\n\n### Command Line\n\n    go get -d github.com/gesellix/go-npipe\n    cd src\n    CGO_ENABLED=0 GOARCH=amd64 GOOS=windows go build -o npipe.exe main.go\n\n### Docker :whale:\n\n    docker build -t npipe:local -f linux/Dockerfile .\n    docker create --name npipe npipe:local\n    # Or from the Docker Hub (linux):\n    #docker create --name npipe gesellix/npipe\n    # Or from the Docker Hub (windows):\n    #docker create --name npipe gesellix/npipe:windows\n    docker cp npipe:/npipe.exe .\n    docker rm npipe\n\n## Run\n\n    npipe.exe \\\\.\\pipe\\the_pipe\n\n## List pipes (PowerShell)\n\n    get-childitem \\\\.\\pipe\\\n\n### Contributing/Feedback\n\nIf you have any kind of feedback or would like to improve this little tool,\n please [submit an issue](https://github.com/gesellix/go-npipe/issues) or [create a pull request](https://github.com/gesellix/go-npipe/pulls)!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgesellix%2Fgo-npipe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgesellix%2Fgo-npipe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgesellix%2Fgo-npipe/lists"}