{"id":18237521,"url":"https://github.com/kilemonn/go-ipc","last_synced_at":"2026-04-10T23:51:02.799Z","repository":{"id":260854218,"uuid":"882274575","full_name":"Kilemonn/go-ipc","owner":"Kilemonn","description":"An inter-process communication library written in Golang.","archived":false,"fork":false,"pushed_at":"2025-02-11T13:39:59.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-11T14:38:07.173Z","etag":null,"topics":["go","golang","inter-process-communication","linux","socket","unix-socket","windows"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kilemonn.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-02T11:30:50.000Z","updated_at":"2025-02-11T13:40:03.000Z","dependencies_parsed_at":"2024-11-03T04:21:02.550Z","dependency_job_id":"c956c425-3261-459b-9365-7331410f4cdf","html_url":"https://github.com/Kilemonn/go-ipc","commit_stats":null,"previous_names":["kilemonn/go-ipc"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kilemonn%2Fgo-ipc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kilemonn%2Fgo-ipc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kilemonn%2Fgo-ipc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kilemonn%2Fgo-ipc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kilemonn","download_url":"https://codeload.github.com/Kilemonn/go-ipc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247872397,"owners_count":21010238,"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":["go","golang","inter-process-communication","linux","socket","unix-socket","windows"],"created_at":"2024-11-05T02:06:20.274Z","updated_at":"2026-04-10T23:51:02.791Z","avatar_url":"https://github.com/Kilemonn.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-ipc\n\n\u003c!-- \ngo test -coverpkg ./... -coverprofile cover.out ./...\ngo tool cover -html cover.out -o cover.html\n--\u003e\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/Kilemonn/go-ipc)](https://goreportcard.com/report/github.com/Kilemonn/go-ipc)\n[![Go Coverage](https://github.com/Kilemonn/go-ipc/wiki/coverage.svg)](https://raw.githack.com/wiki/Kilemonn/go-ipc/coverage.html)\n\n\nAn inter-process communication library written in Golang. Using \"unix\" sockets to support interprocess communication. **This also works on Windows!**\n\n## Get started\n\nYou can add this project as a dependency using:\n\n\u003e go get github.com/Kilemonn/go-ipc\n\nOnce added you can setup connections as per below (error handling removed for brevity):\n```go\npackage main\n\nimport (\n    \"time\"\n\n\t\"github.com/Kilemonn/go-ipc/client\"\n\t\"github.com/Kilemonn/go-ipc/server\"\n)\n\nfunc main() {\n\tipcChannelName := \"/tmp/readme-example.sock\"\n\tsvr, _ := server.NewIPCServer(ipcChannelName, nil)\n\tdefer svr.Close()\n\n\tclient, err := client.NewIPCClient(ipcChannelName)\n\tdefer client.Close()\n\n\taccepted, err := svr.Accept(time.Millisecond * 1000)\n\tdefer accepted.Close()\n\n\tcontent := \"some-data\"\n\tn, err := client.Write([]byte(content))\n\n\tb := make([]byte, len(content))\n\tn, err = accepted.Read(b)\n\n\tif content == string(b) {\n\t\tfmt.Println(\"Sent and read is the same!\")\n\t}\n}\n```\n\n## Notes\n\n- The `IPCClient` implements the `io.ReadWriterCloser` interface and provides a property to set read timeouts instead of remaining blocking.\n- This is aimed to be a very primative and simple implementation for now, other settings and customisability can be built upon what is currently implemented. However feel free to request any features that would be useful.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkilemonn%2Fgo-ipc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkilemonn%2Fgo-ipc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkilemonn%2Fgo-ipc/lists"}