-
Notifications
You must be signed in to change notification settings - Fork 469
Adding no_std support #448
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
I'm really interested in this work! I'm also hoping to get wireguard running on a small embassy project. We have tried using rustyguard but it appears, at least currently, to not be no_std compatible. Did you look at rustyguard before setting off on this work? Would you consider switching to the embassy-sync mutex instead of bringing in yours from arial-os? Or is this something I could easily swap out myself? |
No, I haven't seen it. You mean this rustyguard? Also, the license isn't specified. I'm writing my bachelor's thesis on integrating WireGuard with Ariel OS, so I'm short on time.
Yes, I wanted to do it with Embassy Sync. However, I didn't want to change the entire locking system, including the one used for desktop parking_lot, so I took the easiest route and implemented RawMutex for Lock. It's more difficult with Embassy Sync because there are no Yes, it is easily swappable in this PR because the RawMutex is chosen via a compiler flag. I created a driver, ariel-os-wireguard, which is essentially an embassy driver, but with the lock dependency tied to Ariel OS. There is an example that has yet to be tested. I'm happy to change the lock to an embassy-only lock. |
|
This rustyguard which promises to be a no_std wireguard impl, but I think what you're doing with boringtun is a better approach - its more mature and has, in my opinion, an easier API. Are you hoping that this branch will be merged at some point in the future? I notice that currently some of your changes (eg to Great work getting this working in any case. I'll start to experiment with this branch if I find time next week. |
It might have been easier to do, but here we are.
Yes, I would like that. However, the change from std::time to embedded_time is breaking though it's needed. Otherwise, it wouldn't run in no_std.
Thanks! I'm also trying to see if it works |
|
I think I encountered issue #353 too, but I'm not 100% sure. The handshake initiation is sent, but the other peer doesn't respond. The handshake is only successful and data is sent if I trigger a handshake from the other peer with a ping, for example |

My goal is to add no_std support for use in Ariel OS.