19个版本 (12个破坏性版本)

0.13.0 2022年9月17日
0.11.0 2022年8月24日

#1321数据库接口

Download history 414/week @ 2024-03-07 8/week @ 2024-03-28 2/week @ 2024-04-04

每月58 次下载

MIT/Apache

665KB
3K SLoC

基于rustdb数据库的Axum Web服务器,具有数据库浏览、密码散列、数据库复制、邮件传输和定时任务。

安装和启动服务器

如果尚未安装,首先安装Rust。然后使用命令提示符安装rustweb:

cargo install rustweb

从命令提示符更改到要存储数据库的目录(文件将命名为rustweb.rustdb)。使用以下命令启动rustweb:

rustweb 3000

这将启动rustweb服务器,监听端口3000(您可以使用任何可用的端口)。然后您可以通过http://localhost:3000/Menu进行浏览。从这里可以链接到手册、执行SQL、模式列表和其他链接。

安全性

最初登录安全被禁用。要启用它:

(1) 编辑函数login.hash并更改盐字符串。

(2) 在login.user中创建一条记录。

(3) 使用登录菜单链接设置密码。

(4) 编辑函数login.get(请参阅其中包含的说明)。

数据库复制

在您想要存储复制的数据库的目录(文件夹)中启动Rustweb,指定-rep选项

例如

rustweb 2000 --rep https://mydomain.com

如果已启用登录安全,您需要指定登录详细信息(从login.user表中获得),例如:

--login "uid=1; hpw=0xaaa023850abbdff839894888dd8e8abbceaaa023855abbdff839894888dd8e8c"

如果数据库非常大,可能更实用的是使用FTP获取数据库的初始副本,否则将自动获取副本。

通过在日志.Transaction表中插入记录来启用复制。

如果所有复制服务器都是最新的,则可以定期删除这些记录。

电子邮件

可以使用电子邮件模式发送电子邮件。

(1) 在email.SmtpServer中创建一条记录。

(2) 在email.msg中创建一条电子邮件。

(3) 将其插入到 email.Queue

(4) 调用内置函数 EMAILTX()

如果无法发送邮件,且错误是暂时的,它将被插入到 email.Delayed 表中,稍后重试。

永久性错误记录在 email.SendError

定时任务

可以通过在 timed.Job 中创建记录,在指定时间调用一个无参数的命名 SQL 函数。

这被用于邮件系统重试暂时的邮件发送错误。

只读请求

GET 请求使用数据库的只读副本处理,所做的任何更改都不会保存。这对于处理时间较长的请求很有用,因为其他请求可以并行处理。可以通过添加查询参数 "save" 来覆盖。

POST 请求假定是读写操作,可以通过添加查询参数 "readonly" 来覆盖。

参数和选项

用法
rustweb [OPTIONS]

参数
监听端口

选项
-h, --help 打印帮助信息
-i, --ip 监听的 IP 地址 [默认: 0.0.0.0]
-l, --login 复制使用的登录 cookie [默认: ]
-m, --mem 页缓存内存限制(以 MB 为单位)[默认: 10]
-r, --rep 要复制的服务器 [默认: ]
--tracemem 跟踪内存修剪
--tracetime 跟踪查询时间
-V, --version 打印版本信息

链接

crates.io : https://crates.io/crates/rustweb

仓库: https://github.com/georgebarwood/Rustweb

依赖项

~17–32MB
~572K SLoC