ini
onetun
Our great sponsors
ini | onetun | |
---|---|---|
2 | 10 | |
3,406 | 836 | |
0.4% | - | |
0.0 | 7.3 | |
9 months ago | 16 days ago | |
Go | Rust | |
Apache License 2.0 | MIT License |
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.
ini
-
Convert any to string or alternative to any
I am very new to golang and am trying to write a Program that uses INI Cobfiguration Files. The library that I am using, has built in functions to output the Key as a certain type (string, int, bool, etc). However as I will be accessing several different Keys of different types, I wrote a wrapper that takes the section and key name and the output type, passes that to the libraries functions and outputs the result as the any type. While trying to pass the output into another function that requires a string, it throws the error that it is unable to convert any to string as string requires type assertion. I couldn't find much about the any type, but it seems luke i will either need to redesign my wrapper function, use an alternative to any or find a way to convert any to string or []byte at least.
- A userspace WireGuard client that exposes itself as a proxy
onetun
- WireGuard client that exposes itself as a HTTP/SOCKS5 proxy
-
A userspace WireGuard client that exposes itself as a proxy
Sure, essentially it's a TCP and UDP server that:
- receives connections and assigns a random internal port for it
- wraps the data packets in a transport packet (TCP/UDP)
- wraps the transport in an IP packet that's routed from the internal port and to the remote WireGuard address
- wraps that with WireGuard's protocol (encryption)
- sends off the encrypted packet to the WireGuard UDP endpoint
The packet-wrapping and state machine for the connection is implemented using smoltcp in Rust, which is similar to netstack in Go
The WireGuard encapsulation and state machine is implemented with boringtun, Cloudflare's implementation of the WireGuard client in Rust.
I do have a more thorough architecture explanation in the Readme: https://github.com/aramperes/onetun#architecture
-
Remote access without port forwarding?
If you use WireGuard instead of Tinc, you can use onetun which is specifically designed for doing this: https://github.com/aramperes/onetun
- aramperes/onetun - Access your WireGuard network from any device, without root access or having to install WireGuard locally
-
onetun: Cross-platform, user-space WireGuard port-forwarder
It's in the plans! I'm going to finish UDP support and multi-port forwarding first and then I'll get to it: https://github.com/aramperes/onetun/issues/6
- Cross-platform, user-space WireGuard port-forwarder that requires no system network configurations.
- Show HN: Onetun, a cross-platform WireGuard port-forwarder
What are some alternatives?
toml - Instream TOML to JSON encoder
tunsocks - User-level IP forwarding, SOCKS proxy, and HTTP proxy for VPNs that provide tun-like interface
env - A simple and zero-dependencies library to parse environment variables into structs
wireproxy - Wireguard client that exposes itself as a socks5 proxy
viper - Go configuration with fangs
wireguard-go - Mirror only. Official repository is at https://git.zx2c4.com/wireguard-go
go-toml - Go library for the TOML file format
esp_wireguard - WireGuard Implementation for ESP-IDF
config - JSON or YAML configuration wrapper with convenient access methods.
systemd - The systemd System and Service Manager
goConfig - goconfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
kelseyhightower/envconfig - Golang library for managing configuration data from environment variables