DeedleFake / trayscale

An unofficial GUI wrapper around the Tailscale CLI client.
MIT License
392 stars 14 forks source link

Provide a Go package for easily writing Tailscale clients #129

Closed Jacalz closed 1 week ago

Jacalz commented 1 week ago

It would be nice to have this project provide a package for talking to the Tailscale library easily. This is especially nice to have now that the project no longer relies on the cli.

I suppose one solution would be to expose the tsutil package out of internal/ but having it in a separate module without the GTK deps would also be very useful.

The reason that I'm interested in this is because it would make it a lot easier to write clients for Tailscale. It could potentially also open up for the possibility of more developers working on the backend for this project.

DeedleFake commented 1 week ago

internal/tsutil is very specific to Trayscale's usecase. I'm not sure how useful it would be outside of this context.

Also, it's in internal specifically because I don't want to maintain a public API surface that would then need to have stricter backwards compatibility guarantees than a cmd package does. Maybe that could happen one day, but it's definitely not a priority. Sorry.

Jacalz commented 1 week ago

Alright. I understand; no worries. Thanks for providing a great application anyhow. I'll just have to communicate using the cli in the meantime for some experiments. Your app solves like 90-95% of what I need to do with Tailscale anyhow so I'll try to suggest improvements and maybe do a PR (can't promise anything due to lack of time though) or two now and again :)

DeedleFake commented 6 days ago

Sounds good.

Depending on what you want to do, you might not need the CLI. Tailscale itself provides a very large set of packages for interfacing with it. internal/tsutil is just a thin wrapper around those for a bit of minor convenience.