Lee Smet
b56e37e0f9
Rename master branch to main
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-05-08 10:31:21 +02:00
Lee Smet
72882b7519
Replace release mapfile call with manual loop
...
This fails on macos runners which use bash 3.2, where this is not
available
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
v0.7.7
2026-05-06 20:14:43 +02:00
Lee Smet
d454932913
Use nix ioctl macro for TUNSETOFF in mycelium-tun
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-05-06 17:16:47 +02:00
Lee Smet
d349f7026f
Bump version to v0.7.7
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-05-06 16:36:23 +02:00
Lee Smet
27ed13dc7a
Update binary lockfiles
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-05-06 12:12:35 +02:00
dependabot[bot]
d6ba7b607d
Bump openssl from 0.10.78 to 0.10.79 in /mobile
...
Bumps [openssl](https://github.com/rust-openssl/rust-openssl ) from 0.10.78 to 0.10.79.
- [Release notes](https://github.com/rust-openssl/rust-openssl/releases )
- [Commits](https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.78...openssl-v0.10.79 )
---
updated-dependencies:
- dependency-name: openssl
dependency-version: 0.10.79
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-06 12:04:08 +02:00
dependabot[bot]
37d5348609
Bump openssl from 0.10.78 to 0.10.79 in /myceliumd-private
...
Bumps [openssl](https://github.com/rust-openssl/rust-openssl ) from 0.10.78 to 0.10.79.
- [Release notes](https://github.com/rust-openssl/rust-openssl/releases )
- [Commits](https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.78...openssl-v0.10.79 )
---
updated-dependencies:
- dependency-name: openssl
dependency-version: 0.10.79
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-06 12:03:47 +02:00
dependabot[bot]
61283fc2e4
Bump tokio in /myceliumd-private in the myceliumd-private group
...
Bumps the myceliumd-private group in /myceliumd-private with 1 update: [tokio](https://github.com/tokio-rs/tokio ).
Updates `tokio` from 1.52.1 to 1.52.2
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.52.1...tokio-1.52.2 )
---
updated-dependencies:
- dependency-name: tokio
dependency-version: 1.52.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: myceliumd-private
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-06 12:03:23 +02:00
dependabot[bot]
7a419c16e3
Bump tokio from 1.52.1 to 1.52.2 in /myceliumd in the myceliumd group
...
Bumps the myceliumd group in /myceliumd with 1 update: [tokio](https://github.com/tokio-rs/tokio ).
Updates `tokio` from 1.52.1 to 1.52.2
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.52.1...tokio-1.52.2 )
---
updated-dependencies:
- dependency-name: tokio
dependency-version: 1.52.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: myceliumd
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-06 12:03:02 +02:00
dependabot[bot]
1ff325664c
Bump the mycelium group with 9 updates
...
Bumps the mycelium group with 9 updates:
| Package | From | To |
| --- | --- | --- |
| [tokio](https://github.com/tokio-rs/tokio ) | `1.52.1` | `1.52.2` |
| [blake3](https://github.com/BLAKE3-team/BLAKE3 ) | `1.8.4` | `1.8.5` |
| [rustls](https://github.com/rustls/rustls ) | `0.23.38` | `0.23.40` |
| [netdev](https://github.com/shellrow/netdev ) | `0.42.0` | `0.43.0` |
| [openssl](https://github.com/rust-openssl/rust-openssl ) | `0.10.78` | `0.10.79` |
| [redis](https://github.com/redis-rs/redis-rs ) | `1.2.0` | `1.2.1` |
| [hickory-server](https://github.com/hickory-dns/hickory-dns ) | `0.26.0` | `0.26.1` |
| [hickory-resolver](https://github.com/hickory-dns/hickory-dns ) | `0.26.0` | `0.26.1` |
| [libc](https://github.com/rust-lang/libc ) | `0.2.185` | `0.2.186` |
Updates `tokio` from 1.52.1 to 1.52.2
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.52.1...tokio-1.52.2 )
Updates `blake3` from 1.8.4 to 1.8.5
- [Release notes](https://github.com/BLAKE3-team/BLAKE3/releases )
- [Commits](https://github.com/BLAKE3-team/BLAKE3/compare/1.8.4...1.8.5 )
Updates `rustls` from 0.23.38 to 0.23.40
- [Release notes](https://github.com/rustls/rustls/releases )
- [Changelog](https://github.com/rustls/rustls/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rustls/rustls/compare/v/0.23.38...v/0.23.40 )
Updates `netdev` from 0.42.0 to 0.43.0
- [Release notes](https://github.com/shellrow/netdev/releases )
- [Commits](https://github.com/shellrow/netdev/compare/v0.42.0...v0.43.0 )
Updates `openssl` from 0.10.78 to 0.10.79
- [Release notes](https://github.com/rust-openssl/rust-openssl/releases )
- [Commits](https://github.com/rust-openssl/rust-openssl/compare/openssl-v0.10.78...openssl-v0.10.79 )
Updates `redis` from 1.2.0 to 1.2.1
- [Release notes](https://github.com/redis-rs/redis-rs/releases )
- [Commits](https://github.com/redis-rs/redis-rs/compare/redis-1.2.0...redis-1.2.1 )
Updates `hickory-server` from 0.26.0 to 0.26.1
- [Release notes](https://github.com/hickory-dns/hickory-dns/releases )
- [Changelog](https://github.com/hickory-dns/hickory-dns/blob/main/CHANGELOG.md )
- [Commits](https://github.com/hickory-dns/hickory-dns/compare/v0.26.0...v0.26.1 )
Updates `hickory-resolver` from 0.26.0 to 0.26.1
- [Release notes](https://github.com/hickory-dns/hickory-dns/releases )
- [Changelog](https://github.com/hickory-dns/hickory-dns/blob/main/CHANGELOG.md )
- [Commits](https://github.com/hickory-dns/hickory-dns/compare/v0.26.0...v0.26.1 )
Updates `libc` from 0.2.185 to 0.2.186
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.186/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.185...0.2.186 )
---
updated-dependencies:
- dependency-name: tokio
dependency-version: 1.52.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: mycelium
- dependency-name: blake3
dependency-version: 1.8.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: mycelium
- dependency-name: rustls
dependency-version: 0.23.40
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: mycelium
- dependency-name: netdev
dependency-version: 0.43.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: mycelium
- dependency-name: openssl
dependency-version: 0.10.79
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: mycelium
- dependency-name: redis
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: mycelium
- dependency-name: hickory-server
dependency-version: 0.26.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: mycelium
- dependency-name: hickory-resolver
dependency-version: 0.26.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: mycelium
- dependency-name: libc
dependency-version: 0.2.186
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: mycelium
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-06 12:02:37 +02:00
Lee Smet
6df2d0049b
Add release artifacts of mycelium shared library and archive
...
Also make sure the library soname is set on linux and macos
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-05-06 11:52:20 +02:00
Lee Smet
b525c69387
Update CHANGELOG.md
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
6574ee8574
Don't include FFI generated header in-tree
...
Header is generated at every build, so it's better to just keep it as a
build-output
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
672c6b6b4f
Add safety functions to exported FFI methods
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
9466a61c4a
Add tun_fd to ffi Config
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
16d3e0afb3
Refactor FFI to work on node pointer
...
Instead of using a singleton in the interface
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
a14a7df72a
Remove AIDL generation/binder, and expose a C FFI interface instead
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
3b6d337748
Switch rsbinder to libbinder_rs
...
rsbinder required patching to work against android15. Instead switch to
libbinder_rs for building in an aosp/SOONG environment.
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
23015b88cf
Setup aidl from mycelium lib
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
4608ded1ae
Merge Aidl into main mycelium lib
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
3b856d94f9
Basic arg parsing and node auto start
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
8294d0de69
Correct arguments on android
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
84e2fb6233
Use custom service manager bindings for android 15
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
6fd858e60d
Don't remove async binder impls
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
Lee Smet
bc4b5c592e
Add experimental AIDL implementation
...
Adds an AIDL file which exposes an interface similar to the HTTP API. It
is largely based on the mobile crate.
This implementation uses rs-binder. The advantage is that it "just works"
for experimenting. This will likely need to be changed later for the
OASP environment (something like binder_ndk perhaps).
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 15:49:56 +02:00
dependabot[bot]
0d14db1104
Bump rustls-webpki from 0.103.7 to 0.103.13 in /mobile
...
Bumps [rustls-webpki](https://github.com/rustls/webpki ) from 0.103.7 to 0.103.13.
- [Release notes](https://github.com/rustls/webpki/releases )
- [Commits](https://github.com/rustls/webpki/compare/v/0.103.7...v/0.103.13 )
---
updated-dependencies:
- dependency-name: rustls-webpki
dependency-version: 0.103.13
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-28 15:49:56 +02:00
dependabot[bot]
6b35c8eb2c
Bump rustls-webpki from 0.103.6 to 0.103.13 in /myceliumd-private
...
Bumps [rustls-webpki](https://github.com/rustls/webpki ) from 0.103.6 to 0.103.13.
- [Release notes](https://github.com/rustls/webpki/releases )
- [Commits](https://github.com/rustls/webpki/compare/v/0.103.6...v/0.103.13 )
---
updated-dependencies:
- dependency-name: rustls-webpki
dependency-version: 0.103.13
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-28 15:49:56 +02:00
dependabot[bot]
a7ad716c1c
Bump rustls-webpki from 0.103.6 to 0.103.13
...
Bumps [rustls-webpki](https://github.com/rustls/webpki ) from 0.103.6 to 0.103.13.
- [Release notes](https://github.com/rustls/webpki/releases )
- [Commits](https://github.com/rustls/webpki/compare/v/0.103.6...v/0.103.13 )
---
updated-dependencies:
- dependency-name: rustls-webpki
dependency-version: 0.103.13
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-28 15:49:56 +02:00
dependabot[bot]
dc88ac0e23
Bump rustls-webpki from 0.103.6 to 0.103.13 in /myceliumd
...
Bumps [rustls-webpki](https://github.com/rustls/webpki ) from 0.103.6 to 0.103.13.
- [Release notes](https://github.com/rustls/webpki/releases )
- [Commits](https://github.com/rustls/webpki/compare/v/0.103.6...v/0.103.13 )
---
updated-dependencies:
- dependency-name: rustls-webpki
dependency-version: 0.103.13
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-28 15:49:56 +02:00
Lee Smet
38803788c8
Update CHANGELOG.md
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
257967e401
Allow reordering of packets in TUN GRO
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
21bf72d3d1
Only attempt UDP coalescing in tun interface if USO is enabled
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
5aec6112bb
Remove legacy darwin nix flake inputs
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
4c1b926bec
Use larger Frame buffers for peer connections
...
This should slightly reduce the amount of syscalls needed when sending
packets to/receiving packets from peers under heavy load.
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
6414db380b
Add batch processing of received packets in data plane
...
Improves GRO performance by doing a batch of decryptions instead of
decrypting individual packets to then send them to the TUN interface
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
74981040f5
Rework linux TUN GRO to coalesce as much as possible
...
Rather than doing an all or nothing coallesce on the received packets
This also fixes an issue with GRO'd packet csum computation, especially
on UDP
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
9beab18ca4
Use bounded channel from linux TUN to dataplane
...
Adds backpressure compared to the unbounded channel. Prevents the TUN
reads from outpacing the Dataplane operation, which would lead to
increased latency and potential OOM. Now the data will be accumulated in
kernel buffers, and eventually get dropped.
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
b657d9fe82
Implement GRO/GSO (TSO/USO 4/6) in linux tun crate
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
17fd8115c5
Update lock files
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
7a21088849
Swap mycelium tun on linux from tokio-tun to mycelium-tun
...
Throughput increased from 1.30Gbit/s to 1.60Gbit/s average on my dev
laptop, though this is likely because we now use a dedicated task for
reading and writing, which allows parallel reads and writes.
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
b63ca2c427
Update mycelium-tun Cargo.toml
...
edition 2024, reference license file
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
cab1451c04
Allow setting the TUN interface UP
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
4110a378ee
Make sure O_NONBLOCK is set on TUN fd
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
71bd9b6745
Add option to set txqueue length on linux tun interface
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
5d9abae629
Add a read and write half implementation for linux TUN
...
This allows proper simultaneous reading and writing to the interface, in
parallel
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
Lee Smet
0243feaa3d
Add custom tun implementation on linux
...
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
2026-04-28 14:38:19 +02:00
dependabot[bot]
518f287c40
Bump rand from 0.8.5 to 0.8.6 in /myceliumd-private
...
Bumps [rand](https://github.com/rust-random/rand ) from 0.8.5 to 0.8.6.
- [Release notes](https://github.com/rust-random/rand/releases )
- [Changelog](https://github.com/rust-random/rand/blob/0.8.6/CHANGELOG.md )
- [Commits](https://github.com/rust-random/rand/compare/0.8.5...0.8.6 )
---
updated-dependencies:
- dependency-name: rand
dependency-version: 0.8.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-28 14:38:19 +02:00
dependabot[bot]
7b9cb3edfa
Bump rand from 0.8.5 to 0.8.6 in /mobile
...
Bumps [rand](https://github.com/rust-random/rand ) from 0.8.5 to 0.8.6.
- [Release notes](https://github.com/rust-random/rand/releases )
- [Changelog](https://github.com/rust-random/rand/blob/0.8.6/CHANGELOG.md )
- [Commits](https://github.com/rust-random/rand/compare/0.8.5...0.8.6 )
---
updated-dependencies:
- dependency-name: rand
dependency-version: 0.8.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-28 14:38:19 +02:00
dependabot[bot]
9ef966c6e3
Bump rand from 0.8.5 to 0.8.6 in /myceliumd
...
Bumps [rand](https://github.com/rust-random/rand ) from 0.8.5 to 0.8.6.
- [Release notes](https://github.com/rust-random/rand/releases )
- [Changelog](https://github.com/rust-random/rand/blob/0.8.6/CHANGELOG.md )
- [Commits](https://github.com/rust-random/rand/compare/0.8.5...0.8.6 )
---
updated-dependencies:
- dependency-name: rand
dependency-version: 0.8.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-28 14:38:19 +02:00
Lee Smet
d620b476ef
Update Dockerfile to use rust base image
...
Since debian doesn't ship rustc >= 1.85 yet
Signed-off-by: Lee Smet <lee.smet@hotmail.com >
v0.7.6
2026-04-21 15:36:06 +02:00