Skip to content

Commit 5fc02d3

Browse files
committed
Rename BoringTun to NepTUN
1 parent 8be4648 commit 5fc02d3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+156
-123
lines changed

.github/workflows/linters.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- os: macos-12
2222
packages: ""
2323
- os: windows-2022
24-
packages: "-p boringtun"
24+
packages: "-p neptun"
2525
runs-on: ${{ matrix.os }}
2626
steps:
2727
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
@@ -38,7 +38,7 @@ jobs:
3838
- os: macos-12
3939
packages: ""
4040
- os: windows-2022
41-
packages: -p boringtun
41+
packages: -p neptun
4242
runs-on: ${{ matrix.os }}
4343
steps:
4444
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6

.github/workflows/tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
- os: macos-12
1313
packages: ""
1414
- os: windows-2022
15-
packages: -p boringtun
15+
packages: -p neptun
1616
runs-on: ${{ matrix.os }}
1717
steps:
1818
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
@@ -39,4 +39,4 @@ jobs:
3939
steps:
4040
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
4141
- uses: actions-rs/toolchain@b2417cde72dcf67f306c0ae8e0828a81bf0b189f # v1.0.6
42-
- run: cargo bench -p boringtun --no-run
42+
- run: cargo bench -p neptun --no-run

CONTRIBUTING.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Contributing
2+
We happily accept both issues and pull requests for bug reports, bug fixes, feature requests, features implementations and documentation improvements.
3+
4+
For new features we recommend that you create an issue first so the feature can be discussed and to prevent unnecessary work in case it's not a feature we want to support. Although, we do realize that sometimes code needs to be in place to allow for a meaningful discussion so creating an issue upfront is not a requirement.
5+
6+
## Building and testing
7+
The steps for how to build and test NepTUN are described in the [README](README.md)
8+
9+
## PR workflow
10+
We want to get your changes merged as fast as possible, and we know you want that too. To help with this there are a few things you can do to speed up the process:
11+
12+
### Build, test and lint locally
13+
The local feedback cycle is faster than waiting for the CI. Make sure your changes can be built locally and that tests, rustfmt and clippy all pass locally. A green CI is a happy CI.
14+
15+
### PR Hygiene
16+
On top of the CI being green, every PR will go through code review, and you can help us speed up the review process by making your PR easier to review. Here are some guidelines:
17+
18+
**Small PRs are easier to review than big PRs**, so try to keep your PRs small and focused. To achieve that, try to make sure you PR doesn't contain multiple unrelated changes and if you are doing some bigger feature work, try to split the work into multiple smaller PRs that solve the problem together.
19+
20+
**A clean history can make things easier**. Some PRs are easier to review commit-by-commit, rather than looking at the full changelist in one go. To enable that, prefer `rebase` over `merge` when updating your branch. Keeping PRs small and short-lived will also help keep your history clean since there's less time for upstream to change that much.
21+
22+
## Licensing
23+
NepTUN is released under 3-Clause BSD License. For more details please refer to [LICENSE.md](LICENSE.md).
24+
25+
## Contributing Documents
26+
Before we can accept your pull request we may need you to submit documents (e.g., DCO, CLA) that either be provided automatically or manually by us.
27+
In any case, we will guide you through and provide you with the support, if needed.
28+
29+
## Code of conduct
30+
Nord Security and all of it's projects adhere to the [Contributor Covenant Code of Conduct](https://github.com/NordSecurity/.github/blob/master/CODE_OF_CONDUCT.md). When participating, you are expected to honor this code.
31+
32+
## Thank you!

Cargo.lock

Lines changed: 43 additions & 43 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[workspace]
22
resolver = "2"
3-
members = ["boringtun", "boringtun-cli"]
3+
members = ["neptun", "neptun-cli"]
44

55
[profile.release]
66
lto = true # Enable full link-time optimization.

LICENSE.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
Copyright (c) 2019 Cloudflare, Inc. All rights reserved.
1+
Copyright (c) 2024 Nord Security. All rights reserved.
2+
Copyright (c) 2019-2024 Cloudflare, Inc. All rights reserved.
23

34
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
45

README.md

Lines changed: 16 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,29 @@
1-
![boringtun logo banner](./banner.png)
1+
# NepTUN
22

3-
# BoringTun
4-
5-
## Warning
6-
Boringtun is currently undergoing a restructuring. You should probably not rely on or link to
7-
the master branch right now. Instead you should use the crates.io page.
8-
9-
- boringtun: [![crates.io](https://img.shields.io/crates/v/boringtun.svg)](https://crates.io/crates/boringtun)
10-
- boringtun-cli [![crates.io](https://img.shields.io/crates/v/boringtun-cli.svg)](https://crates.io/crates/boringtun-cli)
11-
12-
**BoringTun** is an implementation of the [WireGuard<sup>®</sup>](https://www.wireguard.com/) protocol designed for portability and speed.
13-
14-
**BoringTun** is successfully deployed on millions of [iOS](https://apps.apple.com/us/app/1-1-1-1-faster-internet/id1423538627) and [Android](https://play.google.com/store/apps/details?id=com.cloudflare.onedotonedotonedotone&hl=en_US) consumer devices as well as thousands of Cloudflare Linux servers.
3+
**NepTUN** is an implementation of the [WireGuard<sup>®</sup>](https://www.wireguard.com/) protocol designed for portability and speed.
154

165
The project consists of two parts:
17-
18-
* The executable `boringtun-cli`, a [userspace WireGuard](https://www.wireguard.com/xplatform/)
19-
implementation for Linux and macOS.
20-
* The library `boringtun` that can be used to implement fast and efficient WireGuard client apps on various platforms, including iOS and Android. It implements the underlying WireGuard protocol, without the network or tunnel stacks, those can be implemented in a platform idiomatic way.
21-
22-
### Installation
23-
24-
You can install this project using `cargo`:
25-
26-
```
27-
cargo install boringtun-cli
28-
```
6+
* The executable `neptun-cli`, a [userspace WireGuard](https://www.wireguard.com/xplatform/) implementation for Linux and macOS.
7+
* The library `neptun` that can be used to implement fast and efficient WireGuard client apps on various platforms, including iOS and Android. It implements the underlying WireGuard protocol, without the network or tunnel stacks, those can be implemented in a platform idiomatic way.
298

309
### Building
3110

3211
- Library only: `cargo build --lib --no-default-features --release [--target $(TARGET_TRIPLE)]`
33-
- Executable: `cargo build --bin boringtun-cli --release [--target $(TARGET_TRIPLE)]`
12+
- Executable: `cargo build --bin neptun-cli --release [--target $(TARGET_TRIPLE)]`
3413

35-
By default the executable is placed in the `./target/release` folder. You can copy it to a desired location manually, or install it using `cargo install --bin boringtun --path .`.
14+
By default the executable is placed in the `./target/release` folder. You can copy it to a desired location manually, or install it using `cargo install --bin neptun --path .`.
3615

3716
### Running
3817

3918
As per the specification, to start a tunnel use:
4019

41-
`boringtun-cli [-f/--foreground] INTERFACE-NAME`
20+
`neptun-cli [-f/--foreground] INTERFACE-NAME`
4221

4322
The tunnel can then be configured using [wg](https://git.zx2c4.com/WireGuard/about/src/tools/man/wg.8), as a regular WireGuard tunnel, or any other tool.
4423

45-
It is also possible to use with [wg-quick](https://git.zx2c4.com/WireGuard/about/src/tools/man/wg-quick.8) by setting the environment variable `WG_QUICK_USERSPACE_IMPLEMENTATION` to `boringtun`. For example:
24+
It is also possible to use with [wg-quick](https://git.zx2c4.com/WireGuard/about/src/tools/man/wg-quick.8) by setting the environment variable `WG_QUICK_USERSPACE_IMPLEMENTATION` to `neptun`. For example:
4625

47-
`sudo WG_QUICK_USERSPACE_IMPLEMENTATION=boringtun-cli WG_SUDO=1 wg-quick up CONFIGURATION`
26+
`sudo WG_QUICK_USERSPACE_IMPLEMENTATION=neptun-cli WG_SUDO=1 wg-quick up CONFIGURATION`
4827

4928
### Testing
5029

@@ -74,24 +53,14 @@ arm-linux-androideabi | | ✓ |
7453

7554
`x86-64`, `aarch64` and `armv7` architectures are supported. The behaviour should be identical to that of [wireguard-go](https://git.zx2c4.com/wireguard-go/about/), with the following difference:
7655

77-
`boringtun` will drop privileges when started. When privileges are dropped it is not possible to set `fwmark`. If `fwmark` is required, such as when using `wg-quick`, run with `--disable-drop-privileges` or set the environment variable `WG_SUDO=1`.
56+
`neptun` will drop privileges when started. When privileges are dropped it is not possible to set `fwmark`. If `fwmark` is required, such as when using `wg-quick`, run with `--disable-drop-privileges` or set the environment variable `WG_SUDO=1`.
7857

79-
You will need to give the executable the `CAP_NET_ADMIN` capability using: `sudo setcap cap_net_admin+epi boringtun`. sudo is not needed.
58+
You will need to give the executable the `CAP_NET_ADMIN` capability using: `sudo setcap cap_net_admin+epi neptun`. sudo is not needed.
8059

8160
#### macOS
8261

8362
The behaviour is similar to that of [wireguard-go](https://git.zx2c4.com/wireguard-go/about/). Specifically the interface name must be `utun[0-9]+` for an explicit interface name or `utun` to have the kernel select the lowest available. If you choose `utun` as the interface name, and the environment variable `WG_TUN_NAME_FILE` is defined, then the actual name of the interface chosen by the kernel is written to the file specified by that variable.
8463

85-
---
86-
87-
#### FFI bindings
88-
89-
The library exposes a set of C ABI bindings, those are defined in the `wireguard_ffi.h` header file. The C bindings can be used with C/C++, Swift (using a bridging header) or C# (using [DLLImport](https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.dllimportattribute?view=netcore-2.2) with [CallingConvention](https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.dllimportattribute.callingconvention?view=netcore-2.2) set to `Cdecl`).
90-
91-
#### JNI bindings
92-
93-
The library exposes a set of Java Native Interface bindings, those are defined in `src/jni.rs`.
94-
9564
## License
9665

9766
The project is licensed under the [3-Clause BSD License](https://opensource.org/licenses/BSD-3-Clause).
@@ -104,5 +73,9 @@ If you want to contribute to this project, please read our [`CONTRIBUTING.md`].
10473

10574
[`CONTRIBUTING.md`]: https://github.com/cloudflare/.github/blob/master/CONTRIBUTING.md
10675

76+
## Acknowledgements
77+
78+
This project is based on the [BoringTun](https://github.com/cloudflare/boringtun) project by Cloudflare.
79+
10780
---
108-
<sub><sub><sub><sub>WireGuard is a registered trademark of Jason A. Donenfeld. BoringTun is not sponsored or endorsed by Jason A. Donenfeld.</sub></sub></sub></sub>
81+
<sub><sub><sub><sub>WireGuard is a registered trademark of Jason A. Donenfeld. NepTUN is not sponsored or endorsed by Jason A. Donenfeld.</sub></sub></sub></sub>

banner.png

-24 KB
Binary file not shown.

logo.png

-116 KB
Binary file not shown.
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
[package]
2-
name = "boringtun-cli"
2+
name = "neptun-cli"
33
description = "an implementation of the WireGuard® protocol designed for portability and speed"
44
version = "0.6.0"
55
authors = ["Noah Kennedy <[email protected]>", "Andy Grover <[email protected]>", "Jeff Hiner <[email protected]>"]
66
license = "BSD-3-Clause"
7-
repository = "https://github.com/cloudflare/boringtun"
8-
documentation = "https://docs.rs/boringtun/0.5.2/boringtun/"
7+
repository = "https://github.com/nordsecurity/neptun"
98
edition = "2021"
109

1110
[dependencies]
@@ -15,7 +14,7 @@ tracing = "0.1.31"
1514
tracing-subscriber = "0.3.18"
1615
tracing-appender = "0.2.1"
1716

18-
[dependencies.boringtun]
17+
[dependencies.neptun]
1918
version = "0.6.0"
20-
path = "../boringtun"
19+
path = "../neptun"
2120
features = ["device"]

0 commit comments

Comments
 (0)