Skip to content

Commit 1c5055b

Browse files
authored
Merge pull request #32 from anywherelan/add-fastlane
add Fastlane metadata for Android F-Droid/Play Store listing
2 parents 763f3ac + a79f5aa commit 1c5055b

10 files changed

Lines changed: 44 additions & 7 deletions

File tree

.github/workflows/ci.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
name: CI
22

3-
on:
4-
push:
5-
branches: [master]
6-
pull_request:
3+
on: [ push, pull_request ]
74

85
concurrency:
96
group: ${{ github.workflow }}-${{ github.ref }}
@@ -15,6 +12,8 @@ env:
1512

1613
jobs:
1714
test:
15+
# run job on all pushes OR external PR, not both
16+
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name }}
1817
name: Analyze & test
1918
runs-on: ubuntu-latest
2019
steps:
@@ -57,6 +56,8 @@ jobs:
5756
if-no-files-found: warn
5857

5958
build-web:
59+
# run job on all pushes OR external PR, not both
60+
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name }}
6061
name: Build web
6162
runs-on: ubuntu-latest
6263
needs: test

android/app/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ android {
1414
namespace "com.anywherelan.awl"
1515
compileSdkVersion 36
1616
compileSdk 36
17+
ndkVersion "27.3.13750724"
1718

1819
sourceSets {
1920
main.java.srcDirs += 'src/main/kotlin'
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Redesigned UI with Material 3.
2+
3+
Backend: halved SOCKS5 connection latency for the first packet, updated to Go 1.26, added Prometheus metrics, HTTP Basic Auth for web interface.
4+
5+
Now available on F-Droid (proprietary libraries removed).
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Anywherelan (awl) is a mesh VPN that lets you connect to any of your devices at the IP level, wherever they are. It works similarly to tinc, direct WireGuard or Tailscale, but fully peer-to-peer — there are no central coordination servers to trust or set up. Your traffic goes directly between your devices.
2+
3+
You can also route traffic through a remote device as a SOCKS5 proxy.
4+
5+
<b>Some use cases</b>
6+
<ul>
7+
<li>Connect to your home or work laptop over RDP/VNC/SSH even when it sits behind NAT, without configuring port forwarding.</li>
8+
<li>Reach self-hosted services like Nextcloud, Home Assistant or Bitwarden without exposing them to the internet.</li>
9+
<li>Access websites from another country by using a remote device as a SOCKS5 proxy.</li>
10+
<li>Gaming: local multiplayer as if everyone were on the same LAN.</li>
11+
<li>Share a development server with a colleague on another device, as an alternative to ngrok.</li>
12+
<li>Use an old Android phone remotely with scrcpy to run Android-only apps without an emulator.</li>
13+
</ul>
14+
15+
<b>Features</b>
16+
<ul>
17+
<li>Fully peer-to-peer. No third-party coordination servers — your traffic stays between your devices.</li>
18+
<li>Route traffic through a remote device like a SOCKS5 proxy.</li>
19+
<li>Easy to use: install the app, scan the QR code of another device, and you are connected.</li>
20+
<li>Built-in NAT traversal.</li>
21+
<li>If both devices are behind NAT and direct P2P is not possible, encrypted traffic is relayed through community relays.</li>
22+
<li>TLS 1.3 encryption for all transports (QUIC and TCP).</li>
23+
<li>ed25519 peer authentication — a peer id is the device's public key.</li>
24+
<li>Cross-platform: Android, Windows, Linux, macOS.</li>
25+
</ul>
26+
27+
<b>How it works</b>
28+
29+
Awl is built on top of libp2p for peer-to-peer networking and a TUN virtual interface for IP routing. QUIC or TCP with TLS is used as a transport, and a DHT is used to discover peers. On first launch, the app connects to community bootstrap nodes, registers itself, and then looks up the addresses of the peers you want to reach.
30+
31+
Source code, desktop builds and more documentation: <a href="https://github.com/anywherelan/awl">https://github.com/anywherelan/awl</a>
18.7 KB
Loading
53.1 KB
Loading
54.5 KB
Loading
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Peer-to-peer mesh VPN to connect your devices directly, no central servers
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Anywherelan

lib/notifications.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -316,9 +316,6 @@ int generateNotificationId(String id) {
316316
var md5 = crypto.md5;
317317
var digest = md5.convert(content);
318318

319-
// TODO: try
320-
// return getCrc32(digest.bytes);
321-
322319
var bdata = ByteData(4);
323320
bdata.setUint8(0, digest.bytes[0]);
324321
bdata.setUint8(1, digest.bytes[1]);

0 commit comments

Comments
 (0)