cubething_psync 0.1.0.dev3__py3-none-any.whl → 0.1.0.dev4__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,36 @@
1
+ Metadata-Version: 2.4
2
+ Name: cubething_psync
3
+ Version: 0.1.0.dev4
4
+ Summary: Simple project synchronization tool.
5
+ Author-email: ada mandala <ada@cubething.dev>
6
+ License-Expression: MIT
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Operating System :: Unix
9
+ Requires-Python: >=3.13
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE
12
+ Requires-Dist: build>=1.3.0
13
+ Requires-Dist: loguru>=0.7.3
14
+ Requires-Dist: setuptools>=80.9.0
15
+ Requires-Dist: websockets>=15.0.1
16
+ Dynamic: license-file
17
+
18
+ <div align="center">
19
+ <img src="./docs/static/logo.png" height=250 />
20
+ </div>
21
+
22
+ [![readthedocs](https://app.readthedocs.org/projects/psync/badge/?version=latest)](https://psync.readthedocs.io/en/latest)
23
+
24
+ **psync** is a simple tool to sync your project over SSH. It consists of a
25
+ client and server.
26
+
27
+ ## Features
28
+
29
+ - Project syncing with rsync (requires ssh)
30
+ - Execute project binary on daemon host
31
+ - Real-time logging based on websockets
32
+ - Natural Ctrl-C / SIGINT handling on client and server
33
+ - SSL authentication
34
+ - Containerized for easy deployment
35
+
36
+ For usage tips, please [read the docs.](https://psync.readthedocs.io/en/latest/)
@@ -5,12 +5,12 @@ client/main.py,sha256=2AvWOD8_L8v_XvNOlOYs2E9Opnk4Tke3mvsVBuzhyK0,5555
5
5
  common/__init__.py,sha256=ss0hfom-0D_mZFXzp0_PjVTju4_F6eZv-2xa_fKxyOM,48
6
6
  common/data.py,sha256=q0xoGE7WAoVpBibXCZFWJeRex4xCYIJnVy8tj4tQ75k,3367
7
7
  common/log.py,sha256=csgaJXv55Dkx0lEbbeFHbNPNedQI4m4TvzEcXZqP1ps,777
8
- cubething_psync-0.1.0.dev3.dist-info/licenses/LICENSE,sha256=I_GOA9xJ35FiL-KnYXZJdATkbO2KcV2dK2enRGVxzKM,1023
8
+ cubething_psync-0.1.0.dev4.dist-info/licenses/LICENSE,sha256=I_GOA9xJ35FiL-KnYXZJdATkbO2KcV2dK2enRGVxzKM,1023
9
9
  server/__init__.py,sha256=kUR5RAFc7HCeiqdlX36dZOHkUI5wI6V_43RpEcD8b-0,22
10
10
  server/__main__.py,sha256=vBQ82334kX06ImDbFlPFgiBRiLIinwNk3z8Khs6hd74,31
11
11
  server/main.py,sha256=lKMkMQTwAzd46cR-fYJxqjGqEddOuDeDGtUcIYpW7j0,8845
12
- cubething_psync-0.1.0.dev3.dist-info/METADATA,sha256=f2qJ6j2pRAI7bfClWnEITz582gGVhatq-xeLL94kbtY,3036
13
- cubething_psync-0.1.0.dev3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
14
- cubething_psync-0.1.0.dev3.dist-info/entry_points.txt,sha256=hlMim2vUtVPF4uJba8yN5HQ3tTnmFaaMWZTyO0DZzu8,82
15
- cubething_psync-0.1.0.dev3.dist-info/top_level.txt,sha256=FC-5h-e7XOGsRL8m12y95vvnsK4XIN_GxdDJDBf31HM,21
16
- cubething_psync-0.1.0.dev3.dist-info/RECORD,,
12
+ cubething_psync-0.1.0.dev4.dist-info/METADATA,sha256=cn--Ltt0O32m7ox6mNQsudPdkcu9qfifqHo46XT1nkU,1127
13
+ cubething_psync-0.1.0.dev4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
14
+ cubething_psync-0.1.0.dev4.dist-info/entry_points.txt,sha256=Mt-3F-F6JxQo4c40wiDT8Lj0t4U4LI2ZC_lD-uo1szE,82
15
+ cubething_psync-0.1.0.dev4.dist-info/top_level.txt,sha256=FC-5h-e7XOGsRL8m12y95vvnsK4XIN_GxdDJDBf31HM,21
16
+ cubething_psync-0.1.0.dev4.dist-info/RECORD,,
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ psync-client = client.main:main
3
+ psync-server = server.main:main
@@ -1,83 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: cubething_psync
3
- Version: 0.1.0.dev3
4
- Summary: Simple project synchronization tool.
5
- Author-email: ada mandala <ada@cubething.dev>
6
- License-Expression: MIT
7
- Classifier: Programming Language :: Python :: 3
8
- Classifier: Operating System :: Unix
9
- Requires-Python: >=3.13
10
- Description-Content-Type: text/markdown
11
- License-File: LICENSE
12
- Requires-Dist: build>=1.3.0
13
- Requires-Dist: loguru>=0.7.3
14
- Requires-Dist: setuptools>=80.9.0
15
- Requires-Dist: websockets>=15.0.1
16
- Dynamic: license-file
17
-
18
- <div align="center">
19
- <img src="./docs/static/logo.png" height=250 />
20
- </div>
21
-
22
- **psync** is a simple tool to sync your project over SSH. It consists of a
23
- client and server.
24
-
25
- ## Features
26
-
27
- - Project syncing with rsync (requires ssh)
28
- - Execute project binary on daemon host
29
- - Real-time logging based on websockets
30
- - Natural Ctrl-C / SIGINT handling on client and server
31
- - SSL authentication
32
- - Containerized for easy deployment
33
-
34
- ## Example usecase
35
-
36
- I am working on a [game
37
- project](https://cubething.dev/qproj/general-introduction). Compiling a game
38
- written in Rust requires a lot of CPU power, but I want to be able to build from
39
- my low-end laptop. I already have my machines hooked up to SSH into each other.
40
- So, I set up the client on my laptop, use my editor to SSH into my desktop
41
- server, and sync the build assets from the desktop to the laptop using psync.
42
- **Note that while the desktop is the server _for the editor_, it is the client
43
- for psync.** Similar for the laptop.
44
-
45
- ## Usage
46
-
47
- When you want to run the project, you must build it and then execute the psync
48
- client. The client will sync the files and send a start message to the server.
49
- This starts up the synced executable on the server machine. The server will send
50
- logs and listen for events, e.g. shutdown messages (sent with SIGINT).
51
-
52
- ### Server
53
-
54
- The server should be set up on the machine which is to _recieve_
55
- the files. This corresponds to the laptop in the example usecase.
56
-
57
- Ideally you should run the server as a daemon, for example using the systemd
58
- config included in this repository.
59
-
60
- ### Client
61
-
62
- The client should be invoked on the machine which is to _send_ the files. This
63
- corresponds to the desktop in the example usecase. After every build, the client
64
- should be run. The client will then sync the files. Once this is done, recieve
65
- logs from the server.
66
-
67
- ## Security
68
-
69
- Please generate an SSL certificate. You can use the following one-line if you'd
70
- like.
71
-
72
- ```sh
73
- openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 3650 -nodes \
74
- -subj "/C=XX/ST=StateName/L=CityName/O=CompanyName/OU=CompanySectionName/CN=localhost" \
75
- -addext "subjectAltName=DNS:localhost,DNS:psync-server,IP:127.0.0.1"
76
- ```
77
-
78
- Note that this sets an alternate name as psync-server. This will be useful when
79
- deploying to docker.
80
-
81
- I recommend that you _do not expose this over the wire._ I am only using it over
82
- my local network. If you intend on serving this over the WAN, you should use
83
- something like [ZeroTier](https://www.zerotier.com) to secure your connection.
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- psync_client = client.main:main
3
- psync_server = server.main:main