108个版本 (稳定)
1.1.23 | 2024年6月18日 |
---|---|
1.1.20 | 2024年3月20日 |
1.0.12 | 2023年12月31日 |
1.0.2 | 2023年11月30日 |
0.24.0 | 2022年9月30日 |
#26 in HTTP服务器
每月159次下载
175KB
5K SLoC
基于rustdb数据库的Web服务器,具有数据库浏览、密码散列、数据库复制、电子邮件传输和定时任务。
安装和启动服务器
如果尚未安装,请首先安装 Rust。然后使用以下命令从命令提示符安装rustweb2:
cargo install rustweb2
从命令提示符,切换到要存储数据库的目录(文件将命名为rustweb.rustdb)。使用以下命令启动rustweb2:
rustweb2 3000
这应该会启动rustweb2服务器,监听端口3000(您可以使用任何可用的端口)。然后您应该能够浏览到 https://127.0.0.1:3000/admin。从这里有链接到手册、执行SQL、模式列表和其他链接。
安全性
初始登录安全性是禁用的。要启用它
(1) 编辑函数login.hash并更改盐字符串。
(2) 使用登录菜单链接添加登录用户并设置密码。
(3) 编辑函数login.user(请参阅其中包含的说明)。
初始化
新数据库从当前目录中的文件admin-ScriptAll.txt初始化。
如果ScriptAll.txt不存在,则使用默认初始化。
数据库复制
在您想要存储复制的数据库的目录(文件夹)中启动Rustweb2,指定-rep选项
例如
rustweb2 2000 --rep https://mydomain.com
如果已启用登录安全性,则需要指定登录详细信息(从login.user表中获得),例如
--login "uid=1; hpw=0xaaa023850abbdff839894888dd8e8abbceaaa023855abbdff839894888dd8e8c"
如果数据库非常大,可能更实用地使用FTP获取数据库的初始副本,否则将自动获取副本。
通过在日志事务表中插入记录来启用复制。
这些记录可以定期删除,前提是所有副本服务器都是最新的。
注意:从版本1.1.1(2024年3月)开始,事务记录只有在执行log.Roll()之后才会应用。这意味着在发生意外(例如错误的删除、更新或删除语句)的情况下,可以通过在log.Roll()中省略错误的事务来恢复数据库。
电子邮件
可以使用电子邮件模式发送电子邮件。
(1) 在email.SmtpServer中创建一条记录
(2) 在email.msg中创建一封电子邮件
(3) 将其插入到email.Queue中
(4) 调用内置函数EMAILTX()
如果无法发送电子邮件,并且错误是暂时的,它将被插入到email.Delayed表中,稍后重试。
永久性错误记录在email.SendError中
定时作业
可以通过在timed.Job中创建记录,在指定时间调用无参数的命名SQL函数。
这用于电子邮件系统重试暂时的电子邮件发送错误。
只读请求
GET请求使用数据库的只读副本进行处理,所做的任何更改都不会保存。这对于处理耗时较长的请求很有用,因为可以并行处理其他请求。可以通过添加查询参数"save"来覆盖此行为。
POST请求假定是读写操作,可以通过添加查询参数"readonly"来覆盖。
可选功能
mt-tokio启用多线程的tokio运行时(默认启用)。
unsafe-optim启用不安全优化(不应引起任何问题,但程序员可能会犯错误)。
例如,这将使用不安全优化安装rustweb2
cargo install rustweb2 -F unsafe-optim
链接
crates.io : https://crates.io/crates/rustweb2
依赖
~14–47MB
~834K SLoC