summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2025-10-06 04:13:32 +0800
committerGitHub <noreply@github.com>2025-10-06 04:13:32 +0800
commit4a32781c096f30cb39e16c745076e6b7537929cd (patch)
tree304075598071f55cb9dc15dc7ac8d9b8740e511e
parent57959d26c68dc1d403f527f1f8b407abe8059a28 (diff)
parent85f7c35d6c573b715c166fe7501225ecab6731ea (diff)
Merge pull request #17 from JustEnoughVCS/jvcs_dev
Jvcs dev
-rw-r--r--Cargo.lock20
-rw-r--r--Cargo.toml9
-rw-r--r--FRAMEWORK_CANVAS.canvas93
-rw-r--r--README.md2
-rw-r--r--README_zh_CN.md2
-rw-r--r--crates/vcs_actions/Cargo.toml15
-rw-r--r--crates/vcs_actions/src/actions.rs5
-rw-r--r--crates/vcs_actions/src/actions/local_actions.rs0
-rw-r--r--crates/vcs_actions/src/actions/sheet_actions.rs0
-rw-r--r--crates/vcs_actions/src/actions/user_actions.rs0
-rw-r--r--crates/vcs_actions/src/actions/vault_actions.rs0
-rw-r--r--crates/vcs_actions/src/actions/virtual_file_actions.rs0
-rw-r--r--crates/vcs_actions/src/lib.rs2
-rw-r--r--crates/vcs_actions/src/registry.rs2
-rw-r--r--crates/vcs_actions/src/registry/client_registry.rs0
-rw-r--r--crates/vcs_actions/src/registry/server_registry.rs0
-rw-r--r--crates/vcs_data/Cargo.toml (renamed from crates/vcs/Cargo.toml)2
-rw-r--r--crates/vcs_data/src/constants.rs (renamed from crates/vcs/src/constants.rs)0
-rw-r--r--crates/vcs_data/src/current.rs (renamed from crates/vcs/src/current.rs)0
-rw-r--r--crates/vcs_data/src/data.rs (renamed from crates/vcs/src/data.rs)0
-rw-r--r--crates/vcs_data/src/data/local.rs (renamed from crates/vcs/src/data/local.rs)0
-rw-r--r--crates/vcs_data/src/data/local/config.rs (renamed from crates/vcs/src/data/local/config.rs)0
-rw-r--r--crates/vcs_data/src/data/member.rs (renamed from crates/vcs/src/data/member.rs)0
-rw-r--r--crates/vcs_data/src/data/sheet.rs (renamed from crates/vcs/src/data/sheet.rs)0
-rw-r--r--crates/vcs_data/src/data/user.rs (renamed from crates/vcs/src/data/user.rs)0
-rw-r--r--crates/vcs_data/src/data/user/accounts.rs (renamed from crates/vcs/src/data/user/accounts.rs)0
-rw-r--r--crates/vcs_data/src/data/vault.rs (renamed from crates/vcs/src/data/vault.rs)0
-rw-r--r--crates/vcs_data/src/data/vault/config.rs (renamed from crates/vcs/src/data/vault/config.rs)4
-rw-r--r--crates/vcs_data/src/data/vault/member.rs (renamed from crates/vcs/src/data/vault/member.rs)0
-rw-r--r--crates/vcs_data/src/data/vault/sheets.rs (renamed from crates/vcs/src/data/vault/sheets.rs)0
-rw-r--r--crates/vcs_data/src/data/vault/virtual_file.rs (renamed from crates/vcs/src/data/vault/virtual_file.rs)0
-rw-r--r--crates/vcs_data/src/lib.rs (renamed from crates/vcs/src/lib.rs)0
-rw-r--r--crates/vcs_data/todo.txt (renamed from crates/vcs/todo.txt)0
-rw-r--r--crates/vcs_data/vcs_data_test/Cargo.toml (renamed from crates/vcs/vcs_test/Cargo.toml)4
-rw-r--r--crates/vcs_data/vcs_data_test/lib.rs (renamed from crates/vcs/vcs_test/lib.rs)0
-rw-r--r--crates/vcs_data/vcs_data_test/src/lib.rs (renamed from crates/vcs/vcs_test/src/lib.rs)0
-rw-r--r--crates/vcs_data/vcs_data_test/src/test_local_workspace_setup_and_account_management.rs (renamed from crates/vcs/vcs_test/src/test_local_workspace_setup_and_account_management.rs)2
-rw-r--r--crates/vcs_data/vcs_data_test/src/test_sheet_creation_management_and_persistence.rs (renamed from crates/vcs/vcs_test/src/test_sheet_creation_management_and_persistence.rs)14
-rw-r--r--crates/vcs_data/vcs_data_test/src/test_vault_setup_and_member_register.rs (renamed from crates/vcs/vcs_test/src/test_vault_setup_and_member_register.rs)2
-rw-r--r--crates/vcs_data/vcs_data_test/src/test_virtual_file_creation_and_update.rs (renamed from crates/vcs/vcs_test/src/test_virtual_file_creation_and_update.rs)2
-rw-r--r--docs/images/FRAMEWORK_CANVAS.pngbin0 -> 182753 bytes
-rw-r--r--src/lib.rs3
42 files changed, 102 insertions, 81 deletions
diff --git a/Cargo.lock b/Cargo.lock
index a1a26a9..7ed2554 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -541,7 +541,8 @@ dependencies = [
"cfg_file",
"string_proc",
"tcp_connection",
- "vcs",
+ "vcs_actions",
+ "vcs_data",
]
[[package]]
@@ -1370,7 +1371,18 @@ dependencies = [
]
[[package]]
-name = "vcs"
+name = "vcs_actions"
+version = "0.1.0"
+dependencies = [
+ "action_system",
+ "cfg_file",
+ "string_proc",
+ "tcp_connection",
+ "vcs_data",
+]
+
+[[package]]
+name = "vcs_data"
version = "0.1.0"
dependencies = [
"action_system",
@@ -1384,14 +1396,14 @@ dependencies = [
]
[[package]]
-name = "vcs_test"
+name = "vcs_data_test"
version = "0.1.0"
dependencies = [
"cfg_file",
"tcp_connection",
"tcp_connection_test",
"tokio",
- "vcs",
+ "vcs_data",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 7c32aaf..72f3270 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -25,8 +25,10 @@ members = [
"crates/system_action",
"crates/system_action/action_macros",
- "crates/vcs",
- "crates/vcs/vcs_test",
+ "crates/vcs_data",
+ "crates/vcs_data/vcs_data_test",
+
+ "crates/vcs_actions",
]
[workspace.package]
@@ -56,4 +58,5 @@ cfg_file = { path = "crates/utils/cfg_file" }
tcp_connection = { path = "crates/utils/tcp_connection" }
string_proc = { path = "crates/utils/string_proc" }
-vcs = { path = "crates/vcs" }
+vcs_data = { path = "crates/vcs_data" }
+vcs_actions = { path = "crates/vcs_actions" }
diff --git a/FRAMEWORK_CANVAS.canvas b/FRAMEWORK_CANVAS.canvas
index 6ccb97e..26ec7bb 100644
--- a/FRAMEWORK_CANVAS.canvas
+++ b/FRAMEWORK_CANVAS.canvas
@@ -1,65 +1,40 @@
{
"nodes":[
- {"id":"1d3ec658666499c1","type":"group","x":-1360,"y":-521,"width":946,"height":391,"color":"5","label":"Sheets Manager"},
- {"id":"84179fd3d7bd4a40","type":"group","x":-1187,"y":-20,"width":600,"height":391,"color":"4","label":"Verify Server"},
- {"id":"f6d50a7965b39a10","type":"group","x":-306,"y":-521,"width":546,"height":391,"color":"1","label":"Vault Server"},
- {"id":"2d372fa421b04a86","type":"group","x":-1340,"y":-220,"width":900,"height":80,"color":"5","label":"Sheets"},
- {"id":"c9d997e3609afbc7","type":"text","text":"Remote Machine","x":-306,"y":-720,"width":206,"height":50},
- {"id":"b6d1139fc7ce8f2e","type":"text","text":"File System","x":-277,"y":-860,"width":148,"height":60},
- {"id":"e4d781029c03267d","type":"text","text":"USER_SHEET_1","x":-1100,"y":-200,"width":200,"height":50},
- {"id":"60a64de812f8f309","type":"text","text":"USER_SHEET_2","x":-880,"y":-200,"width":200,"height":50},
- {"id":"e56cf63de6613e4b","type":"text","text":"...","x":-660,"y":-200,"width":200,"height":50},
- {"id":"9c88ae31931a06e3","type":"text","text":"**Sheets Manager**","x":-980,"y":-491,"width":180,"height":50,"color":"5"},
- {"id":"8ccf62ef395b29a5","type":"text","text":"MAIN_SHEET","x":-1320,"y":-200,"width":200,"height":50,"color":"1"},
- {"id":"01b33cfd10e1dabe","type":"text","text":"VIRTUAL FILE","x":-286,"y":-501,"width":166,"height":60},
- {"id":"712eca4371ac8771","type":"text","text":"HISTORY","x":64,"y":-501,"width":126,"height":60},
- {"id":"ec99c88ed47f4ae3","type":"text","text":"**Vault Server**","x":37,"y":-200,"width":180,"height":50,"color":"1"},
- {"id":"47f3144bfa56c450","type":"text","text":"Gate Server","x":-160,"y":140,"width":250,"height":60},
- {"id":"eaeeabe33dfc79cc","type":"text","text":"Cached Sheet","x":-1165,"y":600,"width":250,"height":60,"color":"5"},
- {"id":"59b10d87aeb8d173","type":"text","text":"Local File Map","x":-1165,"y":740,"width":250,"height":60},
- {"id":"6c88b3b3171c2cfa","type":"text","text":"Local File","x":-1165,"y":880,"width":250,"height":60,"color":"3"},
- {"id":"331629e5f4b37caa","type":"text","text":"Pub Key DB","x":-1144,"y":0,"width":135,"height":60},
- {"id":"8e33c2586ef8e262","type":"text","text":"Member Info","x":-807,"y":0,"width":200,"height":60},
- {"id":"ec301cee0ad7fae3","type":"text","text":"**Verify Server**","x":-1167,"y":301,"width":180,"height":50,"color":"4"},
- {"id":"a2d30e3b136fe67f","type":"text","text":"Local Machine","x":-800,"y":880,"width":250,"height":60},
- {"id":"f470377233f67831","type":"text","text":"Client","x":-160,"y":880,"width":250,"height":60},
- {"id":"b7b7094136fe8b92","type":"text","text":"Private Key","x":-800,"y":1060,"width":250,"height":60,"color":"3"},
- {"id":"e0151221c4e6aa9e","type":"text","text":"Member Info","x":-160,"y":1200,"width":250,"height":60,"color":"4"},
- {"id":"4ddd85f291925ef3","type":"text","text":"Cmd","x":440,"y":880,"width":200,"height":60},
- {"id":"40743e1c3e19017b","type":"text","text":"Gui","x":440,"y":980,"width":200,"height":60},
- {"id":"feedb8b5f1d0992b","type":"text","text":"","x":840,"y":910,"width":250,"height":60}
+ {"id":"6108936ff70a6df6","type":"group","x":1540,"y":-480,"width":290,"height":420,"color":"5","label":"Client"},
+ {"id":"61beb9dd4858ab56","type":"group","x":1200,"y":-480,"width":290,"height":420,"color":"4","label":"Protocols"},
+ {"id":"7b15c8da64a275dd","type":"group","x":20,"y":-480,"width":280,"height":420,"color":"2","label":"Datas"},
+ {"id":"5452663e24219b57","type":"group","x":-360,"y":-480,"width":280,"height":420,"color":"1","label":"File Storage"},
+ {"id":"08041e1ed8adbf23","type":"group","x":420,"y":-480,"width":277,"height":420,"color":"3","label":"Client / Server"},
+ {"id":"ab048c225f92a0b5","type":"text","text":"REAL_FILES","x":-340,"y":-333,"width":240,"height":60,"color":"1"},
+ {"id":"9becfba9bd34cf72","type":"text","text":"LOCAL_FILES","x":-340,"y":-200,"width":240,"height":60,"color":"1"},
+ {"id":"4a3d9c7d37cc4554","type":"text","text":"SHEETS","x":40,"y":-460,"width":240,"height":60,"color":"2"},
+ {"id":"953a678fd5f65526","type":"text","text":"VIRTUAL_FILES","x":40,"y":-333,"width":240,"height":60,"color":"2"},
+ {"id":"50615e432257da4e","type":"text","text":"LOCAL_CLONED_SHEET","x":40,"y":-140,"width":240,"height":60,"color":"2"},
+ {"id":"6cb37b9c27eef97b","type":"text","text":"VAULT","x":440,"y":-333,"width":237,"height":60,"color":"3"},
+ {"id":"fa764e1f4b5523af","type":"text","text":"LOCAL_WORKSPACE","x":440,"y":-200,"width":237,"height":60,"color":"3"},
+ {"id":"e9f3d1cb18045858","type":"text","text":"CORE","x":820,"y":-273,"width":240,"height":60},
+ {"id":"53fc44e76bcbd0a0","type":"text","text":"IPC","x":1220,"y":-273,"width":250,"height":60,"color":"4"},
+ {"id":"79182419068c2908","type":"text","text":"MCP","x":1220,"y":-140,"width":250,"height":60,"color":"4"},
+ {"id":"7f945acd64826a42","type":"text","text":"GUI","x":1560,"y":-273,"width":250,"height":60,"color":"5"},
+ {"id":"cd1286af92172d06","type":"text","text":"AI - Models","x":1560,"y":-140,"width":250,"height":60,"color":"5"},
+ {"id":"1e0a1eea644ecea3","type":"text","text":"CLI","x":1560,"y":-420,"width":250,"height":60,"color":"5"}
],
"edges":[
- {"id":"105b992dfa317c73","fromNode":"ec99c88ed47f4ae3","fromSide":"left","toNode":"01b33cfd10e1dabe","toSide":"bottom","color":"1","label":"Storage"},
- {"id":"0e328a66572211a2","fromNode":"712eca4371ac8771","fromSide":"left","toNode":"01b33cfd10e1dabe","toSide":"right","color":"1","label":"Map / Track"},
- {"id":"ed0b1b992f5a9579","fromNode":"ec99c88ed47f4ae3","fromSide":"top","toNode":"712eca4371ac8771","toSide":"bottom","color":"1","label":"Record"},
- {"id":"305730a683227e3e","fromNode":"ec301cee0ad7fae3","fromSide":"top","toNode":"331629e5f4b37caa","toSide":"bottom","color":"4","label":"Record / Verify"},
- {"id":"23ba15a42ff7f1b8","fromNode":"ec301cee0ad7fae3","fromSide":"right","toNode":"8e33c2586ef8e262","toSide":"bottom","color":"4","label":"Cache"},
- {"id":"993945c6912d637c","fromNode":"9c88ae31931a06e3","fromSide":"bottom","toNode":"8ccf62ef395b29a5","toSide":"top","color":"5","label":"Manage"},
- {"id":"88055e57577ce258","fromNode":"9c88ae31931a06e3","fromSide":"bottom","toNode":"e4d781029c03267d","toSide":"top","color":"5","label":"Manage"},
- {"id":"083789a30bd301a2","fromNode":"9c88ae31931a06e3","fromSide":"bottom","toNode":"60a64de812f8f309","toSide":"top","color":"5","label":"Manage"},
- {"id":"65254ae75c8ab69a","fromNode":"9c88ae31931a06e3","fromSide":"bottom","toNode":"e56cf63de6613e4b","toSide":"top","color":"5","label":"Manage"},
- {"id":"2fd4ec961f8af067","fromNode":"47f3144bfa56c450","fromSide":"left","toNode":"84179fd3d7bd4a40","toSide":"right","color":"4","label":"Request"},
- {"id":"3fcb47e7db89faa9","fromNode":"e56cf63de6613e4b","fromSide":"right","toNode":"01b33cfd10e1dabe","toSide":"left","color":"#ffffff","label":"Map"},
- {"id":"a2cdeef7808ab059","fromNode":"01b33cfd10e1dabe","fromSide":"top","toNode":"c9d997e3609afbc7","toSide":"bottom"},
- {"id":"a42517e228c1e28d","fromNode":"c9d997e3609afbc7","fromSide":"top","toNode":"b6d1139fc7ce8f2e","toSide":"bottom"},
- {"id":"741c0dd03a76da8e","fromNode":"84179fd3d7bd4a40","fromSide":"top","toNode":"2d372fa421b04a86","toSide":"bottom","color":"4","label":"Operate"},
- {"id":"c0914905c9302d65","fromNode":"f6d50a7965b39a10","fromSide":"bottom","toNode":"47f3144bfa56c450","toSide":"top","color":"1","label":"Download File"},
- {"id":"0254b65ccaec894f","fromNode":"84179fd3d7bd4a40","fromSide":"right","toNode":"f6d50a7965b39a10","toSide":"bottom","color":"1","label":"Upload File"},
- {"id":"13ad94c252b8a47f","fromNode":"01b33cfd10e1dabe","fromSide":"right","toNode":"712eca4371ac8771","toSide":"left","color":"1"},
- {"id":"ea7d39c89d879e44","fromNode":"eaeeabe33dfc79cc","fromSide":"bottom","toNode":"59b10d87aeb8d173","toSide":"top","label":"Track Name / Path"},
- {"id":"0c22ac4d4c6b07b2","fromNode":"59b10d87aeb8d173","fromSide":"bottom","toNode":"6c88b3b3171c2cfa","toSide":"top","label":"Track Changes"},
- {"id":"30ec55c70139d964","fromNode":"6c88b3b3171c2cfa","fromSide":"top","toNode":"59b10d87aeb8d173","toSide":"bottom"},
- {"id":"f3ece26dd90c59fc","fromNode":"59b10d87aeb8d173","fromSide":"top","toNode":"eaeeabe33dfc79cc","toSide":"bottom"},
- {"id":"2a8dd8c2728e4ea8","fromNode":"84179fd3d7bd4a40","fromSide":"bottom","toNode":"eaeeabe33dfc79cc","toSide":"top","color":"4","label":"Sync Sheet"},
- {"id":"30b56dee8eaee8e0","fromNode":"6c88b3b3171c2cfa","fromSide":"right","toNode":"a2d30e3b136fe67f","toSide":"left"},
- {"id":"6d161a8eb1f548ea","fromNode":"a2d30e3b136fe67f","fromSide":"right","toNode":"f470377233f67831","toSide":"left"},
- {"id":"53de2e970f2d0369","fromNode":"b7b7094136fe8b92","fromSide":"right","toNode":"f470377233f67831","toSide":"bottom","label":"Attach"},
- {"id":"d09329144c5553cb","fromNode":"b7b7094136fe8b92","fromSide":"top","toNode":"a2d30e3b136fe67f","toSide":"bottom"},
- {"id":"c6e0c0de4c952411","fromNode":"e0151221c4e6aa9e","fromSide":"top","toNode":"f470377233f67831","toSide":"bottom","label":"Attach"},
- {"id":"8970328240b97cca","fromNode":"47f3144bfa56c450","fromSide":"right","toNode":"f470377233f67831","toSide":"right","color":"1","label":"Receive Result / File"},
- {"id":"f3ce9e450f86b2bd","fromNode":"f470377233f67831","fromSide":"top","toNode":"47f3144bfa56c450","toSide":"bottom","color":"4","label":"Connect \nRequest \nUpload File"},
- {"id":"77293990bd66ac7c","fromNode":"4ddd85f291925ef3","fromSide":"left","toNode":"f470377233f67831","toSide":"right","label":"Invoke"},
- {"id":"9db8ee2737251355","fromNode":"40743e1c3e19017b","fromSide":"left","toNode":"f470377233f67831","toSide":"right","label":"Invoke"}
+ {"id":"a9c05bbdb4004166","fromNode":"e9f3d1cb18045858","fromSide":"left","toNode":"6cb37b9c27eef97b","toSide":"right"},
+ {"id":"deac8e1cf7c842ca","fromNode":"6cb37b9c27eef97b","fromSide":"left","toNode":"4a3d9c7d37cc4554","toSide":"right"},
+ {"id":"807e796d5bce5449","fromNode":"953a678fd5f65526","fromSide":"left","toNode":"ab048c225f92a0b5","toSide":"right","label":"Link"},
+ {"id":"8e7e03fd68275492","fromNode":"6cb37b9c27eef97b","fromSide":"left","toNode":"953a678fd5f65526","toSide":"right"},
+ {"id":"0a61912dcd911a8b","fromNode":"e9f3d1cb18045858","fromSide":"left","toNode":"fa764e1f4b5523af","toSide":"right"},
+ {"id":"f152956a93934f57","fromNode":"fa764e1f4b5523af","fromSide":"left","toNode":"9becfba9bd34cf72","toSide":"right"},
+ {"id":"d69dce6728df4d67","fromNode":"9becfba9bd34cf72","fromSide":"right","toNode":"50615e432257da4e","toSide":"left","label":"Mapping"},
+ {"id":"a2be52fcfa51b570","fromNode":"4a3d9c7d37cc4554","fromSide":"bottom","toNode":"953a678fd5f65526","toSide":"top","label":"Mapping"},
+ {"id":"058a9f7ada6e1dd7","fromNode":"953a678fd5f65526","fromSide":"bottom","toNode":"50615e432257da4e","toSide":"top","label":"Clone"},
+ {"id":"b54e283c3dfbf38c","fromNode":"fa764e1f4b5523af","fromSide":"left","toNode":"50615e432257da4e","toSide":"right","label":"Using"},
+ {"id":"09ae4a12be630cc2","fromNode":"fa764e1f4b5523af","fromSide":"top","toNode":"6cb37b9c27eef97b","toSide":"bottom","label":"Connect"},
+ {"id":"97b042a476817b7e","fromNode":"7f945acd64826a42","fromSide":"left","toNode":"53fc44e76bcbd0a0","toSide":"right"},
+ {"id":"7e021ee8877a3278","fromNode":"53fc44e76bcbd0a0","fromSide":"left","toNode":"e9f3d1cb18045858","toSide":"right"},
+ {"id":"ce688f1b81b7cf2e","fromNode":"1e0a1eea644ecea3","fromSide":"left","toNode":"e9f3d1cb18045858","toSide":"right"},
+ {"id":"ab34939a3302f7fa","fromNode":"cd1286af92172d06","fromSide":"left","toNode":"79182419068c2908","toSide":"right"},
+ {"id":"ce8c9124000a75f8","fromNode":"79182419068c2908","fromSide":"left","toNode":"e9f3d1cb18045858","toSide":"right"}
]
} \ No newline at end of file
diff --git a/README.md b/README.md
index d94a29a..7484def 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,8 @@
​ `JustEnoughVCS` adheres to the "**Just Enough**" philosophy, aiming to achieve collaborative security through architectural design. Centered around a **Virtual File System** and **Sheet Isolation**, it provides each creator with a focused, distraction-free workspace, making collaboration natural and simple.
+![img](docs/images/FRAMEWORK_CANVAS.png)
+
## Virtual File System
​ The Virtual File System is the foundation of `JustEnoughVCS`. Each file is identified by a globally unique `VirtualFileId`, decoupled from its physical path. It comprehensively records:
diff --git a/README_zh_CN.md b/README_zh_CN.md
index b3cff12..4781723 100644
--- a/README_zh_CN.md
+++ b/README_zh_CN.md
@@ -10,6 +10,8 @@
​ `JustEnoughVCS` 遵循"**Just Enough**"的理念,旨在通过架构设计来实现协作安全。它以**虚拟文件系统**和**表隔离**为核心,为每个创作者提供专注、无干扰的工作空间,让协作变得自然且简单。
+![img](docs/images/FRAMEWORK_CANVAS.png)
+
## 虚拟文件系统 (Virtual File System)
​ 虚拟文件系统是 `JustEnoughVCS` 的基础。每个文件由一个全局唯一的 `VirtualFileId` 标识,与其物理路径解耦。它全面记录:
diff --git a/crates/vcs_actions/Cargo.toml b/crates/vcs_actions/Cargo.toml
new file mode 100644
index 0000000..e5a07f6
--- /dev/null
+++ b/crates/vcs_actions/Cargo.toml
@@ -0,0 +1,15 @@
+[package]
+name = "vcs_actions"
+edition = "2024"
+version.workspace = true
+
+[dependencies]
+
+# Utils
+tcp_connection = { path = "../utils/tcp_connection" }
+cfg_file = { path = "../utils/cfg_file", features = ["default"] }
+string_proc = { path = "../utils/string_proc" }
+
+# Core dependencies
+action_system = { path = "../system_action" }
+vcs_data = { path = "../vcs_data" }
diff --git a/crates/vcs_actions/src/actions.rs b/crates/vcs_actions/src/actions.rs
new file mode 100644
index 0000000..20bd037
--- /dev/null
+++ b/crates/vcs_actions/src/actions.rs
@@ -0,0 +1,5 @@
+pub mod local_actions;
+pub mod sheet_actions;
+pub mod user_actions;
+pub mod vault_actions;
+pub mod virtual_file_actions;
diff --git a/crates/vcs_actions/src/actions/local_actions.rs b/crates/vcs_actions/src/actions/local_actions.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/crates/vcs_actions/src/actions/local_actions.rs
diff --git a/crates/vcs_actions/src/actions/sheet_actions.rs b/crates/vcs_actions/src/actions/sheet_actions.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/crates/vcs_actions/src/actions/sheet_actions.rs
diff --git a/crates/vcs_actions/src/actions/user_actions.rs b/crates/vcs_actions/src/actions/user_actions.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/crates/vcs_actions/src/actions/user_actions.rs
diff --git a/crates/vcs_actions/src/actions/vault_actions.rs b/crates/vcs_actions/src/actions/vault_actions.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/crates/vcs_actions/src/actions/vault_actions.rs
diff --git a/crates/vcs_actions/src/actions/virtual_file_actions.rs b/crates/vcs_actions/src/actions/virtual_file_actions.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/crates/vcs_actions/src/actions/virtual_file_actions.rs
diff --git a/crates/vcs_actions/src/lib.rs b/crates/vcs_actions/src/lib.rs
new file mode 100644
index 0000000..92de35f
--- /dev/null
+++ b/crates/vcs_actions/src/lib.rs
@@ -0,0 +1,2 @@
+pub mod actions;
+pub mod registry;
diff --git a/crates/vcs_actions/src/registry.rs b/crates/vcs_actions/src/registry.rs
new file mode 100644
index 0000000..ceec1a1
--- /dev/null
+++ b/crates/vcs_actions/src/registry.rs
@@ -0,0 +1,2 @@
+pub mod client_registry;
+pub mod server_registry;
diff --git a/crates/vcs_actions/src/registry/client_registry.rs b/crates/vcs_actions/src/registry/client_registry.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/crates/vcs_actions/src/registry/client_registry.rs
diff --git a/crates/vcs_actions/src/registry/server_registry.rs b/crates/vcs_actions/src/registry/server_registry.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/crates/vcs_actions/src/registry/server_registry.rs
diff --git a/crates/vcs/Cargo.toml b/crates/vcs_data/Cargo.toml
index 888e18d..07f1a6a 100644
--- a/crates/vcs/Cargo.toml
+++ b/crates/vcs_data/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "vcs"
+name = "vcs_data"
edition = "2024"
version.workspace = true
diff --git a/crates/vcs/src/constants.rs b/crates/vcs_data/src/constants.rs
index 5e147c4..5e147c4 100644
--- a/crates/vcs/src/constants.rs
+++ b/crates/vcs_data/src/constants.rs
diff --git a/crates/vcs/src/current.rs b/crates/vcs_data/src/current.rs
index 97b5058..97b5058 100644
--- a/crates/vcs/src/current.rs
+++ b/crates/vcs_data/src/current.rs
diff --git a/crates/vcs/src/data.rs b/crates/vcs_data/src/data.rs
index ed9383a..ed9383a 100644
--- a/crates/vcs/src/data.rs
+++ b/crates/vcs_data/src/data.rs
diff --git a/crates/vcs/src/data/local.rs b/crates/vcs_data/src/data/local.rs
index 1c99832..1c99832 100644
--- a/crates/vcs/src/data/local.rs
+++ b/crates/vcs_data/src/data/local.rs
diff --git a/crates/vcs/src/data/local/config.rs b/crates/vcs_data/src/data/local/config.rs
index 5444047..5444047 100644
--- a/crates/vcs/src/data/local/config.rs
+++ b/crates/vcs_data/src/data/local/config.rs
diff --git a/crates/vcs/src/data/member.rs b/crates/vcs_data/src/data/member.rs
index b5136a1..b5136a1 100644
--- a/crates/vcs/src/data/member.rs
+++ b/crates/vcs_data/src/data/member.rs
diff --git a/crates/vcs/src/data/sheet.rs b/crates/vcs_data/src/data/sheet.rs
index a6220c9..a6220c9 100644
--- a/crates/vcs/src/data/sheet.rs
+++ b/crates/vcs_data/src/data/sheet.rs
diff --git a/crates/vcs/src/data/user.rs b/crates/vcs_data/src/data/user.rs
index 0abd098..0abd098 100644
--- a/crates/vcs/src/data/user.rs
+++ b/crates/vcs_data/src/data/user.rs
diff --git a/crates/vcs/src/data/user/accounts.rs b/crates/vcs_data/src/data/user/accounts.rs
index d77bc02..d77bc02 100644
--- a/crates/vcs/src/data/user/accounts.rs
+++ b/crates/vcs_data/src/data/user/accounts.rs
diff --git a/crates/vcs/src/data/vault.rs b/crates/vcs_data/src/data/vault.rs
index 5d17a81..5d17a81 100644
--- a/crates/vcs/src/data/vault.rs
+++ b/crates/vcs_data/src/data/vault.rs
diff --git a/crates/vcs/src/data/vault/config.rs b/crates/vcs_data/src/data/vault/config.rs
index 1cfc8ef..6eea25a 100644
--- a/crates/vcs/src/data/vault/config.rs
+++ b/crates/vcs_data/src/data/vault/config.rs
@@ -28,7 +28,7 @@ pub struct VaultServerConfig {
port: u16,
/// Whether to enable LAN discovery, allowing members on the same LAN to more easily find the upstream server
- lan_discovery: bool,
+ lan_discovery: bool, // TODO
/// Authentication strength level
/// 0: Weakest - Anyone can claim any identity, fastest speed
@@ -36,7 +36,7 @@ pub struct VaultServerConfig {
/// 2: Advanced - Uses asymmetric encryption, multiple devices can use key authentication to log in simultaneously, slightly slower
/// 3: Secure - Uses asymmetric encryption, only one device can use key for authentication at a time, much slower
/// Default is "Advanced", if using a lower security policy, ensure your server is only accessible by trusted devices
- auth_strength: u8,
+ auth_strength: u8, // TODO
}
impl Default for VaultConfig {
diff --git a/crates/vcs/src/data/vault/member.rs b/crates/vcs_data/src/data/vault/member.rs
index aebd92d..aebd92d 100644
--- a/crates/vcs/src/data/vault/member.rs
+++ b/crates/vcs_data/src/data/vault/member.rs
diff --git a/crates/vcs/src/data/vault/sheets.rs b/crates/vcs_data/src/data/vault/sheets.rs
index 0bba4f5..0bba4f5 100644
--- a/crates/vcs/src/data/vault/sheets.rs
+++ b/crates/vcs_data/src/data/vault/sheets.rs
diff --git a/crates/vcs/src/data/vault/virtual_file.rs b/crates/vcs_data/src/data/vault/virtual_file.rs
index fe83594..fe83594 100644
--- a/crates/vcs/src/data/vault/virtual_file.rs
+++ b/crates/vcs_data/src/data/vault/virtual_file.rs
diff --git a/crates/vcs/src/lib.rs b/crates/vcs_data/src/lib.rs
index 1b41391..1b41391 100644
--- a/crates/vcs/src/lib.rs
+++ b/crates/vcs_data/src/lib.rs
diff --git a/crates/vcs/todo.txt b/crates/vcs_data/todo.txt
index 65c94ef..65c94ef 100644
--- a/crates/vcs/todo.txt
+++ b/crates/vcs_data/todo.txt
diff --git a/crates/vcs/vcs_test/Cargo.toml b/crates/vcs_data/vcs_data_test/Cargo.toml
index 1cc43ac..9dcbd4a 100644
--- a/crates/vcs/vcs_test/Cargo.toml
+++ b/crates/vcs_data/vcs_data_test/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "vcs_test"
+name = "vcs_data_test"
edition = "2024"
version.workspace = true
@@ -7,7 +7,7 @@ version.workspace = true
tcp_connection = { path = "../../utils/tcp_connection" }
tcp_connection_test = { path = "../../utils/tcp_connection/tcp_connection_test" }
cfg_file = { path = "../../utils/cfg_file", features = ["default"] }
-vcs = { path = "../../vcs" }
+vcs_data = { path = "../../vcs_data" }
# Async & Networking
tokio = { version = "1.46.1", features = ["full"] }
diff --git a/crates/vcs/vcs_test/lib.rs b/crates/vcs_data/vcs_data_test/lib.rs
index 5b65941..5b65941 100644
--- a/crates/vcs/vcs_test/lib.rs
+++ b/crates/vcs_data/vcs_data_test/lib.rs
diff --git a/crates/vcs/vcs_test/src/lib.rs b/crates/vcs_data/vcs_data_test/src/lib.rs
index 8ad03e1..8ad03e1 100644
--- a/crates/vcs/vcs_test/src/lib.rs
+++ b/crates/vcs_data/vcs_data_test/src/lib.rs
diff --git a/crates/vcs/vcs_test/src/test_local_workspace_setup_and_account_management.rs b/crates/vcs_data/vcs_data_test/src/test_local_workspace_setup_and_account_management.rs
index df766f7..2718d01 100644
--- a/crates/vcs/vcs_test/src/test_local_workspace_setup_and_account_management.rs
+++ b/crates/vcs_data/vcs_data_test/src/test_local_workspace_setup_and_account_management.rs
@@ -1,7 +1,7 @@
use std::io::Error;
use cfg_file::config::ConfigFile;
-use vcs::{
+use vcs_data::{
constants::{CLIENT_FILE_README, CLIENT_FILE_WORKSPACE, USER_FILE_KEY, USER_FILE_MEMBER},
data::{
local::{LocalWorkspace, config::LocalConfig},
diff --git a/crates/vcs/vcs_test/src/test_sheet_creation_management_and_persistence.rs b/crates/vcs_data/vcs_data_test/src/test_sheet_creation_management_and_persistence.rs
index 3b038a0..461d465 100644
--- a/crates/vcs/vcs_test/src/test_sheet_creation_management_and_persistence.rs
+++ b/crates/vcs_data/vcs_data_test/src/test_sheet_creation_management_and_persistence.rs
@@ -1,7 +1,7 @@
use std::io::Error;
use cfg_file::config::ConfigFile;
-use vcs::{
+use vcs_data::{
constants::{SERVER_FILE_SHEET, SERVER_FILE_VAULT},
data::{
member::{Member, MemberId},
@@ -53,8 +53,8 @@ async fn test_sheet_creation_management_and_persistence() -> Result<(), std::io:
let mut sheet = vault.sheet(&sheet_name).await?;
// Add mapping entries for the files
- let main_rs_path = vcs::data::sheet::SheetPathBuf::from("src/main.rs");
- let lib_rs_path = vcs::data::sheet::SheetPathBuf::from("src/lib.rs");
+ let main_rs_path = vcs_data::data::sheet::SheetPathBuf::from("src/main.rs");
+ let lib_rs_path = vcs_data::data::sheet::SheetPathBuf::from("src/lib.rs");
let main_rs_id = VirtualFileId::new();
let lib_rs_id = VirtualFileId::new();
@@ -85,7 +85,7 @@ async fn test_sheet_creation_management_and_persistence() -> Result<(), std::io:
);
// Test 3: Add mapping entries
- let mapping_path = vcs::data::sheet::SheetPathBuf::from("output/build.exe");
+ let mapping_path = vcs_data::data::sheet::SheetPathBuf::from("output/build.exe");
let virtual_file_id = VirtualFileId::new();
sheet
@@ -265,8 +265,8 @@ async fn test_sheet_data_serialization() -> Result<(), std::io::Error> {
),
];
// First add mapping entries
- let main_rs_path = vcs::data::sheet::SheetPathBuf::from("src/main.rs");
- let lib_rs_path = vcs::data::sheet::SheetPathBuf::from("src/lib.rs");
+ let main_rs_path = vcs_data::data::sheet::SheetPathBuf::from("src/main.rs");
+ let lib_rs_path = vcs_data::data::sheet::SheetPathBuf::from("src/lib.rs");
let main_rs_id = VirtualFileId::new();
let lib_rs_id = VirtualFileId::new();
@@ -287,7 +287,7 @@ async fn test_sheet_data_serialization() -> Result<(), std::io::Error> {
sheet
.add_mapping(
- vcs::data::sheet::SheetPathBuf::from("output/build.exe"),
+ vcs_data::data::sheet::SheetPathBuf::from("output/build.exe"),
build_exe_id,
)
.await?;
diff --git a/crates/vcs/vcs_test/src/test_vault_setup_and_member_register.rs b/crates/vcs_data/vcs_data_test/src/test_vault_setup_and_member_register.rs
index 6a30cf7..80ae39e 100644
--- a/crates/vcs/vcs_test/src/test_vault_setup_and_member_register.rs
+++ b/crates/vcs_data/vcs_data_test/src/test_vault_setup_and_member_register.rs
@@ -1,7 +1,7 @@
use std::io::Error;
use cfg_file::config::ConfigFile;
-use vcs::{
+use vcs_data::{
constants::{
SERVER_FILE_MEMBER_INFO, SERVER_FILE_README, SERVER_FILE_VAULT, SERVER_PATH_MEMBER_PUB,
SERVER_PATH_MEMBERS, SERVER_PATH_SHEETS, SERVER_PATH_VF_ROOT,
diff --git a/crates/vcs/vcs_test/src/test_virtual_file_creation_and_update.rs b/crates/vcs_data/vcs_data_test/src/test_virtual_file_creation_and_update.rs
index d86c13a..7e30dad 100644
--- a/crates/vcs/vcs_test/src/test_virtual_file_creation_and_update.rs
+++ b/crates/vcs_data/vcs_data_test/src/test_virtual_file_creation_and_update.rs
@@ -10,7 +10,7 @@ use tokio::{
join,
time::{sleep, timeout},
};
-use vcs::{
+use vcs_data::{
constants::SERVER_FILE_VAULT,
data::{
member::Member,
diff --git a/docs/images/FRAMEWORK_CANVAS.png b/docs/images/FRAMEWORK_CANVAS.png
new file mode 100644
index 0000000..9f7ebbe
--- /dev/null
+++ b/docs/images/FRAMEWORK_CANVAS.png
Binary files differ
diff --git a/src/lib.rs b/src/lib.rs
index 3a6c652..746f66f 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -3,6 +3,9 @@
pub mod vcs {
extern crate vcs;
pub use vcs::*;
+
+ extern crate vcs_actions;
+ pub use vcs_actions::*;
}
pub mod utils {