mullvad-tailscale
googleapis
mullvad-tailscale | googleapis | |
---|---|---|
4 | 16 | |
168 | 7,805 | |
3.6% | 1.1% | |
1.4 | 9.0 | |
over 1 year ago | 5 days ago | |
Shell | Starlark | |
GNU General Public License v3.0 only | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mullvad-tailscale
- Mullvad Leta
-
Tailscale with Ubuntu and Mullvad
Found the solution at this git repo : https://github.com/r3nor/mullvad-tailscale
- Trouble reaching NAS through Mullvad VPN
- Monero / P2Pool + Tailscale Setup
googleapis
-
Self-Documenting Code
Use a known set of standard error codes and not a unique error code for each new situation.
Error codes are there to hint to clients/callers what action they should potentially take (retry?,fail)
Don't make callers handle 100s of different potential error codes.
If the whole internet can work with 70 your app can work with less.
All of google uses less than 20
https://github.com/googleapis/googleapis/blob/master/google/...
Put more specific information in the error message or a secondary status code.
-
Mastering Go gRPC Services with Docker: A One-Stop Guide
git clone https://github.com/googleapis/googleapis.git third_party/googleapis
-
Build basic microservice online store backend with Golang use Api Gateway Pattern - Part 1
Clone googleapis https://github.com/googleapis/googleapis, we will need that for our proto later. Just clone in root dir under online-store dir.
-
REST vs gRPC
Rich Error Model: This model enables servers to return and clients to consume additional error details expressed as one or more protobuf messages. It further specifies a standard set of error message types to cover the most common error (QuotaFailure, PreconditionFailure, BadRequest, etc). When an error occurs, the server returns the appropriate status code along with an optional error message.
-
Mullvad Leta
They list search in their public api
https://github.com/googleapis/googleapis/blob/288aa7fb71c9b6...
-
Reasons to use gRPC/Protobuf?
We structure the repo according to proto packages. It's quite similar to how the googleapis repository is structured.
-
Problem Details for HTTP APIs
It's unfortunate that the spec doesn't contain custom fields to a sub-object like other RPC specs, like proto Status [1]. They should have had the message go into a field named "message" and not "detail". And have a field like "details" where the opaque type is serialized, which should be named by the "type" field. The problem is that systems with existing error types may have field name conflicts with type, title, status, detail, or instance, so we'd just dump the actual error into a custom "extension member" which by definition, isn't standard.
[1] https://github.com/googleapis/googleapis/blob/1c8a25ab153eef...
-
[Media] Dear Google, When Rust? Sincerely, Internet
Protobuf (https://github.com/googleapis/googleapis)
-
gRPC vs REST: Comparing API Styles in Practice
All the required changes can be viewed in our last demo, the grpc-rest-app implementation. First, we need to update our proto service interface to help the proxy service make our gRPC service methods available at the right URLs and for the correct HTTP operations. To do this, the Google API HTTP library provides annotations we can add to our proto to describe the correct mappings. The buf tool allows us to include the googleapis dependency as a plugin in our buf.yaml file).
-
Code Design Decision – Always throw custom exceptions
I think this only makes sense if the 3rd party is also throwing custom exceptions.
If you want to reduce coupling you should avoid throwing custom exceptions at all. Semantic information can go in the error message and log. The error type should be used to indicate to your program whether an error is recoverable, retriable or some other action needs to be taken. For example google on has 16 canonical error codes for all APIs.
https://github.com/googleapis/googleapis/blob/master/google/...
What are some alternatives?
polybar-vpn-controller - Polybar module for VPN control. Set up for Mullvad VPN but modifiable for others.
powerproto - 🎉 An awesome version control tool for protoc and its related plugins.
openwrt-tailscale-enabler - Brings Tailscale to low powered OpenWRT devices
readyset - Readyset is a MySQL and Postgres wire-compatible caching layer that sits in front of existing databases to speed up queries and horizontally scale read throughput. Under the hood, ReadySet caches the results of cached select statements and incrementally updates these results over time as the underlying data changes.
tailscale-docker - Tailscale in Docker without elevated privileges
grpc-node - gRPC for Node.js