1 个不稳定版本
0.4.0 | 2020年2月18日 |
---|
#88 在 #移动
115KB
2K SLoC
MSDB - 移动安全数据库
入门指南
先决条件
-
rustc
已安装(编译)。建议使用夜间版,稳定版也应该可以工作。 -
libsodium
已安装。MSDB 依赖于sodiumoxide
,它是libsodium
的 rust 绑定。
编译
cargo build --release
运行
命令行界面
./msdb
将启动命令行界面
执行脚本文件
./msdb -i SCRIPTNAME
将执行脚本中的命令
简单用户指南
一个图中的结构
命令参考
命令脚本中的命令和 cli 中的命令遵循相同的结构
COMMAND [COMMAND ARGUMENTS]
命令脚本中的每一行都将被视为一条命令。
创建数据库 / 解密(加载)数据库 / 退出 / 登出
只有这些命令可以在不加载任何数据库的情况下执行。
-
createDATABASENAME
通过指定名称创建数据库。
-
decryptDATABASENAME
解密数据库并将其加载到缓存中。
-
exit
丢弃缓存中的所有内容并停止数据库。
-
logout
类似于
exit
但命令行界面不会退出。
创建(删除/修改)结构 / 对象 / 单元
-
newstruct STRUCTNAME
创建一个新的结构
-
newOBJECTNAME
创建一个新的对象(仅在您处于结构内部时工作)
-
newCELLNAME CELLTYPE CELLCONTENT
创建一个新的单元(仅在您处于对象内部时工作)
可用的单元类型 & 单元内容
-
TYPE =
literal
; CONTENT =utf-8 中的任何内容
-
TYPE =
blob
; CONTENT =任何文件名
(文件内容将写入数据库) -
类型 =
link
;内容 =另一个单元标识符
/另一个字段标识符 / /另一个单元标识符
/另一个结构标识符 / /另一个字段标识符 / /另一个单元标识符
-
类型 =
revlink
;内容 = 与link
相同
-
-
alter CELLNAME CELLTYPE CELLCONTENT
[WIP]更改单元内容/单元类型(仅当您处于对象内部时有效)
-
delCELLNAME CELLTYPE CELLCONTENT
删除单元(仅当您处于对象内部时有效)
-
delOBJECTNAME / STRUCTNAME
删除对象/结构。请注意,由于性能问题,对象中的单元可能无法删除。如果您愿意牺牲性能以最小化数据库存储,请使用
wipe
。 -
wipeOBJECTNAME
删除对象及其相关所有单元
选择(取消选择)结构/对象/单元
-
selectSTRUCTNAME/OBJECTNAME/CELLNAME
选择一个结构/对象/单元(当您处于数据库根目录时将选择结构,当您处于结构中时将选择对象等)
-
leave
deselect a structure/object/cell(在结构内部取消选择结构等)
列出/查询单元
-
ls
列出对象内部的单元/结构内部的对象/数据库内部的存储结构
-
read CELLNAME
[WIP]输出单元内容(仅当您处于对象内部时有效)
-
pwd
显示当前位置
写入磁盘/从磁盘读取
请注意,由于性能问题,msdb 不会自动写入和/或与磁盘同步,这意味着您在数据库中所做的一切都是临时的。您需要以下命令来手动执行。
-
sync
将数据库更改写入磁盘
-
loadCELLNAME
明确指定要加载到缓存中的单元。通常,由于性能较慢,对象内部的单元不会自动加载。
危险/调试
除非您绝对确定自己在做什么,否则不应使用以下命令。
-
unloadSTRUCTURENAME
明确从缓存中删除结构。可能会提高性能。
-
setpropNAME VALUE
创建/修改元数据属性。如果当前位置在数据库根目录,它将写入主要元数据;如果在结构中,它将写入结构元数据;如果在对象中,它将写入单元列表元数据;如果在单元中,它将写入字段元数据。
-
getprop
查看元数据属性
脚本命令
-
outputOUTFILE
将命令结果输出写入 OUTFILE。
特别说明:如果您正在使用命令脚本,请注意,如果您留下可选参数为空(例如,解密时的数据库密码),msdb 将提示您输入参数。
支持
您可以使用 Github Issues 来报告错误。请注意,当前应用程序仍处于早期阶段,可能存在许多错误。
许可证
本项目仅根据 GNU General Public License v3.0 许可。
依赖
~22MB
~157K SLoC