#web-server #web-framework #non-intrusive

zvezda

简单、快速、轻量级且无侵入性的 Web 库

4 个版本

0.1.4 2023 年 6 月 6 日
0.1.3 2023 年 3 月 30 日
0.1.2 2023 年 2 月 23 日
0.1.1 2023 年 2 月 23 日

606HTTP 服务器

27 每月下载量

BSD-2-Clause-Patent

10KB
134

Zvezda

Web 库,而非 Web 框架

为什么?

我对许多现有的 Rust Web 服务器实现的一大不满是它们都太 大了!你需要花 15 分钟和 100 行样板代码才能了解你正在做什么!这就是我开始编写 Zvezda 的原因。


运行包含的示例

  1. 克隆此仓库:https://gitlab.com/inzig0/zvezda.git
  2. 进入项目文件夹:cd
  3. 运行示例之一
    • 基本 Web 服务器:cargo run --example hello
    • 基本的 ping-pong Web 服务器:cargo run --example echo
    • 简单的样板代码 Web 服务器:cargo run --example html
    • JSON 使用示例:cargo run --example json

将此库包含到您的项目中

将此行添加到您的 Cargo.toml

...
[dependencies]
zvezda = "0.1.1"
// OR if you want the git version,
zvezda = { git = "https://gitlab.com/inzig0/zvezda.git" }
...

lib.rs:

Zvezda

Zvezda 是一个快速且轻量级的 Web ,旨在为您的网站提供 HTML 功能。它 WarpRocket,后者旨在提供框架以工作,而是向您的项目添加非侵入式 HTML 后端实现。


Hello World 示例

use std::net::TcpListener;
use std::io::Read;
use zvezda::Connection;

fn main() {


    let listener = TcpListener::bind("127.0.0.1:8080").unwrap();


    for stream in listener.incoming() {
        let mut stream = stream.unwrap();
        let mut buf = [0; 1536];

        stream.read(&mut buf).unwrap();

        let packet = String::from_utf8_lossy(&buf);


        let mut handle = Connection::parse(packet.to_string(), stream);

        let path = handle.path_as_str();
        match path {
            "/" => {
                handle.write_html("200 OK", String::from("Hello World!")).unwrap();
            },
            _ => {
                handle.write_res("404 NOT FOUND").unwrap();
            }
        }
    }
}

无运行时依赖项