tailscale / tailscale/tailcat

Add support for serving unix domain sockets

Open
#93 0 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.