aero
wireguard-go
aero | wireguard-go | |
---|---|---|
12 | 14 | |
1,092 | 2,742 | |
- | 3.0% | |
8.9 | 6.3 | |
22 days ago | about 2 months ago | |
Rust | Go | |
GNU General Public License v3.0 only | 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.
aero
-
Maestro: A Linux-compatible kernel in Rust
This feels like an ad; the blog post and the README feel like they were written to sound complicated and smart rather than tell the whole truth. Like, "On boot, the kernel has full access to the memory and is allowed to write where it should not (its own code, for example)"? Apart from the fact that ring 0 will always have full control, the MMU also exists. Also, the "48k" (the kernel has 34324 lines of non-comment code, the rest are in the other repos I assume) LOC are obvious when you consider code like src/syscall/mod.rs:717 is present.
To be fair, this is impressive, but its a basic monolithic kernel written for a school project, with the "twist" that it is in Rust and uses Linux syscalls.
For anyone who is interesting in more Rust UNIX-like kernels, Aero (https://github.com/Andy-Python-Programmer/aero) is farther ahead supports running quite a lot of recompiled Linux userspace, including dwm and WebKit.
-
Aero OS: A new modern operating system made in Rust, now able to run the Links browser, Alacritty and much more!
https://github.com/Andy-Python-Programmer/aero/blob/master/src/aero_kernel/src/mem/paging/addr.rs especially obvious, if you look at the first version of this file:
-
Aero, a new modern OS made in rust and is now able to run Xorg! :)
There is progress in implementing the DRM subsystem (cc https://github.com/Andy-Python-Programmer/aero/blob/master/src/aero_kernel/src/drivers/drm/mod.rs) but currently it only implements a small portion of the subsystem. But yea, this was one of the blocking points.
- Your one project with rust that you think is one of the best projects you have made.
-
Software Development Foundations - How to teach a 14 year old?
Get him to join the OSDev discord chat. Most of the people there started learning programming in the middle of the pandemic and are now building complex projects. Group is mostly kids his age, 12-16 year olds, learning to hack around. Like this 13 year old or this 15 year old.
- Aero: An experimental, Unix-like OS written in Rust
-
Aero is a new modern, experimental, unix-like operating system made in rust!
you can compare with initial commit: https://github.com/Andy-Python-Programmer/aero/commit/3ee1c052454a1386dc8d1688b5ca9d616e3a907b
wireguard-go
-
Writing highly scalable backends in UDP
Would you accept https://github.com/WireGuard/wireguard-go/blob/master/tun/ne... as a solution? =)
-
WireGuard client that exposes itself as a HTTP/SOCKS5 proxy
Maybe https://github.com/cloudflare/boringtun or https://github.com/WireGuard/wireguard-go ?
-
The Tailscale Universal Docker Mod
It's likely just `tailscale serve https / `.
https://github.com/tailscale/tailscale/blob/main/ipn/serve.g...
And they also support direct embedding:
https://tailscale.dev/blog/embedded-funnel
I think this is built on the wireguard-go + gvisor mashup, that allows you to do this with just Wireguard:
https://github.com/WireGuard/wireguard-go/tree/master/tun/ne...
One of my favorite applications of this is this little tool that turns Wireguard VPNs into SOCKS5 proxies (which you can selectively enable in your browser)
https://pkg.go.dev/github.com/octeep/wireproxy
-
Speed tests for Tailscale, Wireguard and Zerotier
They added this pull-request to wireguard-go and i assume they have already included it in their new version.
-
Show HN: Wiretap – Transparent WireGuard proxy server without root
Vanilla WireGuard doesn't provide a way to run a peer in userspace that can proxy traffic between another peer and an endpoint such as a web server because you need to be privileged to do thinks like work with raw packets. However, https://github.com/WireGuard/wireguard-go is a userspace implementation of WireGuard and has recently incorporated Google's userspace networking stack. This project uses these two userspace tools to "fake" a privileged WireGuard peer that proxies TCP, UDP, and (a small subset of) ICMP. It was written as a pentesting/red team utility for my team but it can also serve as a general makeshift VPN when you don't have privileges on a box you want to proxy through.
-
How to program a vpn (for fun)
How "scratch" do you want to go from? Do you want to write your own virtual network driver, or do you want to use an existing driver like Wintun? Either way learning about Wintun would be a good start. Then there's the protocol, regardless of what language you learn, the wireguard-go implementation is a very good example of how to implement a secure protocol with modern language.
-
Wireguard not working on Xen virtualization
https://github.com/cloudflare/boringtun https://github.com/WireGuard/wireguard-go
-
Show HN: Onetun, a cross-platform WireGuard port-forwarder
wireguard-go (the official userspace impl in golang) can do this since several months back. It uses gVisor's netstack as a tcp/udp provider to forward connections to its peer.
Here's a demonstration of both a http-client and a http-server running over wireguard (a poor man's QUIC): https://github.com/WireGuard/wireguard-go/tree/master/tun/ne...
fly.io wrote about such setups not long ago too: https://news.ycombinator.com/item?id=26315695
And tailscale.com uses a similar setup (with netstack) on non-Linux/xBSD platforms: https://news.ycombinator.com/item?id=28261683
-
Userspace WireGuard for armv7-linux-gnueabi
I think you can try wireguard-go,
-
Netaddr.ip: a new IP address type for Go
> The story begins in April 2019 with 89476f8cb5 in which David Crawshaw, aware of all these problems, created an IP type like:
It's in a PR here: https://github.com/WireGuard/wireguard-go/pull/11/files
Which mentions:
> Typically throughout WireGuard, we've used [4]byte for v4 and [16]byte for v6, considering the Go standard library's choice of v6-mapped-v4 to be a mistake.
It actually looks useful, there's something similar in wgtypes, and I wanted to use it recently [0] but that package unfortunately doesn't expose a way to write it out to a string/buffer, so I ended up almost replicating it.
[0] https://github.com/OJFord/terraform-provider-wireguard/blob/...
(There's a lot of ways of presenting/parsing/constructing the same config options there! I'm sure if I were more fluent in Go there's some more succinct way.)
What are some alternatives?
x86_64 - Library to program x86_64 hardware.
boringtun - Userspace WireGuard® Implementation in Rust
ngs - Next Generation Shell (NGS)
set - Package set is a small wrapper around the official reflect package that facilitates loose type conversion and assignment into native Go types.
ferium - Fast and multi-source CLI program for managing Minecraft mods and modpacks from Modrinth, CurseForge, and Github Releases [Moved to: https://github.com/gorilla-devs/ferium]
wireguard-install - WireGuard VPN installer for Linux servers
oil - Oils is our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!
goja - ECMAScript/JavaScript engine in pure Go
album-art-wallpaper - An app for Windows that will change your desktop wallpaper to the album art of the song you are listening to.
go - The Go programming language
WingOS - a little 64bit operating system written in c++ with smp support
onetun - User space WireGuard port-forward in Rust