devlinker 1.4.5__tar.gz → 1.4.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {devlinker-1.4.5/devlinker.egg-info → devlinker-1.4.6}/PKG-INFO +33 -9
- {devlinker-1.4.5 → devlinker-1.4.6}/README.md +32 -8
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/main.py +8 -7
- {devlinker-1.4.5 → devlinker-1.4.6/devlinker.egg-info}/PKG-INFO +33 -9
- {devlinker-1.4.5 → devlinker-1.4.6}/pyproject.toml +1 -1
- {devlinker-1.4.5 → devlinker-1.4.6}/LICENSE +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/MANIFEST.in +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/__init__.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/config.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/detection_state.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/detector.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/detector_ai.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/devlinker_loader_instant.html +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/devlinker_loader_snippet.html +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/doctor.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/fix.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/fixer.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/inspect.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/logger.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/monitor.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/proxy.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/runner.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/runtime_api.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker/tunnel.py +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker.egg-info/SOURCES.txt +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker.egg-info/dependency_links.txt +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker.egg-info/entry_points.txt +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker.egg-info/requires.txt +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/devlinker.egg-info/top_level.txt +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/setup.cfg +0 -0
- {devlinker-1.4.5 → devlinker-1.4.6}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devlinker
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.6
|
|
4
4
|
Summary: A lightweight proxy that combines your frontend and backend into one link for easy development and sharing.
|
|
5
5
|
Author-email: Mani <mani1028@users.noreply.github.com>
|
|
6
6
|
Requires-Python: >=3.7
|
|
@@ -132,7 +132,7 @@ If DevLinker helps you ship faster, consider supporting the project:
|
|
|
132
132
|
- `devlinker fix` — Auto-fix common issues (env, API paths, config)
|
|
133
133
|
- `devlinker --frontend 5173 --backend 5000` — Override detected ports
|
|
134
134
|
- `devlinker --docker` — Auto-start Docker backend
|
|
135
|
-
- `devlinker --no-tunnel` —
|
|
135
|
+
- `devlinker --no-tunnel` — Explicitly force local/WLAN-only mode (no public tunnel)
|
|
136
136
|
- `devlinker --no-lan` — Hide WLAN sharing URL
|
|
137
137
|
- `devlinker --interactive-backend` — Prompt to choose backend if multiple found
|
|
138
138
|
- `devlinker --proxy-port 18000` — Use custom proxy port
|
|
@@ -277,6 +277,20 @@ devlinker --docker
|
|
|
277
277
|
|
|
278
278
|
By default, DevLinker starts **fast local proxy only** (no tunnel). It prints a LAN URL when it can detect a local network interface, and you can share that link with devices on the same Wi-Fi/LAN.
|
|
279
279
|
|
|
280
|
+
LAN-only quick start:
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
devlinker
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
You can also pass `--no-tunnel` to explicitly enforce no public tunnel startup:
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
devlinker --no-tunnel
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
`--no-tunnel` does **not** disable frontend/backend linking. DevLinker still starts the local proxy and routes frontend + backend through the same local entry URL.
|
|
293
|
+
|
|
280
294
|
For access from another network, start with a public tunnel using the `--url` flag:
|
|
281
295
|
|
|
282
296
|
|
|
@@ -297,21 +311,31 @@ This starts the proxy and opens a public tunnel (Cloudflare or ngrok). The outpu
|
|
|
297
311
|
|
|
298
312
|
If your friend is on the same Wi-Fi/LAN, use the printed LAN URL like `http://192.168.x.x:<proxy-port>`. If they are outside your network, use the public tunnel URL instead.
|
|
299
313
|
|
|
300
|
-
To force tunnel off (even if
|
|
314
|
+
To force tunnel off (even if `--url` is passed):
|
|
301
315
|
|
|
302
316
|
```bash
|
|
303
317
|
devlinker --no-tunnel
|
|
304
318
|
```
|
|
305
319
|
|
|
306
|
-
When running without `--url`, you’ll see:
|
|
320
|
+
When running without `--url`, you’ll see local/WLAN output with public disabled:
|
|
307
321
|
|
|
308
322
|
```text
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
👉 Run: devlinker --url
|
|
323
|
+
Proxy: http://localhost:8000
|
|
324
|
+
WLAN: http://192.168.1.5:8000
|
|
325
|
+
Public: disabled (use --url)
|
|
313
326
|
```
|
|
314
327
|
|
|
328
|
+
WLAN usage notes:
|
|
329
|
+
|
|
330
|
+
- `localhost` works only on the machine running DevLinker.
|
|
331
|
+
- Use the printed WLAN URL on phones/laptops connected to the same Wi-Fi/LAN.
|
|
332
|
+
|
|
333
|
+
WLAN troubleshooting checklist:
|
|
334
|
+
|
|
335
|
+
1. Ensure both devices are on the same Wi-Fi/subnet.
|
|
336
|
+
2. Allow Python/DevLinker through firewall prompts (Private networks).
|
|
337
|
+
3. Keep Universal Mode enabled (default) so localhost API calls are rewritten safely for LAN/public links.
|
|
338
|
+
|
|
315
339
|
Disable WLAN URL output:
|
|
316
340
|
|
|
317
341
|
```bash
|
|
@@ -401,7 +425,6 @@ Example:
|
|
|
401
425
|
frontend: 5173
|
|
402
426
|
backend: 5000
|
|
403
427
|
proxy_port: 8001
|
|
404
|
-
tunnel: false
|
|
405
428
|
backend_entry: main.py
|
|
406
429
|
api_prefix: /api
|
|
407
430
|
strip_prefix: true
|
|
@@ -412,6 +435,7 @@ Config key notes:
|
|
|
412
435
|
- `backend_entry`: Optional Python backend startup file override (for example `main.py`)
|
|
413
436
|
- `api_prefix`: Prefix DevLinker treats as API traffic (default: `/api`)
|
|
414
437
|
- `strip_prefix`: When `true`, strips configured `api_prefix` before forwarding to backend
|
|
438
|
+
- Public tunnel is opt-in at runtime using `--url`; local/WLAN mode works without ngrok/cloudflared.
|
|
415
439
|
|
|
416
440
|
## Backend Auto-Detection
|
|
417
441
|
|
|
@@ -112,7 +112,7 @@ If DevLinker helps you ship faster, consider supporting the project:
|
|
|
112
112
|
- `devlinker fix` — Auto-fix common issues (env, API paths, config)
|
|
113
113
|
- `devlinker --frontend 5173 --backend 5000` — Override detected ports
|
|
114
114
|
- `devlinker --docker` — Auto-start Docker backend
|
|
115
|
-
- `devlinker --no-tunnel` —
|
|
115
|
+
- `devlinker --no-tunnel` — Explicitly force local/WLAN-only mode (no public tunnel)
|
|
116
116
|
- `devlinker --no-lan` — Hide WLAN sharing URL
|
|
117
117
|
- `devlinker --interactive-backend` — Prompt to choose backend if multiple found
|
|
118
118
|
- `devlinker --proxy-port 18000` — Use custom proxy port
|
|
@@ -257,6 +257,20 @@ devlinker --docker
|
|
|
257
257
|
|
|
258
258
|
By default, DevLinker starts **fast local proxy only** (no tunnel). It prints a LAN URL when it can detect a local network interface, and you can share that link with devices on the same Wi-Fi/LAN.
|
|
259
259
|
|
|
260
|
+
LAN-only quick start:
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
devlinker
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
You can also pass `--no-tunnel` to explicitly enforce no public tunnel startup:
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
devlinker --no-tunnel
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
`--no-tunnel` does **not** disable frontend/backend linking. DevLinker still starts the local proxy and routes frontend + backend through the same local entry URL.
|
|
273
|
+
|
|
260
274
|
For access from another network, start with a public tunnel using the `--url` flag:
|
|
261
275
|
|
|
262
276
|
|
|
@@ -277,21 +291,31 @@ This starts the proxy and opens a public tunnel (Cloudflare or ngrok). The outpu
|
|
|
277
291
|
|
|
278
292
|
If your friend is on the same Wi-Fi/LAN, use the printed LAN URL like `http://192.168.x.x:<proxy-port>`. If they are outside your network, use the public tunnel URL instead.
|
|
279
293
|
|
|
280
|
-
To force tunnel off (even if
|
|
294
|
+
To force tunnel off (even if `--url` is passed):
|
|
281
295
|
|
|
282
296
|
```bash
|
|
283
297
|
devlinker --no-tunnel
|
|
284
298
|
```
|
|
285
299
|
|
|
286
|
-
When running without `--url`, you’ll see:
|
|
300
|
+
When running without `--url`, you’ll see local/WLAN output with public disabled:
|
|
287
301
|
|
|
288
302
|
```text
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
👉 Run: devlinker --url
|
|
303
|
+
Proxy: http://localhost:8000
|
|
304
|
+
WLAN: http://192.168.1.5:8000
|
|
305
|
+
Public: disabled (use --url)
|
|
293
306
|
```
|
|
294
307
|
|
|
308
|
+
WLAN usage notes:
|
|
309
|
+
|
|
310
|
+
- `localhost` works only on the machine running DevLinker.
|
|
311
|
+
- Use the printed WLAN URL on phones/laptops connected to the same Wi-Fi/LAN.
|
|
312
|
+
|
|
313
|
+
WLAN troubleshooting checklist:
|
|
314
|
+
|
|
315
|
+
1. Ensure both devices are on the same Wi-Fi/subnet.
|
|
316
|
+
2. Allow Python/DevLinker through firewall prompts (Private networks).
|
|
317
|
+
3. Keep Universal Mode enabled (default) so localhost API calls are rewritten safely for LAN/public links.
|
|
318
|
+
|
|
295
319
|
Disable WLAN URL output:
|
|
296
320
|
|
|
297
321
|
```bash
|
|
@@ -381,7 +405,6 @@ Example:
|
|
|
381
405
|
frontend: 5173
|
|
382
406
|
backend: 5000
|
|
383
407
|
proxy_port: 8001
|
|
384
|
-
tunnel: false
|
|
385
408
|
backend_entry: main.py
|
|
386
409
|
api_prefix: /api
|
|
387
410
|
strip_prefix: true
|
|
@@ -392,6 +415,7 @@ Config key notes:
|
|
|
392
415
|
- `backend_entry`: Optional Python backend startup file override (for example `main.py`)
|
|
393
416
|
- `api_prefix`: Prefix DevLinker treats as API traffic (default: `/api`)
|
|
394
417
|
- `strip_prefix`: When `true`, strips configured `api_prefix` before forwarding to backend
|
|
418
|
+
- Public tunnel is opt-in at runtime using `--url`; local/WLAN mode works without ngrok/cloudflared.
|
|
395
419
|
|
|
396
420
|
## Backend Auto-Detection
|
|
397
421
|
|
|
@@ -420,6 +420,13 @@ def _wait_for_readiness(
|
|
|
420
420
|
return False
|
|
421
421
|
|
|
422
422
|
|
|
423
|
+
def _should_enable_tunnel(url: bool, no_tunnel: bool) -> bool:
|
|
424
|
+
"""Public tunnels are opt-in and only enabled with --url unless explicitly disabled."""
|
|
425
|
+
if no_tunnel:
|
|
426
|
+
return False
|
|
427
|
+
return bool(url)
|
|
428
|
+
|
|
429
|
+
|
|
423
430
|
def _wait_for_readiness_live(
|
|
424
431
|
label: str,
|
|
425
432
|
port: int,
|
|
@@ -532,8 +539,6 @@ def _run_proxy(
|
|
|
532
539
|
backend_port_override = config.get("backend")
|
|
533
540
|
if proxy_port == 8000 and config.get("proxy_port"):
|
|
534
541
|
proxy_port = config["proxy_port"]
|
|
535
|
-
if not url and config.get("tunnel") is True:
|
|
536
|
-
url = True
|
|
537
542
|
configured_api_prefix = config.get("api_prefix", "/api")
|
|
538
543
|
strip_prefix = bool(config.get("strip_prefix", False))
|
|
539
544
|
backend_entry = config.get("backend_entry")
|
|
@@ -680,11 +685,7 @@ def _run_proxy(
|
|
|
680
685
|
_ui_status("🛠", "Debug mode enabled: live API request logger is ON", style="magenta")
|
|
681
686
|
|
|
682
687
|
warning_free_url: str | None = None
|
|
683
|
-
enable_tunnel =
|
|
684
|
-
if url:
|
|
685
|
-
enable_tunnel = True
|
|
686
|
-
if no_tunnel:
|
|
687
|
-
enable_tunnel = False
|
|
688
|
+
enable_tunnel = _should_enable_tunnel(url=url, no_tunnel=no_tunnel)
|
|
688
689
|
|
|
689
690
|
if enable_tunnel:
|
|
690
691
|
try:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devlinker
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.6
|
|
4
4
|
Summary: A lightweight proxy that combines your frontend and backend into one link for easy development and sharing.
|
|
5
5
|
Author-email: Mani <mani1028@users.noreply.github.com>
|
|
6
6
|
Requires-Python: >=3.7
|
|
@@ -132,7 +132,7 @@ If DevLinker helps you ship faster, consider supporting the project:
|
|
|
132
132
|
- `devlinker fix` — Auto-fix common issues (env, API paths, config)
|
|
133
133
|
- `devlinker --frontend 5173 --backend 5000` — Override detected ports
|
|
134
134
|
- `devlinker --docker` — Auto-start Docker backend
|
|
135
|
-
- `devlinker --no-tunnel` —
|
|
135
|
+
- `devlinker --no-tunnel` — Explicitly force local/WLAN-only mode (no public tunnel)
|
|
136
136
|
- `devlinker --no-lan` — Hide WLAN sharing URL
|
|
137
137
|
- `devlinker --interactive-backend` — Prompt to choose backend if multiple found
|
|
138
138
|
- `devlinker --proxy-port 18000` — Use custom proxy port
|
|
@@ -277,6 +277,20 @@ devlinker --docker
|
|
|
277
277
|
|
|
278
278
|
By default, DevLinker starts **fast local proxy only** (no tunnel). It prints a LAN URL when it can detect a local network interface, and you can share that link with devices on the same Wi-Fi/LAN.
|
|
279
279
|
|
|
280
|
+
LAN-only quick start:
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
devlinker
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
You can also pass `--no-tunnel` to explicitly enforce no public tunnel startup:
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
devlinker --no-tunnel
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
`--no-tunnel` does **not** disable frontend/backend linking. DevLinker still starts the local proxy and routes frontend + backend through the same local entry URL.
|
|
293
|
+
|
|
280
294
|
For access from another network, start with a public tunnel using the `--url` flag:
|
|
281
295
|
|
|
282
296
|
|
|
@@ -297,21 +311,31 @@ This starts the proxy and opens a public tunnel (Cloudflare or ngrok). The outpu
|
|
|
297
311
|
|
|
298
312
|
If your friend is on the same Wi-Fi/LAN, use the printed LAN URL like `http://192.168.x.x:<proxy-port>`. If they are outside your network, use the public tunnel URL instead.
|
|
299
313
|
|
|
300
|
-
To force tunnel off (even if
|
|
314
|
+
To force tunnel off (even if `--url` is passed):
|
|
301
315
|
|
|
302
316
|
```bash
|
|
303
317
|
devlinker --no-tunnel
|
|
304
318
|
```
|
|
305
319
|
|
|
306
|
-
When running without `--url`, you’ll see:
|
|
320
|
+
When running without `--url`, you’ll see local/WLAN output with public disabled:
|
|
307
321
|
|
|
308
322
|
```text
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
👉 Run: devlinker --url
|
|
323
|
+
Proxy: http://localhost:8000
|
|
324
|
+
WLAN: http://192.168.1.5:8000
|
|
325
|
+
Public: disabled (use --url)
|
|
313
326
|
```
|
|
314
327
|
|
|
328
|
+
WLAN usage notes:
|
|
329
|
+
|
|
330
|
+
- `localhost` works only on the machine running DevLinker.
|
|
331
|
+
- Use the printed WLAN URL on phones/laptops connected to the same Wi-Fi/LAN.
|
|
332
|
+
|
|
333
|
+
WLAN troubleshooting checklist:
|
|
334
|
+
|
|
335
|
+
1. Ensure both devices are on the same Wi-Fi/subnet.
|
|
336
|
+
2. Allow Python/DevLinker through firewall prompts (Private networks).
|
|
337
|
+
3. Keep Universal Mode enabled (default) so localhost API calls are rewritten safely for LAN/public links.
|
|
338
|
+
|
|
315
339
|
Disable WLAN URL output:
|
|
316
340
|
|
|
317
341
|
```bash
|
|
@@ -401,7 +425,6 @@ Example:
|
|
|
401
425
|
frontend: 5173
|
|
402
426
|
backend: 5000
|
|
403
427
|
proxy_port: 8001
|
|
404
|
-
tunnel: false
|
|
405
428
|
backend_entry: main.py
|
|
406
429
|
api_prefix: /api
|
|
407
430
|
strip_prefix: true
|
|
@@ -412,6 +435,7 @@ Config key notes:
|
|
|
412
435
|
- `backend_entry`: Optional Python backend startup file override (for example `main.py`)
|
|
413
436
|
- `api_prefix`: Prefix DevLinker treats as API traffic (default: `/api`)
|
|
414
437
|
- `strip_prefix`: When `true`, strips configured `api_prefix` before forwarding to backend
|
|
438
|
+
- Public tunnel is opt-in at runtime using `--url`; local/WLAN mode works without ngrok/cloudflared.
|
|
415
439
|
|
|
416
440
|
## Backend Auto-Detection
|
|
417
441
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "devlinker"
|
|
7
|
-
version = "1.4.
|
|
7
|
+
version = "1.4.6"
|
|
8
8
|
description = "A lightweight proxy that combines your frontend and backend into one link for easy development and sharing."
|
|
9
9
|
authors = [
|
|
10
10
|
{ name = "Mani", email = "mani1028@users.noreply.github.com" }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|