diff options
| author | 魏曹先生 <1992414357@qq.com> | 2025-10-06 04:13:32 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-06 04:13:32 +0800 |
| commit | 4a32781c096f30cb39e16c745076e6b7537929cd (patch) | |
| tree | 304075598071f55cb9dc15dc7ac8d9b8740e511e | |
| parent | 57959d26c68dc1d403f527f1f8b407abe8059a28 (diff) | |
| parent | 85f7c35d6c573b715c166fe7501225ecab6731ea (diff) | |
Merge pull request #17 from JustEnoughVCS/jvcs_dev
Jvcs dev
| -rw-r--r-- | Cargo.lock | 20 | ||||
| -rw-r--r-- | Cargo.toml | 9 | ||||
| -rw-r--r-- | FRAMEWORK_CANVAS.canvas | 93 | ||||
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | README_zh_CN.md | 2 | ||||
| -rw-r--r-- | crates/vcs_actions/Cargo.toml | 15 | ||||
| -rw-r--r-- | crates/vcs_actions/src/actions.rs | 5 | ||||
| -rw-r--r-- | crates/vcs_actions/src/actions/local_actions.rs | 0 | ||||
| -rw-r--r-- | crates/vcs_actions/src/actions/sheet_actions.rs | 0 | ||||
| -rw-r--r-- | crates/vcs_actions/src/actions/user_actions.rs | 0 | ||||
| -rw-r--r-- | crates/vcs_actions/src/actions/vault_actions.rs | 0 | ||||
| -rw-r--r-- | crates/vcs_actions/src/actions/virtual_file_actions.rs | 0 | ||||
| -rw-r--r-- | crates/vcs_actions/src/lib.rs | 2 | ||||
| -rw-r--r-- | crates/vcs_actions/src/registry.rs | 2 | ||||
| -rw-r--r-- | crates/vcs_actions/src/registry/client_registry.rs | 0 | ||||
| -rw-r--r-- | crates/vcs_actions/src/registry/server_registry.rs | 0 | ||||
| -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.png | bin | 0 -> 182753 bytes | |||
| -rw-r--r-- | src/lib.rs | 3 |
42 files changed, 102 insertions, 81 deletions
@@ -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]] @@ -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 @@ -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. + + ## 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**"的理念,旨在通过架构设计来实现协作安全。它以**虚拟文件系统**和**表隔离**为核心,为每个创作者提供专注、无干扰的工作空间,让协作变得自然且简单。 + + ## 虚拟文件系统 (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 Binary files differnew file mode 100644 index 0000000..9f7ebbe --- /dev/null +++ b/docs/images/FRAMEWORK_CANVAS.png @@ -3,6 +3,9 @@ pub mod vcs { extern crate vcs; pub use vcs::*; + + extern crate vcs_actions; + pub use vcs_actions::*; } pub mod utils { |
