#web-apps #web-framework #applications #module #swish #nightly #path

swish_swish

Rust 无依赖的网页框架,支持 Nightly 模块

14 个版本 (8 个稳定版)

1.0.7 2020年10月15日
1.0.2 2020年8月29日
0.1.6 2020年8月24日

#1 in #swish

每月下载量 36 次

MIT 许可证

26KB
792

Swish

crates.io badge Build Test
这是为 R**ket🥩 定制的 Swish Swish Bish🎶 另一个篮子里的一个🏀

extern crate swish_swish;

use swish_swish::*;

fn swish_swish() -> Swish {
    let mut swish = Swish::new();
    swish.get("/path", path_handler);
    swish.get("/user/:id", user_id_handler);
    swish.post("/user/register", user_register_handler);
    swish.set_cors_as(allow_everything());
    swish
}

fn main() {
    swish_swish().bish();
}

完整演示应用程序在此 [链接]🎱

摘要

三条规则🔔

在制作这个网页框架时有三条规则。

  • 不要复杂化
  • 不要实现额外的功能
  • 不要依赖 nightly 模块

我想说的是🏴‍☠️

有时其他 Rust 网页框架在编译生产版本时不能构建,因为存在 与 nightly 模块的依赖。我们需要成为 OSS 贡献者吗?我们也不喜欢使用 left-pad 包。R**ket 就像过期优惠券一样有用!我想说 我们是程序员,不是 OSS 贡献者,也不是该死的复制粘贴者

安装

[dependencies]
swish_swish = "1.0.7"

除了 Std 之外的依赖

我计算了我所犯的罪行。Karma 不会撒谎!

  • regex
  • serde
  • serde_json

路线图

  • 基本测试服务器
  • 测试客户端
  • 路由注册
  • 处理器和路由匹配器
  • 静态路由匹配器
  • 动态路由匹配器
  • 设计请求和响应结构
  • 设计错误响应器
  • 动态路由参数获取器
  • 实际的 Http 编译器
  • 实际的 Http 响应器
  • 处理器只返回选择内容类型的正文
  • 支持 POST 请求
  • 返回基本头信息,如内容长度
  • Cros 选项
  • Http 请求验证器
  • 版本 0.1.0 发布
  • 集成测试
  • 反模式测试
  • 集成 Cors、配置和请求、头部
  • 根据 这里 进行重构
  • 版本 1.0.0 发布
  • 从属性中获取 GET 方法和路径
  • 定义所有方法和状态码

测试

$ cargo test

依赖项

~2.8–4.5MB
~86K SLoC