Nebula is a VPN protocol project focused on traffic masking and high-performance packet processing. Its planned architecture combines a userspace handshake with a kernel-space data plane.
Status: early development.
The project has two main goals:
- Traffic masking: make VPN traffic harder to identify and filter.
- Efficient packet processing: use a kernel-space data plane to handle traffic once a session has been established.
The handshake will run in userspace.
- nebula-core/ — Rust crate, currently named
nebula-rs. - nebula-go/ — Go package, currently named
nebula_go.
Requirements: Rust 1.85+ (edition 2024) and Go 1.24.4+.
Check the build:
(cd nebula-core && cargo check --locked)
(cd nebula-go && go build ./...)Protocol design discussions, focused implementations, and test cases are welcome. Please discuss substantial architectural changes in an issue before implementing them.
See LICENSE for the GNU General Public License, version 3.