本期的每周一库给大家带来的是一个 rust 下的 webserver 库,名字很直观就叫 http。

按照一贯的节奏,名叫 http 的 webserver,这个直接吸引到了我,下面列举一些库相关的参考资料:

http Github

http manpage

在库的 Github 页面上有简单的介绍,作为 rust 下的 webserver 库,http 库不同于 rust 下已经很有名的 hyper 库,http 库 更类似于一个工具,对于 ruster 们来说,可以直接通过 cargo 工具来安装并使用。所以,这里的重点在于 http 库 的使用,而不是使用 http 库 来开发一个接口。
这也就不难理解 http 库 的口号是一个为了 host 一个文件夹的基础 http server。

有前端开发经验的同学一定不陌生,从 web server 的角度,Nginx 和微软的 IIS 从直观上来看就是 host 了一个文件夹中的 web 工程来工作的。从 web app 的角度来看,例如 react 开发中的 build 目录,就是整个编译之后的 web app 文件夹。

接下来简单介绍一下库的特性,在 manpage 里已经列举了很多库的特性和操作方法:

serve 的对象是文件夹中的 index.html 文件

提供了 TLS 的支持

支持 web app 的 header 选项

可以支持前端之间的 GET, PUT, DELETEHEAD 操作,方便 cors 的登陆验证

根据文件夹目录来建立 index

等等 ...

那么下面我们来看一下如何使用 http 库 来 host 一个 react 工程,这里会适当赘述如何创建一个 react 工程,帮助大家实现例子。

首先我们需要在有 cargo 工具的环境下运行,这里使用的环境是:

OS: Windows 10

cargo 1.39.0 (1c6ec66d5 2019-09-30)

首先使用命令安装 http 库

    cargo install https  

稍等片刻就会安装完成,然后可以使用命令

    http --version  

查看版本,这里安装的是 1.8.0 版本

【Rust 每周一库】 http - Rust 下简单的 webserver 库

接下来这里使用 react 工程作为例子,使用命令

    npm create-react-app hello-http  

经过“漫长”的等待,终于创建好了我们的 hello-http 工程

然后进入工程目录

    cd hello-http  

执行 react 下的编译操作

    npm run build  

这时候会在 build 文件夹下生成编译好的 react 工程文件

然后我们进入 build 目录,以默认参数运行 http 库 工具

    http  

提示如下图所示:

【Rust 每周一库】 http - Rust 下简单的 webserver 库

接下来在浏览器输入 localhost:8000,就会看到我们新建的 react 工程,这里简单修改了下文字,如下图:

【Rust 每周一库】 http - Rust 下简单的 webserver 库

这就是本期的每周一库,感谢。