Add support for serving unix domain sockets
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 7.5k
- Forks
- 311
- Avg merge
- 7h 7m
- Merged PRs (30d)
- 59
Description
I would like to be able to use tailcat as a connection mechanism for git-annex' generic p2p transport: https://git-annex.branchable.com/design/generic_p2p_transport/.
This essentially requires three things:
- a stable address -- already available with
tailcat genkey - connecting stdin/stdout of a client with an arbitrary remote service -- already what
tailcat <tc-addr>does - exposing a unix domain socket in a way that multiple clients can establish a connection with it
A workaround would be to first expose git-annex' socket file to a port e.g. via socat and then expose that port via tailcat, but I think it would be valuable to be able to serve socket files directly as they are subject to the unix permission system while ports are open to anyone.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the implementation behind tailcat <tc-addr> and tailcat genkey, then trace how connections are accepted and connected to stdin/stdout. Add a way to expose a Unix domain socket that multiple clients can use, while retaining Unix permission checks; done means repeated clients can connect through the socket.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cli, networking
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100