Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vi/android-udp-bus
Android tool to exchange UDP packets
https://github.com/vi/android-udp-bus
android bridge bus hub java network port-forward rust udp
Last synced: 3 months ago
JSON representation
Android tool to exchange UDP packets
- Host: GitHub
- URL: https://github.com/vi/android-udp-bus
- Owner: vi
- License: mit
- Created: 2022-11-03T21:08:27.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-12-07T21:30:51.000Z (about 2 years ago)
- Last Synced: 2024-10-05T06:15:21.863Z (4 months ago)
- Topics: android, bridge, bus, hub, java, network, port-forward, rust, udp
- Language: Rust
- Homepage:
- Size: 168 KB
- Stars: 11
- Watchers: 3
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# android-udp-bus
Android application to create UDP forwarders, hubs and other tools. To aid building VPNs, video streaming and other tricky network uses.
![First screenshot](screenshot1.png) ![Second screenshot](screenshot2.png)
Build it using `./gradlew cargoBuild && ./gradlew assembleDebug`.
# Download
[](https://f-droid.org/packages/org.vi_server.androidudpbus/)
or get the APK from the [Releases Section](https://github.com/vi/android-udp-bus/releases/latest).
# Features
* Binding UDP socket on specified port and exchanging traffic between all known peers
* Exchanging traffic between multiple UDP sockets
* Remembering specified number of peers that have sent us some datagram, with optional expiration policy
* Directly specifying peers to send datagrams to. Combined with remembering, it allows using the application as UDP forwarder.
* Joining multicast groups, setting TTL, TOS, read and write buffer sizes and other socket options.
* Periodical sending of hardcoded datagrams to specified peers (e.g. to keep NAT open)
* Displaying of detailed statistics of the traffic
* Starting multiple isolated hubs, each with distinct set of ports. Can even act as a simplistic load balancer due to `SO_REUSEPORT`.The application does not send datagrams back to sender.
# Limitation
* UI is not user-friendly.
* Not all features are exposed in GUI - you may want to add some undocumented fields to the JSON manually.
* Not very optimised for speed or latency. It may be slightly slower than `socat udp4-l udp`.
* Not everything is tested yet# Configuration
GUI has a button to simplify appending a JSON snippet for a port to the first hub. There is no removal function - you are expected to edit JSON youself to access to edit config or to access advanced features. It may make sense to use clipboard to copy the config out or into the application. Config JSON is not saved as a file to filesystem ("Save" button saves to Android preferences).
For a trickier setup it can also make sense to prepare a config outside mobile device. For this, you may want to use [JSON schema](schema.json) of the configuration file. There are descriptions of all options in the schema (autogenerated from [this source code file](udphub/src/config.rs)). Prepared config file may be transferred to the application e.g. by QR code (using external QR scanner app and the clipboard).