transparent-tor-proxy 0.1.1__py3-none-any.whl

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.
@@ -0,0 +1,378 @@
1
+ Metadata-Version: 2.4
2
+ Name: transparent-tor-proxy
3
+ Version: 0.1.1
4
+ Summary: Transparent Tor Proxy โ€” route all system traffic through Tor
5
+ License: MIT
6
+ License-File: LICENSE
7
+ Requires-Python: >=3.10
8
+ Requires-Dist: rich>=13.0.0
9
+ Requires-Dist: stem>=1.8.0
10
+ Requires-Dist: typer>=0.9.0
11
+ Provides-Extra: dev
12
+ Requires-Dist: build>=1.0.0; extra == 'dev'
13
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
14
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
15
+ Requires-Dist: twine>=4.0.0; extra == 'dev'
16
+ Description-Content-Type: text/markdown
17
+
18
+ <h1 align="center">
19
+ <br>
20
+ ๐Ÿ›ก๏ธ TTP โ€” Transparent Tor Proxy
21
+ <br>
22
+ </h1>
23
+
24
+ <h4 align="center">A Linux CLI tool that transparently routes <b>all system traffic</b> through the Tor network using nftables.</h4>
25
+
26
+ <p align="center">
27
+ <img src="https://img.shields.io/badge/OS-Linux-blue?style=for-the-badge&logo=linux" alt="Linux">
28
+ <img src="https://img.shields.io/badge/Python-3.10+-yellow?style=for-the-badge&logo=python" alt="Python">
29
+ <img src="https://github.com/onyks-os/TransparentTorProxy/actions/workflows/ci.yml/badge.svg" alt="CI Status">
30
+ <img src="https://img.shields.io/badge/License-MIT-green?style=for-the-badge" alt="License">
31
+ </p>
32
+
33
+ <p align="center">
34
+ <a href="#-features">Features</a> โ€ข
35
+ <a href="#-call-for-contributors">Contribute</a> โ€ข
36
+ <a href="#%EF%B8%8F-requirements">Requirements</a> โ€ข
37
+ <a href="#-installation">Installation</a> โ€ข
38
+ <a href="#-usage">Usage</a> โ€ข
39
+ <a href="#-how-it-works">How It Works</a>
40
+ </p>
41
+
42
+ ---
43
+
44
+ <p align="center">
45
+ <img src="https://raw.githubusercontent.com/onyks-os/TransparentTorProxy/main/assets/gif/demo.gif" alt="TTP Demo">
46
+ </p>
47
+
48
+ ---
49
+
50
+ No per-application setup needed โ€” just `sudo ttp start` and **every connection** goes through Tor.
51
+
52
+ > [!CAUTION]
53
+ > TTP is a tool designed to aid privacy by routing traffic through Tor. However, no tool can guarantee 100% anonymity. Your safety also depends on your behavior (e.g., using a regular browser vs. Tor Browser, signing into accounts, etc.). Always use TTP as part of a multi-layered security strategy.
54
+
55
+ > [!WARNING]
56
+ > **If you are a whistleblower or are engaging in high-risk activities, DO NOT use TTP.** Instead, use officially audited and reliable tools like [TailsOS](https://tails.net/) or the [Tor Browser](https://www.torproject.org/) directly. The authors and contributors of TTP assume no responsibility for your safety or the consequences of using this software.
57
+
58
+ ## ๐Ÿค Call for Contributors
59
+
60
+ We are actively looking for developers to join the TTP project! Whether you are a student looking to learn or a seasoned professional, your help is welcome.
61
+
62
+ **We are particularly seeking Senior Developers** with expertise in:
63
+
64
+ * ๐Ÿ›ก๏ธ **Linux Networking** (nftables, routing tables, network namespaces).
65
+ * ๐Ÿง… **Tor Internals** (daemon configuration, Stem library, circuit management).
66
+ * ๐Ÿ **System-level Python** (asynchronous I/O, process management, security best practices).
67
+
68
+ If you want to contribute to making transparent proxying safer and more robust, please check out our [Contributing Guidelines](CONTRIBUTING.md) or dive right into the [Issues](https://github.com/onyks-os/TransparentTorProxy/issues).
69
+
70
+ ## โœจ Features
71
+
72
+ * ๐ŸŒ **System-wide transparent proxy** โ€” all TCP traffic is redirected to Tor's TransPort, all DNS queries go through Tor's DNSPort.
73
+ * ๐Ÿ›ก๏ธ **DNS leak prevention** โ€” dual-mode DNS management (`resolvectl` / `resolv.conf` fallback) with symlink-aware detection.
74
+ * ๐Ÿšซ **IPv6 leak prevention** โ€” all outgoing IPv6 is blocked to avoid ISP-level leaks.
75
+ * ๐Ÿ”„ **Crash-safe** โ€” a lock file tracks session state; even after `kill -9` or a power outage, the next run detects the orphaned session and restores the network.
76
+ * โšก **Atomic firewall rules** โ€” `nftables` rules are loaded with `nft -f` (all-or-nothing), avoiding dangerous intermediate states.
77
+ * ๐ŸŽญ **IP rotation** โ€” `ttp refresh` requests a new Tor circuit for a fresh exit IP.
78
+ * ๐Ÿ›ก๏ธ **SELinux optimization** โ€” Compiles a custom SELinux policy from source (`.te`) on Fedora/RHEL to allow Tor to bind to necessary ports. No opaque binaries shipped.
79
+ * ๐Ÿง **Multi-distro** โ€” auto-detects `apt-get`, `pacman`, `dnf`, and `zypper` for Tor installation. Handles Debian multi-instance services (`tor@default`), Fedora (`toranon` user), and more.
80
+ * ๐Ÿ› ๏ธ **Auto-configuration** โ€” validates and sanitizes `torrc` before starting, removing invalid settings and appending missing options.
81
+
82
+ ## โš™๏ธ Requirements
83
+
84
+ * **Linux** with systemd *(tested on Debian 12+, Ubuntu 22.04+, Fedora 40+, Arch Linux)*
85
+ * **Python 3.10+**
86
+ * **nftables** *(pre-installed on most modern distros)*
87
+ * **Root privileges** *(required for firewall and DNS modifications)*
88
+
89
+ ## ๐Ÿš€ Installation
90
+
91
+ Choose the method that best fits your needs. **Native packages are strongly recommended** for system stability, security, and clean uninstallation.
92
+
93
+ ### 1. Native Packages (Recommended)
94
+
95
+ Installing via native packages ensures that all system dependencies (`tor`, `nftables`) and kernel-level optimizations (SELinux) are managed by your OS package manager.
96
+
97
+ * **Debian / Ubuntu**: `sudo apt install ./packaging/ttp_0.1.1_all.deb`
98
+ * **Fedora / RHEL**: `sudo dnf install ./packaging/ttp-0.1.1-1.fc43.noarch.rpm`
99
+ * **Arch Linux**: `cd packaging && makepkg -si`
100
+
101
+ ---
102
+
103
+ ### 2. Manual Source Install (Developer/Universal)
104
+
105
+ If you are a developer or want to install from the repository:
106
+
107
+ ```bash
108
+ git clone https://github.com/onyks-os/TransparentTorProxy.git
109
+ cd TransparentTorProxy
110
+ sudo ./scripts/install.sh
111
+ ```
112
+
113
+ > [!TIP]
114
+ > **Why use `./install.sh`?**
115
+ > Unlike standard Python installers, this script is **"intelligent"**. On Red Hat-based systems, it detects if SELinux is in *Enforcing* mode and dynamically compiles a custom policy module (from `ttp_tor_policy.te`) to allow Tor to bind to the non-standard ports required by TTP (9040, 9053). This kernel-level optimization cannot be performed by `pip`.
116
+
117
+ ---
118
+
119
+ ### 3. Fallback: pipx / pip (PEP 668)
120
+
121
+ > [!WARNING]
122
+ > **Note on Linux Distributions (PEP 668)**
123
+ > Recent versions of Ubuntu/Debian prevent global `pip install` to protect system stability. Using these methods will bypass TTP's kernel-level optimizations (SELinux) and won't handle system dependencies automatically.
124
+
125
+ #### **Option A: pipx (Recommended Fallback)**
126
+
127
+ `pipx` installs TTP in an isolated environment but makes the command available globally.
128
+
129
+ ```bash
130
+ pipx install transparent-tor-proxy
131
+ ```
132
+
133
+ #### **Option B: Standard pip with venv**
134
+
135
+ If you prefer standard `pip`, use a virtual environment to avoid the `externally-managed-environment` error.
136
+
137
+ ```bash
138
+ # 1. Create the environment
139
+ python3 -m venv ~/.local/share/ttp-venv
140
+
141
+ # 2. Install the package
142
+ ~/.local/share/ttp-venv/bin/pip install transparent-tor-proxy
143
+
144
+ # 3. Create a symbolic link to use 'ttp' everywhere
145
+ sudo ln -s ~/.local/share/ttp-venv/bin/ttp /usr/local/bin/ttp
146
+ ```
147
+
148
+ > [!CAUTION]
149
+ > **Uninstallation Warning**: Running `pipx uninstall` or deleting the venv only removes the Python code. If TTP is active, your firewall and DNS will remain hijacked. Always use `ttp stop` before uninstalling via pip, or use `./scripts/uninstall.sh` if you installed via the source script.
150
+ > [!NOTE]
151
+ > After installation, the `ttp` command is available system-wide.
152
+
153
+ ## ๐Ÿ’ป Usage
154
+
155
+ > [!IMPORTANT]
156
+ > All commands require `sudo`. Except `ttp status` and `ttp --help`.
157
+
158
+ ### Start the proxy
159
+
160
+ ```bash
161
+ sudo ttp start
162
+ ```
163
+
164
+ ```text
165
+ [TTP] Detecting Tor... found (v0.4.9.6), service active (user: debian-tor).
166
+ [TTP] Stateless nftables rules applied (Table: inet ttp).
167
+ [TTP] DNS set via resolvectl on interface ens3.
168
+ [TTP] Waiting for Tor to bootstrap...
169
+ [TTP] Tor is 100% bootstrapped.
170
+ [TTP] Verifying Tor routing...
171
+ [TTP] โœ… Session active. Exit IP: 109.70.100.11
172
+ [TTP] Use 'ttp stop' to terminate. 'ttp refresh' to change IP.
173
+ ```
174
+
175
+ ### Stop the proxy
176
+
177
+ ```bash
178
+ sudo ttp stop
179
+ ```
180
+
181
+ ```text
182
+ [TTP] Removing nftables rules...
183
+ [TTP] Restoring DNS...
184
+ [TTP] ๐Ÿ”ด Session terminated. Traffic in cleartext.
185
+ ```
186
+
187
+ ### Change exit IP
188
+
189
+ ```bash
190
+ sudo ttp refresh
191
+ ```
192
+
193
+ *Sends `NEWNYM` to Tor via the control interface โ€” all active circuits are rotated and you get a new exit IP.*
194
+
195
+ ### Check status
196
+
197
+ ```bash
198
+ sudo ttp status
199
+ ```
200
+
201
+ ```text
202
+ [TTP] Status: ACTIVE
203
+ [TTP] Exit IP: 185.181.61.201
204
+ [TTP] Session started: 2026-04-19T01:07:33.384801+00:00
205
+ [TTP] Process PID: 3392
206
+ ```
207
+
208
+ ## ๐Ÿ” Manual Leak Verification
209
+
210
+ To confirm that the tunnel is working correctly and no leaks are present:
211
+
212
+ 1. **Verify Tor Exit IP:**
213
+
214
+ ```bash
215
+ curl -s https://check.torproject.org/api/ip
216
+ ```
217
+
218
+ 2. **Verify DNS Routing:**
219
+
220
+ ```bash
221
+ # Should return a valid IP via Tor's DNSPort
222
+ dig +short A check.torproject.org
223
+ ```
224
+
225
+ 3. **DNS Leak Test (Terminal):**
226
+
227
+ ```bash
228
+ # This TXT query SHOULD return an EMPTY output
229
+ dig +short TXT whoami.ipv4.akahelp.net
230
+ ```
231
+
232
+ *Note: An empty output is the **expected** behavior under Tor. Tor's transparent resolver does not support TXT records; if this command returns your real ISP's IP, you have a DNS leak.*
233
+
234
+ 4. **Web-based Verification:**
235
+ Always perform additional tests on [dnsleaktest.com](https://www.dnsleaktest.com) and [ipleak.net](https://ipleak.net).
236
+
237
+ ### Full Uninstallation
238
+
239
+ To remove TTP completely from the system:
240
+
241
+ ```bash
242
+ sudo ./scripts/uninstall.sh
243
+ ```
244
+
245
+ ## ๐Ÿง  How It Works
246
+
247
+ 1. **Detection** โ€” checks if Tor is installed, which systemd service runs the daemon, and dynamically detects the Tor user.
248
+ 2. **Installation** โ€” if Tor is missing, detects the system's package manager and installs it automatically.
249
+ 3. **Configuration** โ€” sanitizes `torrc`, validates with `tor --verify-config`, restarts the correct service.
250
+ 4. **Firewall** โ€” generates `nftables` rules in a dedicated `inet ttp` table:
251
+ * **Stateless approach** โ€” no system backups needed; cleanup is an atomic `nft destroy table`.
252
+ * **Multi-Chain Protection**:
253
+ * `prerouting`: Intercepts traffic if TTP is used as a gateway.
254
+ * `output` (NAT): Redirects local TCP/DNS to Tor's ports.
255
+ * `filter_out` (Filter): Acts as a **Kill-Switch**.
256
+ * **Execution Sequence**:
257
+ 1. **Exclude Tor user** (prevents routing loops).
258
+ 2. **Exclude root processes** (system stability).
259
+ 3. **Intercept DNS** (UDP `:53`) and redirect to Tor's DNSPort.
260
+ 4. **Accept loopback** and local traffic (required for redirected packets).
261
+ 5. **Redirect all TCP** to Tor's TransPort (`:9040`).
262
+ 6. **Drop all IPv6** output to prevent leaks.
263
+ 7. **Kill-Switch (Reject)**: Terminate any cleartext traffic that bypassed redirection (e.g., pre-existing connections).
264
+ 5. **DNS** โ€” redirects DNS resolution to `127.0.0.1` via `resolvectl` or `/etc/resolv.conf`.
265
+ 6. **Bootstrap** โ€” waits for Tor to reach 100% bootstrap via the control interface.
266
+ 7. **Verification** โ€” confirms traffic is routed through Tor via multiple endpoints (`check.torproject.org`, `ipify`, `ifconfig.me`) for resilience.
267
+ 8. **State** โ€” writes a JSON lock file at `/var/lib/ttp/ttp.lock` for crash recovery.
268
+
269
+ ## ๐Ÿš‘ Crash Recovery
270
+
271
+ TTP is designed to always restore your network, even in edge cases:
272
+
273
+ | Scenario | What happens |
274
+ | :----------------------- | :------------------------------------------------------------------------------------------------------- |
275
+ | `ttp stop` | **Normal cleanup**: firewall restored, DNS restored, lock deleted |
276
+ | Ctrl+C / `kill` | Signal handler catches `SIGINT`/`SIGTERM` and runs cleanup before exit |
277
+ | `kill -9` / Power Outage | Next `ttp start` detects the orphaned lock file and auto-restores the network |
278
+ | Manual emergency | Run `sudo ./scripts/restore-network.sh` to flush all nftables rules, reset DNS, and delete the lock file |
279
+
280
+ ## โš ๏ธ Known Behavior
281
+
282
+ > [!WARNING]
283
+ >
284
+ > * **Tor Browser**: Applications using an explicit SOCKS5 proxy will create a double Tor hop. Use a regular browser instead while TTP is active.
285
+ > * **Chromium-based Browsers (DoH Leak)**: Chrome, Brave, and Edge might use **DNS-over-HTTPS (DoH)**, which bypasses system DNS settings. To prevent leaks:
286
+ > 1. Disable **"Secure DNS"** in browser settings.
287
+ > 2. **Ideally**, avoid Chromium-based browsers entirely while using TTP; use **Firefox** instead (ensuring its own "DNS over HTTPS" setting is also disabled).
288
+ > This still **DOES NOT** ensure the absence of leaks.
289
+ > * **IPv6**: All IPv6 traffic is blocked to prevent leaks. Future versions may support IPv6 through Tor.
290
+ > * **Exit IP variation**: Different connections may show different exit IPs due to Tor stream isolation. After `ttp refresh`, all connections get new circuits.
291
+
292
+ ## ๐Ÿงช Development & Testing
293
+
294
+ TTP uses a **Makefile** to automate and standardize the testing pipeline. This ensures that every change is verified against unit and integration tests before being committed.
295
+
296
+ ### The "Pre-Push" Rule
297
+ >
298
+ > [!IMPORTANT]
299
+ > **Always run `make verify` before pushing code.** If this command fails, the code is NOT ready for production.
300
+
301
+ ### Essential Commands
302
+
303
+ | Command | Goal |
304
+ | :------------------------ | :------------------------------------------------------------------------ |
305
+ | `make test` | Runs fast **Unit Tests** locally (no root needed, fully mocked). |
306
+ | `make integration-debian` | Runs full system tests inside a privileged **Docker** container (Debian). |
307
+ | `make integration-all` | Runs integration tests for all supported distros (Debian, Fedora, Arch). |
308
+ | **`make verify`** | **The Gold Standard**: Runs Unit Tests + All Integration Tests. |
309
+
310
+ ### Advanced: Real-World VM Testing
311
+
312
+ While Docker integration tests are fast and atomic, they don't capture 100% of the kernel/systemd nuances. For critical changes, it is **highly recommended** to test in a real QEMU VM:
313
+
314
+ ```bash
315
+ # Start a specific VM (e.g., arch)
316
+ ./scripts/vm/start.sh arch
317
+
318
+ # Sync current code to the VM
319
+ ./scripts/vm/send.sh
320
+
321
+ # Snapshot management for easy rollbacks
322
+ ./scripts/vm/snapshot.sh arch save before-risky-test
323
+ ```
324
+
325
+ ### Diagnostics
326
+
327
+ If something goes wrong, run the diagnostic command:
328
+
329
+ ```bash
330
+ sudo ttp diagnose
331
+ ```
332
+
333
+ ## ๐Ÿ—‚๏ธ Project Structure
334
+
335
+ ```text
336
+ โ”œโ”€โ”€ pyproject.toml # Package metadata and dependencies
337
+ โ”œโ”€โ”€ README.md
338
+ โ”œโ”€โ”€ CONTRIBUTING.md # Contribution guidelines
339
+ โ”œโ”€โ”€ SECURITY.md # Security policy
340
+ โ”œโ”€โ”€ scripts/ # Installation and VM management scripts
341
+ โ”‚ โ”œโ”€โ”€ install.sh # System-wide installer
342
+ โ”‚ โ”œโ”€โ”€ uninstall.sh # System-wide uninstaller
343
+ โ”‚ โ”œโ”€โ”€ restore-network.sh # Emergency network recovery script
344
+ โ”‚ โ””โ”€โ”€ vm/ # QEMU VM management scripts
345
+ โ”œโ”€โ”€ assets/ # Branding and demo assets
346
+ โ”‚ โ””โ”€โ”€ gif/ # Demo animations
347
+ โ”œโ”€โ”€ packaging/ # Build scripts for .deb, .rpm, and Arch packages
348
+ โ”‚ โ”œโ”€โ”€ build_deb.sh
349
+ โ”‚ โ”œโ”€โ”€ build_rpm.sh
350
+ โ”‚ โ”œโ”€โ”€ ttp.spec
351
+ โ”‚ โ”œโ”€โ”€ PKGBUILD
352
+ โ”‚ โ””โ”€โ”€ ttp.service
353
+ โ”œโ”€โ”€ ttp/ # Source code
354
+ โ”‚ โ”œโ”€โ”€ resources/ # Internal package resources (SELinux policies, etc.)
355
+ โ”‚ โ”œโ”€โ”€ cli.py # Typer entry point
356
+ โ”‚ โ”œโ”€โ”€ exceptions.py # Custom exception hierarchy
357
+ โ”‚ โ”œโ”€โ”€ tor_detect.py # Tor detection logic
358
+ โ”‚ โ”œโ”€โ”€ tor_install.py # Auto-install & configuration
359
+ โ”‚ โ”œโ”€โ”€ firewall.py # Atomic nftables management
360
+ โ”‚ โ”œโ”€โ”€ dns.py # DNS leak prevention
361
+ โ”‚ โ”œโ”€โ”€ state.py # Lock file and crash recovery
362
+ โ”‚ โ”œโ”€โ”€ tor_control.py # Tor daemon interaction and API
363
+ โ”‚ โ””โ”€โ”€ system_info.py # System diagnostic gathering
364
+ โ”œโ”€โ”€ tests/ # Unit tests (mocked)
365
+ โ””โ”€โ”€ docs/
366
+ โ””โ”€โ”€ architecture.md # Technical Architecture & Design
367
+ ```
368
+
369
+ ## ๐Ÿค Contributing & Security
370
+
371
+ Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
372
+
373
+ * Check out our [Contributing Guidelines](CONTRIBUTING.md) to get started.
374
+ * Please review our [Security Policy](SECURITY.md) before reporting vulnerabilities.
375
+
376
+ ## ๐Ÿ“„ License
377
+
378
+ MIT. See [LICENSE](LICENSE) for more information.
@@ -0,0 +1,18 @@
1
+ ttp/__init__.py,sha256=tjAamIdSaMa12LGx8I-KB6vWnZ7SyVoHnLb4ObYnwrs,60
2
+ ttp/cli.py,sha256=uElGJ_Ho3vGE02uho2ywbZWhyi4rM4I1CRD6NLbM10I,14544
3
+ ttp/dns.py,sha256=nAMp32jnbiwNeRHCQXI-nhxsW86MdBp_YOxRVQDQWLI,4553
4
+ ttp/exceptions.py,sha256=cQWp28_auJRMJgVxzHnb6iBH3pllWGwOudO073sqz_w,759
5
+ ttp/firewall.py,sha256=UvUjL_L4FwGPfJFC8oPB9spI_NLIRwGsYe_3NfQaa6Q,5865
6
+ ttp/state.py,sha256=7TUiTI541AfwxodmRSrTNVgUh9cW_BTBa0q0-Y9Lx44,3327
7
+ ttp/system_info.py,sha256=NSivCA5EkBEES0PNPZYpx2rJvZGtalKOKhpZoT9Mjxo,4508
8
+ ttp/tor_control.py,sha256=b0qP5rb7ufbetfkwGjOqjY40BUXlV0KqQIdBSUzQ7jI,6377
9
+ ttp/tor_detect.py,sha256=3dLM5tT3jcuSJlRvxWmSBbz2ejZL1ySZhY49JWjBaQI,7662
10
+ ttp/tor_install.py,sha256=7ilfNsZOwmA-ww8ALZKgxG08PQjaKv9suMwsWS9pXY4,9049
11
+ ttp/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ ttp/resources/selinux/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ ttp/resources/selinux/ttp_tor_policy.te,sha256=Dg2u7EDWelhxLr-fUqDMB3720Bw7QuKUhE_tGHosFC0,264
14
+ transparent_tor_proxy-0.1.1.dist-info/METADATA,sha256=RU1G2OwH0Rty57PbAeeERmNFuwag1X-stDROBgs0n6k,16608
15
+ transparent_tor_proxy-0.1.1.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
16
+ transparent_tor_proxy-0.1.1.dist-info/entry_points.txt,sha256=DBAqgNP0PKZMf3UwdRTUy5d9tuM1IG1sq4zk1jY1Xko,36
17
+ transparent_tor_proxy-0.1.1.dist-info/licenses/LICENSE,sha256=wLp0IAIlveZuh8Ys6MCG7nJU0s2DERPGD9pikFkxsEA,1065
18
+ transparent_tor_proxy-0.1.1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.29.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ ttp = ttp.cli:app
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 onyks-os
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
ttp/__init__.py ADDED
@@ -0,0 +1,3 @@
1
+ """TTP โ€” Transparent Tor Proxy."""
2
+
3
+ __version__ = "0.1.1"